МЕТОД НАПРАВЛЕННОЙ ЭВОЛЮЦИИ
ИСХОДНЫЕ ДАНЫЕ И ОПРЕДЕЛЕНИЯ
· S – множество допустимых решений образующих пространство поиска
· R – множество всех рациональных чисел
· F(x) – функция оптимальности решения. xÎS, F:SÞR
· M(x) – оператор мутации. Оператор мутации путем случайной модификации базового решения xÎS порождает новое решение. M:SÞS.
· P – популяция решений
· DIM(P) – объем популяции P
· P0 – стартовая популяция и P0¹Æ
· limit – максимальный допустимый размер популяции
· PAR(x) – решение, в ходе мутации которого было порождено решение xÎS. PAR:SÞS.
· , где xÎS
· dF(x, d) = F(x) – PAR_F(x) + d, где xÎS, dF:SÞR, dÎR, d ³ 0
· BEST(P) – функция возвращающая решение xÎP, где PÍS и P¹Æ, при котором значение F(x) больше либо равно чем при любом другом yÎP.
· ROUND(x) – функция округления до ближайшего целого, где xÎR.
АЛГОРИТМ
1. k := 0; d1 := 0; d2 := 0;
2. b := BEST(P0)
3. L := SUM{dF(x, |d1|) | xÎPk}
4. Pk+1 := Æ
5. для всех xÎPk выполнять
5.1. i := ROUND((dF(x, |d1|) / L) * limit)
5.2. если i = 0 то GOTO 6
5.3. mutant := M(x)
5.4. Pk+1 := Pk+1 È {mutant}; если d2 > F(mutant) – F(x) < 0 то d2 := F(mutant) – F(x);
5.5. i := i –1
5.6. GOTO 5.2
6. если DIM(Pk+1) > 0 то
6.1. d1 := d2; d2 := 0;
6.2. new_b := BEST(Pk+1)
6.3. если F(new_b) > F(b) то b := new_b
7. если DIM(Pk+1) = 0 то
7.1. result := b
7.2. СТОП
8. k := k +1
9. GOTO 3
КОММЕНТАРИИ
1. Результат работы алгоритма хранится в переменной result.
2. Представленная схема алгоритма показывает общую логику и не направлена на оптимизацию вычислений. В частности, в ходе вычислений множество Pk при переходе на шаг 6 можно удалять из памяти.
3. Пункт 5 позволяет подвергать мутации каждый xÎPk в параллельном режиме.
4. Как видно из алгоритма, преимущественное право на мутацию имеет не то решение, оптимальность которого выше (в традиционных эволюционных методах это приводит к преждевременной сходимости решения в точке локального оптимума), а то которое максимально превзошло родительское решение по оптимальности. Такая стратегия, с одной стороны позволяет сохранить направленность перебора решений (по аналогии с градиентной оптимизацией) и в то же время пытаться модифицировать только те решения, которые наиболее легко улучшить, а не те которые самые оптимальные. Если какое то направление поиска зашло в тупик, то запоминается его лучшее достижение и вычислительные ресурсы перебрасываются на более перспективное направление поиска. Следует отметить наличие процессов инволюции (ухудшения качества решения). Если темп эволюции высокий, то инволюция не занимает относительно много вычислительных ресурсов. Однако в случае, если эволюция зашла в тупик, инволюция приобретает доминирующий характер. Инволюция позволяет более широко тестировать пространство решений и выводит эволюцию из тупика.