Теория оптимизации: генетические алгоритмы – 3

Генетический алгоритм в изложении Холланда, который принято считать классическим, выглядит следующим образом:

НАЧАЛО /* генетический алгоритм */

Создать начальную популяцию

Оценить приспособленность каждого индивида

останов := FALSE

ПОКА НЕ останов ВЫПОЛНЯТЬ

НАЧАЛО /* создать популяцию нового поколения */

ПОВТОРИТЬ (размер_популяции/2) РАЗ

НАЧАЛО /* цикл воспроизводства */

Выбрать двух индивидов с высокой приспособленностью из предыдущего поколения для скрещивания

Скрестить выбранных индивидов и получить двух потомков

Оценить приспособленности потомков

Поместить потомков в новое поколение

КОНЕЦ

ЕСЛИ все индивиды одинаковы или пройдено заданное количество поколений ТО останов := TRUE

КОНЕЦ

КОНЕЦ

Этот ГА был представлен Д. Холландом в одной из первых работ, и создавался исключительно с теоретической целью. Применяемые на практике алгоритмы, как правило, сильно отличаются от приведенного выше.

Принцип действия алгоритма прост: выживает сильнейший, но реальный механизм его работы весьма сложен. Вполне понятно, что за счет замены «плохих» решений «хорошими», и составления новых решений, мы будет получать все более и более «хорошее»  множество решений. Однако совсем не очевидно как это происходит, и можем ли мы гарантировать, что, в конце концов, доберемся достаточно близко к самому лучшему решению?

Похожие записи

Добавить комментарий