КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Генетические операторы
Особые процедуры репродукции В качестве особых процедур репродукции можно рассматривать так называемую элитарную стратегию и генетический алгоритм с частичной заменой популяции. Элитарная стратегия (elitist strategy) заключается в защите наилучших хромосом на последующих итерациях. В классическом генетическом алгоритме самые приспособленные особи не всегда переходят в следующее поколение. Это означает, что новая популяция Р(к + 1) не всегда содержит хромосому с наибольшим значением функции приспособленности из популяции Р(к). Элитарная стратегия применяется для предотвращения потери такой особи. Эта особь гарантированно включается в новую популяцию. Генетический алгоритм с частичной заменой популяции, иначе называемый генетическим алгоритмом с зафиксированным состоянием (steady-state), характеризуется тем, что часть популяции переходит в следующее поколение без каких-либо изменений. Это означает, что входящие в эту часть хромосомы не подвергаются операциям скрещивания и мутации. Часто в конкретных реализациях алгоритма данного типа на каждой итерации заменяются только одна или две особи вместо скрещивания и мутации в масштабе всей популяции. Именно такой подход принят, например, в программе Evolver [49]. В других программах, в частности, во FlexTool [48], пользователь
может сам установить - какая часть популяции (в соответствии со значениями функции приспособленности) должна передаваться без изменений в следующее поколение. Это подмножество хромосом не подвергается регулярной селекции и без изменений включается в новую популяцию В классическом генетическом алгоритме операция скрещивания представляет собой так называемое точечное скрещивание, рассмотренное в разд. 4.4 и в примерах 4.4 и 4.5. Также применяются и другие виды скрещивания: двухточечное, многоточечное и равномерное [9, 15]. Двухточечное скрещивание (two-point crossover), как следует из его названия, отличается от точечного скрещивания тем, что потомки наследуют фрагменты родительских хромосом, определяемые двумя случайно выбранными точками скрещивания. Для пары хромосом из примера 4.4 скрещивание в точках 4 и 6 показано на рис. 4.12. Обратим внимание, что такое скрещивание не приводит к уничтожению схемы -|**********1, которую представляет родитель 2. Многоточечное скрещивание (multiple-point crossover) представляет собой обобщение предыдущих операций и характеризуется соответственно большим количеством точек скрещивания. Например, для трех точек скрещивания, равных 4, 6 и 9, и такого же количества родителей, как на рис. 4.12, результаты скрещивания показаны на рис. 4.13. Аналогично производится скрещивание для пяти или большего нечетного количества точек. Очевидно, что одноточечное скрещивание может считаться частным случаем многоточечного скрещивания. Пример двухточечного скрещивания, представленный на рис. 4 12 можно проиллюстрировать способом, показанным на рис. 4.14. Многоточечное скрещивание для четырех точек, равных 1,4,6, 9 и 4, 6, 9, 11 для той же пары родителей из предыдущих примеров иллюстрируется на рис. 4.15. Многоточечное скрещивание с большим четным количеством точек скрещивания протекает аналогично показанному на рис. 4.15. Скрещивание с нечетным количеством точек можно представить таким же образом, если добавить еще одну точку скрещивания в позиции, равной 0. Приведенный выше пример для трех точек можно представить также, как на рис. 4.15, с точками скрещивания 0, 4, 6, 9. При четном количестве точек хромосома рассматривается как замкнутое кольцо (см. рис. 4.14 и 4.15), а точки скрещивания выбираются с равной вероятностью по всей его окружности. Равномерное скрещивание (uniform crossover), иначе называемое монолитным или одностадийным, выполняется в соответствии со случайно выбранным эталоном, который указывает, какие гены долж ны наследоваться от первого родителя (остальные гены берутся от второго родителя). Допустим, что для пары родителей из приме-
Рис. 4.13. Пример трехточечного скрещивания
Рис. 4.14. Двухточечное скрещивание ров на рис. 4.12 - 4.15 выбран эталон 010110111011, в котором 1 означает принятие гена на соответствующей позиции (locus) от родителя 1, а 0 - от родителя 2. Таким образом формируется первый потомок. Для второго потомка эталон необходимо считывать аналогично, причем 1 означает принятие гена на соответствующей позиции от родителя 2, а 0 - от родителя 1. В этом случае равномерное скрещивание протекает так, как показано на рис. 4.16. Оператор инверсии. Холланд [21] предложил три технологии для получения потомков, отличающихся от родительских хромосом. Это уже известные нам операции скрещивания и мутации, а также операция инверсии. Инверсия выполняется на одиночной хромосоме; при ее осуществлении изменяется последовательность аллелей между двумя случайно выбираемыми позициями (locus) в хромосоме. Несмотря на то, что этот оператор был определен по аналогии с биологическим процессом хромосомной инверсии, он не слишком часто применяется в генетических алгоритмах. В качестве примера выполнения инверсии рассмотрим хромосому [001100111010] и допустим, что выбраны позиции 4 и 10. Тогда в результате инверсии получим [001101110010].
Рис. 4.15. Многоточечное скрещивание с четыры\ равными 1,4, 6, 9 и 4, 6, 9, 11.
родитель 1: [001100111010] 1 родитель2: [101011011011] J Рис. 4.16. Пример равномерного скрещивания. 4.8.4. Методы кодирования В классическом генетическом алгоритме применяется двоичное кодирование хромосом. Оно основано на известном способе записи десятичных чисел в двоичной системе, где каждый бит двоичного кода соответствует очередной степени цифры 2. Например, двоичная последовательность [10011] представляет собой код числа 19, поскольку 1*24 + 0*23 + 0*22 + 1*21 + 1*2° = 19. Такой способ кодирования применялся в примерах 4.1 и 4.5. Для кодирования действительных чисел х, е [a,-, b] e R реализуется отображение (4.5) так, как это делалось в примерах 4.2 и 4.6. В генетических алгоритмах можно, например, использовать код Грея, который характеризуется тем, что двоичные последовательное- а 4. Генетические алгоритмы 4.8. Модификации классического генетического алгоритма
ти, соответствующие двум последовательным целым числам, отличаются только одним битом. Такой способ кодирования хромосом может оказаться оправданным при использовании операции мутации [8]. Логарифмическое кодирование (logarithmic coding) применяется в генетических алгоритмах для уменьшения длины хромосом. Оно используется, главным образом, в задачах многомерной оптимизации с большими пространствами поиска решений. При логарифмическом кодировании первый бит (а) кодовой последовательности - это бит знака показательной функции, второй бит Q3) - бит знака степени этой функции, а остальные биты (bin) представляют значение самой степени: где [bm]10 означает десятичное значение числа, закодированного в виде двоичной последовательности bin. Например, [10110] представляет собой кодовую последовательность числа х1 = (-1)ое<-1)1[11О]ю = е-«= 0,002478752, [01010] представляет собой кодовую последовательность числа х2 =(-i)1eM)°[010li° =-e2 =-7,389056099 Заметим, что таким образом с помощью пяти битов можно закодировать числа из интервала [-е7, е7]. Это значительно больший интервал, чем [0, 31] из примера 4.5. Логарифмическое кодирование было реализовано в программе FlexTool [48] в качестве дополнительной опции для задач повышенной сложности. Еще одна модификация классического генетического алгоритма основана на кодировании действительными, а не двоичными числами. Это означает, что гены хромосом принимают действительные значения (аллели являются действительными числами). Такой способ кодирования применяется, в частности, в программе Evolver [49].
Дата добавления: 2015-06-04; Просмотров: 748; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |