МЕТОД НАПРАВЛЕННОЙ ЭВОЛЮЦИИ

 

ИСХОДНЫЕ ДАНЫЕ И ПОНЯТИЯ

 

 

·        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) = F(x) – PAR_F(x) , где xÎS. dF:SÞR

·        BEST(P) – функция возвращающая решение xÎP, где PÍS и P¹Æ, при котором значение F(x) больше либо равно чем при любом другом yÎP.

·        ROUND(x) – функция округления, где xÎR.

 

АЛГОРИТМ

 

1.      k := 0

2.      b := BEST(P0)

3.      L := SUM{dF(x) | xÎPk}

4.      Pk+1 := Æ

5.      для всех xÎPk выполнять

5.1.   i := ROUND((dF(x) / L) * limit)

5.2.   если i = 0 то GOTO 6

5.3.   mutant := M(x)

5.4.   если F(mutant) > F(x) то Pk+1 := Pk+1 È {mutant}

5.5.   i := i –1

5.6.   GOTO 5.2

6.      если DIM(Pk+1) > 0 то

6.1.   new_b := BEST(Pk+1)

6.2.   если 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.      Как видно из алгоритма, преимущественное право на мутацию имеет не то решение, оптимальность которого выше (в традиционных эволюционных методах это приводит к преждевременной сходимости решения в точке локального оптимума), а то которое максимально превзошло родительское решение по оптимальности. Такая стратегия, с одной стороны  позволяет сохранить направленность перебора решений (по аналогии с градиентной оптимизацией) и в то же время  пытаться модифицировать только те решения, которые наиболее легко улучшить, а не те которые самые оптимальные. Если какое то направление поиска зашло в тупик, то запоминается ее лучшее достижение и вычислительные ресурсы перебрасываются на более перспективное направление поиска.

 

ОБСУЖДЕНИЕ

А. Плахов

Генетический алгоритм интересный, но, мне кажется, все еще не очень хорошо спасает от попаданий в «локальные ямы». Только это попадание возникает по другой причине, нежели в традиционном ГП. Недостаток, как мне видится, в том, что в каждое новое поколение добавляются только особи, которые оказались строго лучше предков. Возможно, стоило бы включить возможность добавления в популяцию и особей, которые хуже своего предка (с небольшой вероятностью), и изменить в пунктах 3 и 5.1 изменение dF(x) на (dF(x) + …), чтобы такие особи тоже могли «немножко размножаться».

 

Supremum

А это мысль. Что если пойти дальше и вообще оставлять все особи? По моему так будет намного лучше и исчезнет вопрос о выборе вероятности. Будут присутствовать как процессы эволюции, так и процессы инволюции(деградации). Как только эволюционная ветвь зайдет в тупик, для нее начнет преобладать процесс инволюции который позволит выйти из тупика.