Выбор исходной популяции для генетического алгоритма связан с представлением параметров задачи в форме хромосом, т.е. с так называемым хромосомным представлением. Это представление определяется способом кодирования. В классическом генетическом алгоритме применяется двоичное кодирование, т.е. аллели всех генов в хромосоме равны или . Длина хромосом зависит от условий задачи, точнее говоря – от количества точек в пространстве поиска.
Очень часто применение генетических алгоритмов сводится к решению задач оптимизации. Рассмотрим очень простой пример – задачу нахождения максимума функции:
Формула 1
для целочисленной переменной , принимающей значения от до .
Для применения генетического алгоритма необходимо, прежде всего, закодировать значения переменной в виде двоичных последовательностей. Очевидно, что целые числа из интервала от до можно представить последовательностями нулей и единиц, используя их представление в двоичной системе счисления. Число при этом записывается как , а число – как . В данном случае хромосомы приобретают вид двоичных последовательностей, состоящих из 5 битов, т.е. цепочками длиной 5.
Также очевидно, что в роли функции приспособленности будет выступать целевая функция, заданная формулой . Тогда приспособленность хромосомы , будет определяться значением функции для , равного фенотипу, соответствующему генотипу . Обозначим эти фенотипы . В таком случае значение функции приспособленности хромосомы (т.е. ) будет равно .
Выберем случайным образом исходную популяцию, состоящую из 6 кодовых последовательностей (например, можно 30 раз подбросить монету); при этом . Допустим, что выбраны хромосомы:
Соответствующие им фенотипы – это представленные ниже числа:
По формуле рассчитываем значения функции приспособленности для каждой хромосомы в популяции:
Селекцию хромосом проводим методом рулетки. Для этого выбираем 6 хромосом для репродукции. Колесо рулетки представлено на рисунке.
Допустим, что выбраны числа:
Это означает выбор хромосом:
Пусть скрещивание выполняется с вероятностью . Допустим, что для скрещивания сформированы пары:
Кроме того, допустим, что случайным образом выбрана точка скрещивания, равная 3 для пары , а также точка скрещивания, равная 2 для пар , :
При условии, что вероятность мутации , в новую популяцию включаются хромосомы:
Для расчета значений функции приспособленности этих хромосом необходимо декодировать представляющие их двоичные последовательности и получить соответствующие им фенотипы. Обозначим их . В результате декодирования получаем:
Соответственно, значения функции приспособленности хромосом новой популяции, рассчитанные по формуле , составят:
Легко заметить, что в этом случае среднее значение приспособленности возросло с до . Обратим внимание, что если на следующей итерации будут сформированы для скрещивания пары хромосом, например, , и с точкой скрещивания 2 или 3, то среди прочих будет получена хромосома с фенотипом, равным числу , при котором оптимизируемая функция достигает своего максимума. Значение функции приспособленности для этой хромосомы оказывается наибольшим и составляет . Если такое сочетание пар в данной итерации не произойдет, то можно будет ожидать образования хромосомы с наибольшим значением функции приспособленности на следующих итерациях. Хромосома могла быть получена и на текущей итерации в случае формирования для скрещивания пары с точкой скрещивания 3.
Следует упомянуть, что в малых популяциях часто встречаются ситуации, когда на начальном этапе несколько особей имеют значительно большие значения функции принадлежности, чем остальные особи данной популяции. Применение метода селекции на основе колеса рулетки позволяет в этом случае очень быстро выбрать «наилучшие» особи, иногда – на протяжении «жизни» одного поколения. Однако такое развитие событий считается нежелательным, поскольку оно становится главной причиной преждевременной сходимости генетического алгоритма, называемой сходимостью к неоптимальному решению. По этой причине используются и другие методы селекции, отличающиеся от колеса рулетки, либо применяется масштабирование функции приспособленности.
В заключении отметим, что при длине хромосом, равной 5 битам, пространство поиска очень мало и насчитывает всего точки. Представленный пример имеет исключительно демонстрационный характер. Применение генетического алгоритма для такого простого примера практически нецелесообразно, поскольку его оптимальное решение может быть получено мгновенно. Однако этот пример пригоден для изучения функционирования генетического алгоритма.