В 1960-х гг. Л. Фогель, А. Оуэне и М. Уолш предложили схему эволюции логических автоматов, решающих задачи предсказания, диагностики, распознавания и классификации образцов, а также задачи управления объектом с неизвестным характером.
Логические (конечные) автоматы — это модели, описывающие средствами формальной логики возможные переходы исследуемой системы из некоторого начального состояния в заключительное. Удобной формой представления конечных автоматов являются ориентированные графы (рис. 6.13), где вершина д0 — начальное состояние,— заключительное состояние,— промежуточные состояния; {0, 1} — символы входного словаря.
Конечные автоматы используются в задачах распознавания, управления и многих других приложениях. Знаменитая машина Тьюринга является разновидностью конечного автомата.
Эволюционная программа реализует моделирование процессов естественной эволюции моделей-автоматов, причем в каждый момент времени сохраняется тот «организм», который найлучшим образом может справиться с данной задачей. «Родительский» организм оценивается в зависимости от способности принимать требуемое решение на основе имеющихся данных.
Рис. 6.13. Ориентированный граф, соответствующий конечному автомату
Этот организм подвергается мутации и производит на свет «потомка», которому ставится та же задача и который оценивается таким же образом.
В эволюционном программировании объектами эволюции являются конечные автоматы, способные реагировать на стимулы, поступающие из внешней среды. Каждый автомат на основе текущей информации предсказывает состояние, соответствующее определенному значению функции ценности. Решение ищется постепенным отбором автоматов-родителей, к которым применяется мутация на следующем шаге эволюции.
В эволюционном программировании используются следующие способы реализации оператора мутации:
- изменение заключительного состояния;
- изменение условия перехода из одного состояния в другое;
- добавление нового состояния;
- удаление состояния;
- изменение начального состояния.
Обобщенный алгоритм эволюционного программирования включает следующие шаги.
- Формулируется постановка задачи. Формируются входной словарь, множество входных и выходных состояний, набор возможных состояний, условия переходов из состояния в состояние, функция ценности для характеристики генерируемых моделей.
- Случайным образом генерируется начальная популяция конечных автоматов-родителей.
- Выполняется тестирование автоматов-родителей путем решения поставленной задачи (на вход модели подается заданный образец) и оценка полученных результатов на основе выбранной функции ценности.
- Отсев неперспективных моделей.
- На основе случайного применения оператора мутации к автоматам-родителям производятся потомки-члены новой популяции.
- Тестирование моделей-потомков путем решения постав ленной задачи и оценка полученных результатов.
- Отбор наиболее перспективных потомков.
- Проверка условий окончания процесса эволюции, в качестве которых могут быть: достижение оптимального значения функции ценности и/или достижение предельных значений, ограничивающих длительность процесса. Если условия завершения эволюции удовлетворены, то переход на шаг 9, в противном случае — возврат на шаг 5, где объекты последней сгенерированной популяции выступают в качестве родителей.
- Конец алгоритма.
Дальнейшая эволюция автоматов возможна на основе предъявления автоматам более сложных задач.