
- •Глава 5
- •5.1. Модель искусственного нейрона
- •5.2. Модели нейронных сетей
- •5.3. Построение нейронной сети
- •5.4. Обучение нейронных сетей
- •Глава 6
- •6.1.2. Разновидности генетических алгоритмов
- •6.1.4. Краткий обзор программных средств
- •6.2.1. Генетическое программирование
- •6 2 2 Эволюционное программирование
- •6.2.3. Эволюционные стратегии
- •Глава 7
- •7.1.1. Характеристики интеллектуальных агентов
- •7.1.2. Архитектуры мультиагентных систем
- •7.2. Коллективное поведение агентов
- •7.3. Примеры мультиагентных систем
- •Глава 8
- •101000, Москва, ул. Покровка, 7
- •182100, Великие Луки, ул. Полиграфистов, 78/12
6 2 2 Эволюционное программирование
В 1960-х гг. Л. Фогель, А. Оуэне и М. Уолш предложили схему эволюции логических автоматов, решающих задачи предсказания, диагностики, распознавания и классификации образцов, а также задачи управления объектом с неизвестным характером [12]. Исследования, идейно очень близкие к работам Л. Фогеля с сотрудниками, были разносторонне развиты и описаны в работах И.Л. Букатовой [2, 3]. В более поздних работах Л. Фогеля [20, 21] эволюционное программирование используется для решения систем линейных алгебраических уравнений.
Логические
(конечные) автоматы — это модели,
описывающие
средствами формальной логики возможные
переходы исследуемой
системы из некоторого начального
состояния в заключительное.
Удобной формой представления конечных
автоматов являются ориентированные
графы (рис. 6.13), где вершина д0
—
начальное
состояние,—
заключительное состояние,
—
промежуточные
состояния; {0, 1} — символы входного
словаря.
Конечные автоматы используются в задачах распознавания, управления и многих других приложениях. Знаменитая машина Тьюринга является разновидностью конечного автомата.
Эволюционная программа реализует моделирование процессов естественной эволюции моделей-автоматов, причем в каждый момент времени сохраняется тот «организм», который нем-/ лучшим образом может справиться с данной задачей. «Родитель* ский» организм оценивается в зависимости от способности при>-нимать требуемое решение на основе имеющихся данных. Этот
298
Рис. 6.13. Ориентированный граф, соответствующий конечному автомату
организм подвергается мутации и производит на свет «потомка», которому ставится та же задача и который оценивается таким же образом. Автомат, который демонстрирует наилучшую способность выполнять требуемые функции, сохраняется и поставляет «потомков» в следующее поколение. Таким образом производятся все лучшие и лучшие модели (программы) для решения поставленной задачи. Процесс завершается, когда получена достаточно хорошая программа или исчерпаны ресурсы времени. Всякий раз, когда поступает новая информация, происходит эволюционный поиск логической структуры, обеспечивающей получение наиболее приемлемого решения.
В эволюционном программировании объектами эволюции являются конечные автоматы, способные реагировать на стимулы, поступающие из внешней среды. Каждый автомат на основе текущей информации предсказывает состояние, соответствующее определенному значению функции ценности. Решение ищется постепенным отбором автоматов-родителей, к которым применяется мутация на следующем шаге эволюции.
В эволюционном программировании используются следующие способы реализации оператора мутации:
изменение заключительного состояния;
изменение условия перехода из одного состояния в другое;
добавление нового состояния;
удаление состояния;
изменение начального состояния.
Обобщенный алгоритм эволюционного программирования включает следующие шаги.
1. Формулируется постановка задачи. Формируются входной словарь, множество входных и выходных состояний, набор воз-
299
можных состояний, условия переходов из состояния в состояние, функция ценности для характеристики генерируемых моделей.
2. Случайным образом генерируется начальная популяция конечных автоматов-родителей.
Выполняется тестирование автоматов-родителей путем ре шения поставленной задачи (на вход модели подается заданный образец) и оценка полученных результатов на основе выбранной функции ценности.
Отсев неперспективных моделей.
На основе случайного применения оператора мутации к ав томатам-родителям производятся потомки-члены новой попу ляции.
Тестирование моделей-потомков путем решения постав ленной задачи и оценка полученных результатов.
Отбор наиболее перспективных потомков.
Проверка условий окончания процесса эволюции, в каче стве которых могут быть: достижение оптимального значения функции ценности и/или достижение предельных значений, ог раничивающих длительность процесса. Если условия завершения эволюции удовлетворены, то переход на шаг 9, в противном слу чае — возврат на шаг 5, где объекты последней сгенерированной популяции выступают в качестве родителей.
Конец алгоритма.
Дальнейшая эволюция автоматов возможна на основе предъявления автоматам более сложных задач.