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

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

10.5. Современные направления эволюционного программирования

В настоящее время известны многочисленные модификации ЭП, которые сильно отличаются от классического ЭП и фактически пересекаются с другими эволюционными алгоритмами, в первую очередь, эволюционными стратегиями (ЭС). В середине восьмидесятых годов в ЭП в качестве генома стали использоваться не только конечные автоматы, но и произвольные структуры данных [3]. Это позволяет с успехом применять ЭП при численной оптимизации и решении задач комбинаторной оптимизации.

В современных работах в качестве особи в ЭП все чаще используется вектор вещественных чисел x. Рассмотрим этот подход на примере минимизации непрерывной неограниченной функции f:R^{n_z}\to R. Обозначим через x_i(t) потенциальное i-е решение в поколении t, у которого каждая компонента x_{ij}(t)\in R,\ j=1,\dots,n_x. Потомок генерируется из родителя с помощью оператора мутации следующим образом:

x'_{ij}(t)=x_{ij}(t)+\Delta x_{ij}(t)

где x'_{ij}– компонента вектора потомка и \Delta x_{ij}(t)- шаг мутации. Размер шага определяется стохастически в соответствии с некоторым вероятностным распределением, где девиация (отклонение) шума задается параметром \sigma_{ij}. В общем виде размер шага вычисляется в соответствии с выражением \Delta x_{ij}(t)=\phi(\sigma_{ij}(t))\eta_{ij}(t), где \phi:R\to R:- функция, которая масштабирует вклад шума \eta_{ij}(t).

На базе характеристик масштабирующей функции \Phi можно разбить алгоритмы ЭП на три группы:

  1. Неадаптивное ЭП, в котором \Phi(\sigma)=\sigma, где отклонения размера шага остаются постоянными.
  2. Динамическое ЭП, где отклонение размера шага изменяется с течением времени в соответствии с некоторой детерминированной функцией (как правило, фитнесс-функцией особи).
  3. Самоадаптивное ЭП, в котором отклонение размера шага изменяется динамически. При этом лучшие значения \sigma_{ij} отслеживаются параллельно с значениями переменных x_{ij}.

Поскольку девиация \sigma_{ij} в значительной степени определяет поведение особи в случае динамического или самоадаптивного ЭП, они относятся к важнейшим параметрам ЭП. При этом каждая особь имеет свою стратегию параметров, в которой каждая особь представляется кортежем \lambda_i(t)=(x_i(t),\sigma_i(t)). Кроме девиации, которая является наиболее популярным параметром в ЭП, в некоторых работах [6,7] ЭП используются коэффициенты корреляции между компонентами особи, что фактически заимствовано из ЭС.

Как и любой эволюционный алгоритм, ЭП основано на стохастическом поиске. Здесь стохастичность вводится в вычисление размера шага, как функции шума \eta_{ij}, соответствующей некоторому вероятностному распределению. Следующие основные вероятностные распределения используются для указанных целей:

Однородное. Здесь шум формируется согласно однородному распределению \eta_{ij}(t)\sim U(x_{\min},x_{\max},j), где x_{\min} и x_{\max} определяют нижнюю и верхнюю границы изменения диапазона значений \eta_{ij}. Отметим, что E[\eta_{ij}]=0 предотвращает любое смещение индуцированного шума, где E[\cdot] означает оператор математического ожидания.

В [8] предложен оператор однородной мутации, который выполняется в соответствии с выражением \Delta x_{ij}(t)=U(0,1)(\hat{y}_j(t)-x_{ij}(t)), где \hat{y}_j представляет лучшую особь текущей популяции C(t). Этот оператор мутации заставляет все особи сделать случайное движение в сторону лучшей особи (подобно социальной компоненте в роевых алгоритмах). При этом лучшая особь не изменяется.

Гауссово. Для Гауссова оператора мутации шум формируется в соответствии с нормальным распределением с нулевым средним значением [6,9]:\eta_{ij}(t)\sim N(0,\sigma_{ij}(t)), где плотность функции Гаусса задается как f_c(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-x^2/(2\sigma^2)} с отклонением \sigma.

Коши. При выполнении оператора мутации Коши \eta_{ij}(t)\sim C(0,v), где v- масштабируюший коэффициент и функция плотности центрирована и определяется следующим образом:

f_c(x)=\frac{1}{\pi}\frac{v}{v+x^2}\mbox{ для }v>0.

Тогда соответствующая функция распределения определяется как F_c(x)=\frac{1}{2}+\frac{1}{\pi}\arctan(\frac{x}{v}). Отметим, что распределение Коши имеет более широкий "хвост" и поэтому данный оператор дает большие значения, чем Гауссов.

Леви. В этом распределении \eta_{ij}(t)\sim L(v), где центрированная функция вероятностей Леви определяется как F_{L,v,\tau}(x)=\frac{1}{\pi}\int_0^{\infty}e^{-\tau q^v}\cos(qx)dq,где \gamma>0- масштабирующий множитель и значения 0<\gamma<2 контролируют форму распределения. Отметим, что в случае \gamma=1 получается распределение Коши, а при \gamma=2- распределение Гаусса. При |x|\gg 1 плотность распределения Леви можно аппроксимировать как f_L(x)\infty x^{-(v+1)}. Алгоритм генерации случайных чисел Леви дан в работе [10].

Экспоненциальное. В этом случае \eta_{ij}(t)\sim E(0,\xi) и функция плотности двойного экспоненциального вероятностного распределения определяется так:

