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

Эволюционное программирование

10.8. Реализация ЭП

Разработаны различные способы реализации ЭП, к которым относятся следующие основные виды.

  • Классическое ЭП в современной нотации [5] подразумевает использование мутации Гаусса. Кроме этого возможно применение самоадаптации основе логарифмически нормального распределения. На этапе отбора обычно применяется стратегия элитизма.
  • Быстрое эволюционное программирование реализуется с использованием мутации Коши с \eta_{ij}(t)\sim C(0,v) и v=1. Потомок генерируется согласно следующей формуле:

    x'_{ij}(t)=x_{ij}(t)+\sigma_{ij}(t)C_{ij}(0,1),

    где используется логарифмически нормальное распределение. На этапе отбора также применяется стратегия элитизма.

  • Экспоненциальное эволюционное программирование использует для формирования шума мутации двойное экспоненциальное распределение вероятностей с f_{E,\varepsilon}(x)=\frac{\xi}{2}e^{-\xi|x|}. Потомок генерируется следующим образом:

    x'_{ij}(t)=x_{ij}(t)+\sigma_{ij}(t)\frac{1}{\xi}E_{ij}(0,1),

    где для \sigma_{ij} выполняется самоадаптация и изменение распределения контролируется параметром \xi. При этом, чем меньше значение \xi, тем имеет место большее изменение. Обычно используются малые начальные значения \xi, которые увеличиваются со временем.

  • Ускоренное эволюционное программирование использует два оператора вариации:

    • Оператор направления для определения направления поиска на основе значений фитнесс-функции;
    • мутация Гаусса \eta_{ij}(t)\sim N(0,\sigma_{ij}(t)).

    Здесь особи представляются в виде X_i(t)=(x_i(t),p_i(t),a_i(t)), где p_i\in\{-1,1\},j=1,\dots,n_x дает направление поиска для каждой компоненты i-ой особи и a_i–возраст этой особи. При этом возраст используется для форсирования расширения пространства поиска в том случае, если потомок хуже родителей. Потомок генерируется в два этапа. На первом шаге изменяются значения параметра возраста для каждой особи и определяется направление поиска (в предположении минимизации) следующим образом:

    a_{i}(t)=\begin{cases}1,&\mbox{если $f(x_i(t))<f(x_i(t-1))$}\\a_i(t-1)+1,&\mbox{в противном случае}\end{cases}\mbox{ и}\\p_{ij}(t)=\begin{cases}sign(x_{ij}(t)-x_{ij}(t-1)),&\mbox{если $f(x_i(t))<f(x_i(t-1))$}\\p_{ij}(t-1),&\mbox{в противном случае}\end{cases}.

    Если значение фитнесс-функции особи улучшается, поиск продолжается в прежнем направлении. В противном случае увеличивается значение параметра возраста по следующему правилу:

    Если a_{i=1}, то

    \sigma_i(t)=\gamma_1f(x_i(t))\\x'_{ij}(t)=x_{ij}(t)+p_{ij}(t)|N(0,\sigma_i(t))|

    иначе

    \sigma_i(t)=\gamma_2f(x_i(t))a_i(t)\\x'_{ij}(t)=x_{ij}(t)+N(0,\sigma_i(t)),

    где \gamma_1,\gamma_2 -положительные компоненты.

Кроме приведеннных видов реализации разработаны многие другие модификации ЭП, некоторые из которых представлены в [5].