МодСистЛЕКЦ / Эволюционное программирование
..docЭволюционное программирование
Эволюционное программирование представляет собой эволюционный процесс моделирования логических (конечных) автоматов. Объектами моделирования служат конечные автоматы.
Конечный автомат – это модель исследуемой системы, описывающая ее поведение средствами формальной логики. При этом множество возможных состояний системы обычно представляют в виде ориентированного графа, который показывает, как происходит переход системы из одного состояния в другое.
Конечные автоматы используют в задачах распознавания, диагностики, прогнозирования, управления системами.
Ориентированный граф, соответствующий, например, автомату с четырьмя состояниями может выглядеть так.
А 0 а 1 а 2
А к
В эволюционном программировании в качестве популяции выступает набор конечных автоматов допустимых для решения рассматриваемой задачи
Путем применения к популяции операции рекомбинации получают новую популяцию. При этом в новую популяцию отбираются те автоматы, которые показывают наилучшую способность решать поставленную задачу. Процесс заканчивается тогда, когда будут выполнены заданные условия, например, когда исчерпаны временные ресурсы.
В общем случае алгоритм поиска наилучшего автомата состоит из следующих этапов.
-
Формируется набор входных терминов, множество начальных , конечных и возможных состояний, условия перехода из одного состояния в другое и функция ценности автомата.
-
Составляется случайная начальная популяция.
-
На основе заданной функции ценности дается оценка каждому автомату популяции.
-
Отбор в новую популяцию наилучших автоматов.
-
Путем применения оператора рекомбинации к автоматам популяции составляется новая популяция.
-
Оценка автоматов вновь созданной популяции и отбор наиболее перспективных
-
Проверка окончания процесса поиска оптимального автомата.
Эволюционные стратегии