f_{E,\xi}(x)=\frac{\xi}{2}e^{-\xi|x|}, где параметр \xi>0 управляет вариацией (которая равна \frac{2}{\xi^2}). При этом случайные числа генерируются в соответствии со следующими правилами: x=\begin{cases}\frac{1}{\xi}\ln(2y)& if\ y\le 0.5\\-\frac{1}{\xi}\ln(2(1-y))& if\ y> 0.5\end{cases}, где y\sim U(0,1). Следует отметить, что E(0,\xi)=\frac{1}{\xi}E(0,1).

Хаос. Распределение хаоса также может быть использовано для шумовой составляющей \eta_{ij}(t)\sim R(0,1), где R(0,1) представляет хаотическую последовательность в диапазоне (-1,1). Эту последовательность можно генерировать в соответствии с выражением x_{t+1}=\sin(2/x_t)x_t,t=0,1\dots.

Комбинированные (сложные) распределения. В некоторых работах предложено использовать комбинированные распределения, например в[11] введен оператор средней мутации (mean mutation operator - MMO), где применяется линейная комбинация распределений Гаусса и Коши. В этом случае \eta_{ij}(t)=\eta N_{ij}+\eta C_{ij}(t), где \eta N_{ij}(0,1)N(0,1),\eta C_{ij} C(0,1). Результирующее распределение порождает большие мутации, чем Гауссово распределение, но меньшие, чем распределение Коши.

Таким образом, в настоящее время имеется богатый выбор различных видов операторов мутации. Вопрос в том, как различные распределения влияют в процессе поиска решения на расширение или эксплуатацию в пространстве решений. Для достижения хороших характеристик необходимо соблюдать баланс между малыми и большими величинами мутации. Распределение Коши вследствие более широкого "хвоста" порождает большие значения мутации, чем распределение Гаусса. Поэтому распределение Коши больше, чем распределение Гаусса способствует расширению пространства поиска. Поэтому распределение Коши хорошо использовать на начальном этапе поиска решения. Но с другой стороны, мутации на базе распределения Коши работают хуже, чем распределение Гаусса при тонкой коррекции решений на заключительном этапе поиска решений. Распределение Леви дает значения между величинами, порождаемыми распределениями Гаусса и Коши. Поэтому это распределение имеет лучший баланс в расширении и эксплуатации в процессе поиска решения и поэтому предпочтительней.

Другим важнейшим фактором, влияющим на баланс расширения эксплуатации пространства поиска, является метод определения значений параметров ЭП, поскольку размер шага мутации непосредственно зависит от этих параметров.

Выбор вида оператора генетического отбора также играет важную роль для сходимости алгоритма поиска. В классическом ЭП следующая популяция формируется как из особей-родителей, так и особей-потомков. То есть родители и потомки конкурируют в борьбе за выживание. В отличие от других эволюционных алгоритмов, конкуренция основана на использовании относительных, а не абсолютных значений фитнесс-функции. Абсолютное значение фитнесс-функции характеризует насколько данное решение близко к оптимальному. С другой стороны, относительное значение фитнесс-функции показывает насколько оно хорошо по сравнению с группой случайным образом выбранных особей (отобранных из родителей и потомков).

Обозначим через \mu число родительских особей и через \lambda- число потомков. На первом этапе отбора для каждого родителя x_i(t) или потомка x'_i(t) необходимо вычислить значение относительной фитнесс-функции. Определим пул конкуренции P(t)=C(t)\cup C'(t) и особь u_i(t)\in P(t),i=1,\dots,\mu+\lambda, принадлежащую этому пулу. Для каждой особи пула u_i(t)\in P(t) случайным образом генерируется n_p конкурентов из оставшихся особей пула P(t)\backslash u_i(t). Тогда значение фитнесс-функции для каждой особи  u_i(t) вычисляется следующим образом:

s_i(t)=\sum_{l=1}^{n*p} S_{il}(t),

где (в случае минимизации) s_{ij}(t)=\begin{cases}1,&\mbox{если $f(u_l(t))<f(u_i(t))$}\\0,&\mbox{в противном случаи}\end{cases}..

В работе [12] предложен более "мягкий" подход, где число успешных исходов вычисляется согласно следующей формуле s_{ij}(t)=\begin{cases}1,&\mbox{если $r_1<\frac{f(u_i(t))}{f(u_l(t))+f(u_i(t))}$}\\0,&\mbox{в противном случаи}\end{cases}., где n_p оппонентов выбирается согласно выражению l=\lfloor 2\mu r_2+1\rfloor и r_1r_2\sim U(0,1). При этом в случае значительного превосходства f(u_i(t))\ll f(u_l(t)) с высокой вероятностью значение фитнесс-функции увеличивается на 1.

Основываясь на полученных значениях фитнесс-функции для каждой особи, далее выполняется отбор особей одним из методов, рассмотренных в разделе 3 (элитизма, турнира, рулетки, ранжирования и т.п.).

Кроме этого, различные методы можно использовать для отбора особи (родителя или потомка) в популяцию следующего поколения. Часто используется следующий подход, где выбирается по абсолютным значениям фитнесс-функции лучший потомок данного родителя и принимается решение о том, кто из них перейдет в следующее поколение согласно методу моделирования отжига. То есть потомок x'_i(t) выживает в следующем поколении если:

  1. f(x_i(t))< f(x_l(t)), или
  2. e^{(-(f(x'_i(t))-f(x_l(t)))/\tau(t))}>U(0,1),

где \tau- температурный коэффициент с \tau(t)=\gamma\tau(t-1),0<\gamma<1, иначе в следующем поколении выживает родительская особь. В этом случае, согласно методу моделирования отжига имеет шанс выжить особь с худшим значением фитнесс-функции.