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

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

10.6. Параметры ЭП

К основным параметрам ЭП относится, прежде всего, размер шага мутации. В простейшем случае значения отклонения фиксируются и функция параметра линейна, т.е. \Phi(\sigma_{ij}(t))=\sigma_{ij}(t)=\sigma_{ij}, где \sigma_{ij} малая величина. Тогда потомок вычисляется в предположении Гауссова распределения x'_{ij}(t)=x_{ij}(t)+N_{ij}(0,\sigma_{ij}) с \Delta x_{ij}(t)=N_{ij}(0,\sigma_{ij}). Нотация N_{ij}(\cdot,\cdot) означает, что новое случайное значение генерируется для каждой компоненты каждой особи. Очевидным недостатком такого подхода является то, что слишком малые значения \sigma_{ij} ограничивают пространство поиска и дают низкую скорость сходимости. С другой стороны, слишком большие значения \sigma_{ij} сдерживают "эксплуатацию" пространства поиска и способность точной доводки решения. Поэтому разработаны различные динамические стратегии изменения значений параметров.

В одном из первых методов динамической настройки параметров его значение зависит от значения фитнесс-функции [6,13]:

\sigma_{ij}(t)=\sigma_i(t)=\gamma f(x_i(t)), где \gamma \in(0,1] и потомок x'_i(t) генерируется следующим образом \begin{align*}x'_{ij}(t)&=x_{ij}(t)+N(0,\sigma_i(t))\\&=x_{ij}(t)+\sigma_i(t)N(0,1)\end{align*}.

Если доступна информация о глобальном оптимуме, то вместо абсолютного значения фитнесс-функции можно использовать значение ошибки. Но, к сожалению, такая информация обычно недоступна. В качестве альтернативы можно использовать расстояние (на уровне фенотипа) от лучшей текущей особи, которое определяется выражением

\sigma_{ij}(t)=\sigma_i(t)=|f(\hat{y}-f(x_i)|

где \hat y- лучшая особь.

Расстояние от лучшей текущей особи в пространстве решений также можно использовать для этих целей:

\sigma_{ij}(t)=\sigma_i(t)=\varepsilon(\hat y,x_i)

где \varepsilon(\cdot,\cdot) означает Евклидово расстояние между векторами. Преимущество этого подхода в том, что здесь чем хуже особь, тем больше шансов у нее мутировать. При этом потомок удаляется от худшей родительской особи. С другой стороны, чем лучше особь, тем потомок меньше удаляется от родительской особи, что позволяет "доводить" хорошее текущее решение. Но данный подход имеет следующие недостатки:

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

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

  • Фогель [9] предложил аддитивный подход, где x'_{ij}(t)=x_{ij}(t)+\sqrt{\beta_{ij}(t)f(x_i)+\gamma_{ij}+N_{ij}(0,1)}\beta_{ij} и \alpha_{ij} - коэффициенты пропорциональности и сдвига.
  • Для функции f(x_1,x_2)=x_1^2+x_2^2 в [14] предложено \sigma_{ij}(t)=\sigma_i(t)=\frac{1.224\sqrt{f(x_i(t))}}{n_x},где n_x- размерность пространства поиска (n_x=2).
  • Для обучения рекуррентных нейронных сетей в [15] используется x'_{ij}(t)=x_{ij}(t)+\beta\sigma_{ij}(t)N_{ij}(0,1), где \beta- коэффициент пропорциональности и sigma_{ij}(t)=U(0,1)\left[1-\frac{f(x_i(t))}{f_{\max}(t)}\right] с максимальным значением f_{\max}(t) текущей популяции (здесь рассматривается случай максимизации и f(x_i(t)) возвращает положительные значения).
  • В работе [17] (для задач минимизации) используется отклонение, пропорциональное нормализованному значению фитнесс-функции x'_{ij}(t)=x_{ij}(t)+\beta\sigma_i(t)N_{ij}(0,1), где \beta_{ij}- коэффициент пропорциональности, \sigma_i(t)=\frac{f(x_i(t))}{\sum_{i=1}^{n_x}f(x_i(t))} и n_s - мощность популяции.
  • В работе [17] (для задач максимизации) используется выражение \sigma_{ij}(t)=(x_{\max,j}-x_{\min,j})(\frac{f_{\max}(t)-f(x_i(t))}{f_{\max}(t)}+\gamma), которое позволяет комбинировать граничные условия и фитнесс-функцию. Здесь x_{\min} и x_{\max} определяют границы диапазона изменения в пространстве поиска и параметр \gamma>0 является малым числом.
  • В [18] используется отклонение, пропорциональное расстоянию от лучшей особи \beta_{ij}=\beta\frac{\sqrt{\varepsilon(x_{\min},x_{\max})}}{\pi},где параметр \gamma>0 и коэффициент пропорциональности \beta_{ij} определяется следующим образом: \beta_{ij}=\beta\frac{\sqrt{\varepsilon(x_{\min},x_{\max})}}{\pi}, где \beta\in[0,2] и E(x_{\min},x_{\max}) определяет ширину пространства поиска как Евклидово расстояние между векторами x_{\min} и x_{\max}. При этом большие значения параметра \gamma способствуют расширению пространства поиска, а малые значения – его эксплуатации. Иногда этот параметр изменяется со временем от больших начальных значений до малых конечных. При этом потомок генерируется так: x_{ij}(t)=x_{ij}(t)-dit(x_{ij})\sigma_{ij}(t)N_{ij}(0,1), где направление определяется выражением dir(x_{ij})=sign(\hat y_i-x_{ij})
  • В работе [19] предложено использовать следующее выражение: \sigma_{ij}(t)=\left[\frac{1}{\sqrt{\beta_jf(x(t))+\lambda_j}}\right]\left[\frac{\lambda}{f_{\max}(t)-f_{\min}(t)}\right], где \gamma=2.5 и f_{\min}, f_{\max} представляют минимальное и максимальное значения фитнесс-функции текущей популяции.