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