четверг, 7 февраля 2013 г.

методы генетических алгоритмов

self.pool = [GeneticCode(goal=goal) for item in range(self.pool_size)]

Решение задачи представляется в виде вектора значений [a, b, c, d, ..., x] (в нашем случае это строка) длина которого известна, я обернул это в класс методы которого предоставляют интерфейс для взаимодейтсвия (class GeneticCode), на начальном этапе создаётся “популяция” (скажем 100) этих векторов инициализируемых случайными значениями.

Что представляют собой эти генетические алгоритмы? Они решают задачи точно так же как это делает природа, т.е. через “естественный отбор”, соответственно критерии этого отбора должны быть достаточно просто вычисляемы – в моём случае это так называемая fitness функция которая посимвольно сравнивает решение с оригинальной строкой, чем лучше решение – тем ближе выход функции к нулю.

Выложил код на github – . Там же где можно посмотреть как происходит решение задачи.

Решил потратить свободное воскресенье на написание чего-нибудь интересного, размять мозги, освоить какие-нибудь новые приемы, короче говоря разбавить рутину повседневных дел. Задача достаточно тривиальна – написать аналог Hello World используя .

Written on 08/05/2011 – 11:16 pm | by webninja |

Генетические алгоритмы. Hello World.

Генетические алгоритмы. Hello World. | Ninjaside

Комментариев нет:

Отправить комментарий