Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы эволюционной оптимизации.doc
Скачиваний:
8
Добавлен:
29.04.2019
Размер:
157.7 Кб
Скачать

1)Приведем основные этапы генетического поиска, описанные д.Холландом:

1. Конструируется начальная популяция. Вводится точка отсчета поколений t = 0. Вычисляется приспособленность каждой хромосомы в популяции, а затем средняя приспособленность всей популяции.

2. Устанавливается t = t + 1. Производится выбор двух родителей (хромосом) для реализации оператора кроссинговера. Он выполняется случайным образом пропорционально приспособляемости родителей.

3. Формируется генотип потомков. Для этого с заданной вероятностью производится оператор кроссинговера над генотипами выбранных хромосом. Далее с вероятностью 0,5 выбирается один из потомков Pi(t) и сохраняется как член новой популяции. После этого к Pi(t) последовательно применяется оператор инверсии, а затем мутации с заданными вероятностями. Полученный генотип потомка сохраняется как Pk(t).

4. Определяется количество хромосом для исключения их из популяции, чтобы ее размер оставался постоянным. Текущая  популяция обновляется заменой отобранных хромосом на потомков Pk(t).

5. Производится определение приспособленности (целевой функции) и пересчет средней приспособленности всей полученной популяции.

6. Если t = tзаданному, то переход к 7, если нет, то переход к 2.

7. Конец работы.

Данный алгоритм известен как упрощенный «репродуктивный план Д. Холланда».

Модифицированный га

Приведем модифицированный  генетический алгоритм:

1. Создание начальной популяции решений.

2. Моделирование популяции (определение ЦФ для каждой хромосомы).

3. Пока не проведено необходимое число генераций или не закончилось время, заданное на реализацию алгоритма или не найдено оптимальное значение ЦФ (если оно известно):

а) выбор элементов для оператора репродукции;

Применение:

б) оператора кроссинговера для создания потомков;

в) оператора мутации;

г) оператора инверсии;

д) оператора транспозиции;

е) оператора транслокации;

ж) оператора сегрегации;

з) оператора удаления ;

и) оператора вставки ;

к) оператора рекомбинации к родителям и потомкам для создания новой генерации;

л) оператора редукции.

4.   Реализация новой генерации.

Новые модификации ГА могут строиться путем объединения, частичного устранения либо перестановок пунктов «б – л», а также на основе применения адаптационных принципов управления эволюционным поиском.

2) Генетическое программирование

Генетическое программирование (ГП) - метод синтеза программ, основанный на генетических алгоритмах. Автор ГП J.R Koza определил генетическое программирование как прикладные программы, использующие принципы эволюционной адаптации к конструкции процедурного кода.

Отличие ГП от генетических алгоритмов (ГА) состоит в том, что в хромосоме кодируются не управляемые параметры, а фрагменты программы, с помощью которой можно рассчитать искомые управляемые параметры. Декодирование хромосомы дает алгоритм (программу), в результате исполнения которой получают значение целевой функции.

Примером задачи, решаемой методом генетического программирования, может служить синтез программы вычисления значений некоторой многопараметрической функции. Известны тестовые данные - значения функции на некотором наборе значений аргументов. . Кодируется дерево функции, узлам которого соответствуют арифметические операции или более сложные операторы, а ребрам -переменные. С помощью кроссовера и мутации дерево видоизменяется, меняются и значения целевой функции, которая отражает степень совпадения результатов расчета с тестовыми данными. Повышая степень совпадения, генетический поиск приближает закодированный в хромосоме алгоритм к искомой функции, представленной тестовой выборкой.

Генетическое программирование используется для создания программ с указанными свойствами с помощью генетического алгоритма. Здесь под «программой» будет пониматься одна или более формул, аналитическое выражение для которых требуется найти.

Формулу можно представить в виде дерева, в котором функции являются узлами, а константы и переменные – листьями. Поэтому работа с формулами, по существу сводится к работе с деревьями.