Московский государственный университет путей сообщения
Опубликован: 10.10.2014 | Доступ: свободный | Студентов: 866 / 193 | Длительность: 22:10:00
Лекция 1:

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

Влияние мутации

Напомним, что оператор мутации (ОМ) есть случайное изменение элемента в стринге с вероятностью P_m. Очевидно, что для того чтобы схема H выжила, все определенные позиции должны выжить. Поскольку один ген выживает с вероятностью (1-P_m), то данная схема выживает, когда каждая из O(H) фиксированных позиций схемы выживает. Умножая вероятность выживания (1-P_m) O(H) раз, получим, что вероятность выживания при ОМ равна (1-p_m)^{O(H)}. Для малых величин P_m\ll 1 это выражение может быть аппроксимировано как P_S(OM) = 1 – О(H)\cdot P_m.

Из этого следует, что схема H дает ожидаемое число особей в следующей популяции после выполнения всех генетических операторов ОР, ОК и ОМ согласно следующей формуле:

m(H,t+1)>m(H,t)\cdot \frac{f(H)}{\bar f}[1-P_m\frac{L(H)}{1-n}-O(H)\cdot P_m] ( 1.5)

Этот важный результат известен какфундаментальная теорема ГА. Учитывая (1.3) ее можно также сформулировать следующим образом.

Теорема 1.1. Схемы малого порядка, малой определенной длины и со значением фитнесс-функции выше средней формируют растущее по показательному закону число своих представителей в последующих поколениях генетического алгоритма.

На основании приведенных результатов была выдвинута гипотеза о строительных блоках.

Гипотеза 1.1. Генетический алгоритм стремится достичь близкого к оптимальному результата за счет комбинирования хороших схем (со значением фитнесс-функции выше средней, малого порядка и определенной длины).

Такие схемы называются строительными блоками. В соответствии с этим оптимальное решение строится путем объединения наилучших из полученных на текущий момент частичных решений. Оператор скрещивания на двоичных стрингах не слишком часто уничтожает схемы малой определенной длины, однако ликвидирует схемы большой длины. Однако, не смотря на губительность операторов скрещивания и мутации для схем большого порядка и определенной длины, число обрабатываемых схем настолько велико, что даже в относительно малом числе особей в популяции генетический алгоритм дает неплохие результаты.

Несмотря на то, что для доказательства этой гипотезы были предприняты значительные усилия, строгого доказательства получено не было, и в большинстве нетривиальных приложений опираются на эмпирические результаты.

Далее проиллюстрируем приведенные результаты. Вернемся к примеру Голдберга определения \mbox{max}\ f(x)=x^2. В дополнение к имеющимся таблицам рис 1.3 пусть имеется 3 конкретные схемы H_1=1*****, H_2=*10** и H_3=1***0, описанные в табл.1.2.

Рассмотрим сначала схему H_1. При репродукции стринги копируются с вероятностью, определенной согласно величине их фитнесс-функции. Из табл. 1.1 видно, что стринги 2,4 покрываются схемой H_1. После выполнения репродукции мы видим в табл. 1.3 (строка H_1), что получены три копии и стринг 3 также вошел в популяцию.

Таблица 1.2.
Схема Перед репродукцией Представители стрингов Среднее значение ЦФ схемы f(H)
H_1 1**** 2,4 469
H_2 *10** 2,3 320
H_3 1***0 2 576

Проверим, соответствует ли это число фундаментальной теореме схем. Согласно теории мы ожидаем m*f(H)/\bar f копий. Вычисляя среднее значение ЦФ f(H_1), получаем \bar f(H_1)=(576+361)/2=468,5. Разделив это число на среднее значение ЦФ популяции \bar f=293 и умножив его на число m(H_1,t)=2 стрингов, покрываемых H_1 на шаге t, получаем ожидаемое число стрингов, покрываемых H_1 на шаге t+1, т.е. m(H_1,t+1)=2\cdot 468,5 / 293 = 3,20.

