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

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

3.11.2. Адаптация вероятностей кроссинговера и мутации

В адаптивных генетических алгоритмах изменяются параметры ГА, прежде всего, вероятности кроссинговера и мутации P_c и P_m. Для оптимизации, особенно мультимодальных функций, наиболее существенными являются две характеристики ГА:

  • способность сходиться к оптимуму (локальному или глобальному) после нахождения области, содержащей этот оптимум;
  • способность находить новые области в пространстве решений в поисках глобального оптимума.

Баланс между этими характеристиками ГА определяется значениями вероятности P_c и P_m и типом используемых генетических операторов (прежде всего кроссинговера). Увеличение значений P_c и P_m ведет к расширению пространства поиска.

Обычно используют следующие значения вероятностей - P_c\in[0,5;1] и P_c\in[0,001;0,01]. Далее мы рассмотрим другой подход [7], который использует различные значения P_c и P_m в зависимости от значения ЦФ текущих особей. Для мультимодальных функций существует серьезная проблема преждевременной сходимости к локальным экстремумам.

Чтобы изменять P_c и P_m адаптивно, с целью предотвращения преждевременной сходимости к локальному экстремуму, надо научиться идентифицировать ситуации, когда ГА сходится к оптимуму. Рассмотрим этот подход на примере поиска максимума для мультимодальной функции (которая имеет несколько экстремумов), которая показана на рис. 3.23

Мультимодальная функция

Рис. 3.23. Мультимодальная функция

Один из возможных способов обнаружения сходимости – наблюдение разности среднего и максимального значения целевой функции по популяции (f_{\max} -\overline f). Обычно эта разность меньше для популяции, которая сходится к оптимуму, чем для популяции, "разбросанной" по пространству поиска решений. Будем использовать разность (f_{\max} -\overline f) в качестве основного признака сходимости к оптимуму, причем не обязательно глобальному.

Поскольку вероятности P_c и P_m должны увеличиваться при преждевременной сходимости к локальному оптимуму (чтобы "выпрыгнуть из ловушки" локального экстремума), то значение (f_{\max} -\overline f) должны изменяться обратно пропорционально разности (f_{\max} -\overline f):

P_c=\frac{k_1}{f_{\max} -\overline f}\qquad P_m=\frac{k_2}{f_{\max} -\overline f} ( 3.21)

Здесь P_c и P_m не зависят от значений ЦФ для конкретной особи, а определяются для всей популяции, но для разных популяций различных поколений они уже будут разными.

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

Чтобы решить эту проблему, нужно сохранить хорошие решения текущей популяции. Это можно сделать, полагая низкие значения вероятности P_c и P_m для особей с высоким значением ЦФ и высокие значения P_c и P_m для плохих особей с низкими значениями ЦФ. Тогда лучшие решения будут способствовать сходимости, а худшие – предотвращать ГА от "ловушек" локальных экстремумов. Таким образом, значение P_c и P_m должны зависеть не только от разности (f_{\max} -\overline f), но еще и от значений ЦФ конкретных особей. Чем ближе значение функции к максимальному, тем меньше должно быть значение P_c и P_m:

P_c=k_1\cdot\frac{f_{\max} - f'}{f_{\max} -\overline f},\qquad k_1\le 1\\ P_m=k_2\cdot\frac{f_{\max} - f}{f_{\max} -\overline f},\qquad k_2\le 1 ( 3.22)

где f'– лучшее значение целевой функции у двух родителей.

Положим P_c=P_m=0 для решений, имеющих максимальное значение ЦФ и

P_c=k_1,\qquad f'=\bar f\\P_m=k_2,\qquad f'=\bar f ( 3.23)

Отметим, что для плохих решений (f,f'<\bar f) значения вероятностей P_c и P_m в соответствии с формулой (3.23) могут быть больше 1, что некорректно. Поэтому для плохих решений примем:

P_c=k_3,\qquad f'\le\bar f\\P_m=k_4,\qquad f'\le\bar f

В итоге получим:

P_c=\begin{cases}k_1\cdot\frac{f_{\max}-f'}{f_{\max}-\bar f},& f'>\bar f\\k_3,&\text{иначе}\end{cases}\\P_m=\begin{cases}k_2\cdot\frac{f_{\max}-f'}{f_{\max}-\bar f},& f>\bar f\\k_4,&\text{иначе}\end{cases}\\k_1=k_3=1\\k_2=k_4=0,5 ( 3.24)

Лучшие решения при этом сохраняются и переходят в следующее поколение. Этот факт может привести к чрезмерному росту популяции, что чревато преждевременной сходимостью. Поэтому иногда дополнительно вводится одна (default) мутация (с вероятностью P_d=0,005) для всех особей популяции.

Существуют и более строгие адаптивные ГА, где вероятности P_c и P_m вычисляются аналитически, но они, как правило, сильно привязаны к конкретным задачам. Достаточно эффективным средством адаптации является использование "нечетких контроллеров" в виде, например, системы продукций в нечеткой логике.