Cтраница 2
Структуру эволюционной программы довольно точно отображает блок-схема, приведенная на рис. 4.3. Она совпадает со структурой генетического алгоритма, поскольку идеи эволюционной программы целиком заимствованы из теории генетических алгоритмов. Различия имеют глубинный характер, они касаются способов представления хромосом и реализации генетических операторов. Эволюционные программы допускают большее разнообразие структур данных, поскольку возможно не только двоичное кодирование хромосом, а также предоставляют расширенный набор генетических операторов. [16]
Классический генетический алгоритм выполняется при фиксированной длине двоичных последовательностей и в нем применяются операторы скрещивания и мутации. Эволюционные программы обрабатывают более сложные структуры ( не только двоичные коды) и могут выполнять иные генетические операции. Например, эволюционные стратегии могут трактоваться в качестве эволюционных программ, в которых хромосомы представляются вещественными ( не двоичными) числами, а мутация используется как единственная генетическая операция. [17]
Каждая особь представляет потенциальное решение задачи, которое в произвольной эволюционной программе может отображаться некоторой ( в том числе и достаточно сложной) структурой данных D. Любое решение х, оценивается по значению его приспособленности. Далее в процессе селекции на ( / с 1) - й итерации из наиболее приспособленных особей формируется очередная популяция. Некоторые особи этой новой популяции трансформируются с помощью генетических операторов, что позволяет получать новые решения. От эволюционной программы ожидается, что после смены некоторого количества поколений наилучшая особь будет представлять решение, близкое к оптимальному. [18]
При реализации первого подхода применяется классический генетический алгоритм, а при реализации второго подхода - эволюционная программа. Однако чаще всего встречается термин эволюционные алгоритмы. Эволюционные программы также могут рассматриваться как эволюционные алгоритмы, подготовленные программистом для выполнения на компьютере. Основная задача программиста заключается при этом в выборе соответствующих структур данных и генетических операторов. Именно такая трактовка понятия эволюционная программа представляется наиболее обоснованной. [19]