Таблица 1.3.
Схема После репродукции После всех операторов
Ожидаемое число стрингов Действительное число стрингов Представители стрингов Ожидаемое число стрингов Действительное число стрингов Представители стрингов
H_1 3,20 3 2, 3, 4 3,20 3 2, 3, 4
H_2 2,18 2 2, 3 1,64 2 2, 3
H_3 1,97 2 2, 3 0,0 1 4

Сравнивая это число с реальным числом копий 3, видим, что округление рассчитанного значения копий 3,2 дает их реальное число 3. Дальнейший анализ показывает, что в данном случае ОК не оказывает влияние на число стрингов, покрываемых схемой, так как определенная длина L(H_1)=0 предотвращает разрыв схемы. Далее при мутации с вероятностью P_{OM}=0,001 мы должны ожидать уменьшение числа стрингов на m*О(H_1)*P(OM)=3*1*0,001=0,003, что практически не оказывает влияния на окончательный результат. В итоге для схемы H_1 получаем ожидаемое увеличение числа особей до 3, что соответствует формуле (1.2).

Рассмотрим теперь схемы H_2 и H_3 с двумя фиксированными позициями. Схема H_2 имеет также два представителя в начальной популяции (2,3) и две копии в следующей промежуточной популяции. Вычисляем m(H_2)=2\cdot 320/293=2,18. Здесь f(H_2)=320– среднее значение ЦФ схемы, а \bar f=293– среднее значение ЦФ популяции. Для H_3 получаем только одно стринговое представление и m(H_3)=1\cdot 576/293=1,97. Здесь 576 – среднее значение ЦФ схемы.

Заметим, что для конкретной схемы H_2 представительство двух копий в популяции является хорошим результатом и он может случиться только один раз из 4-х возможных случаев (n-1=5-1=4). Схема H_2=*|1|0|*|* имеет реальную возможность дать новую копию. В результате, схема H_2 выживает с высокой вероятностью. Действительно, число стрингов, покрываемых H_2, равно m(H_2,t+1)=2,18\cdot0,75=1,64\approx 2.

Для схемы H_3 при высокой определенной длине L(H_3)=4 оператор ОК обычно разрушает эту схему. Поэтому ожидаемое число m(H_3,t+1)=0 соответствует числу, получаемому по формуле (1.4).

В соответствие с полученными результатами видно, что важнейшим аспектом является кодирование особей, которое должно обеспечить построение схем малого порядка малой определенной длины и со значениями фитнесс-функции выше среднего

Следующий простой пример показывает важность построения генома с учетом теорем схем.

Рассмотрим поиск максимума (для простоты при целочисленных значениях x и y) функции f(x,y)=x^2-y+17. Можно показать, что максимум f=66 достигается при значениях x=(111)_2=(7)_{10} и y=(0000)_2=(0)_{10}. Пусть x=x_2x_1x_0 и y= y_3y_2y_1y_0, где x_i,y_j\in \{0,1\}. Рассмотрим различное строение геномов. В первом случае пусть генотип представляет y_3x_2y_2x_1y_1x_0y_0, во втором генотип определим как y_3y_2y_1y_0\ x_2x_1x_0. Отметим, что в первом случае старшие разряды x и y расположены в генотипе близко, а во втором варианте наоборот – достаточно далеко. Поскольку желательна короткая определенная длина, генетический алгоритм с геномом, в котором старшие разряды расположены близко, должен быть лучше по сравнению с геномом, где эти разряды стоят далеко друг от друга. Для первого случая \frac{L(H)}{1-n}=\frac{1}{6} для схемы H_1=01*****, где содержатся значения, наиболее важные для искомого решения. Для второго случая схема при тех же значениях имеет вид H_2=0*****1, для которой \frac{L(H)}{1-n}=1 и поэтому необходимые значения старших битов x и y, скорее всего, при выполнении оператора кроссинговера будут "разорваны". Поэтому первый вариант генома предпочтительней.