Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГА.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.1 Mб
Скачать

Кроссовер оператор

Кроссовер оператор является первичным. Он осуществляет следующие функции:

(1) выбирает двух «родителей», (2) комбинирует гены (черты) родителей и (3) формирует двух «похожих детей», т.е. потомков (offspring).

Существует много форм кроссовера. Простейший из них описывается следующим образом. Пара родителей выбирается случайным образом. Для каждой пары также случайным образом выбирается так называемая «точка кроссовера» (a point of crossover) (одна, или две, или несколько). Эта точка указывает, какое число бит с правого конца каждой хромосомы (строки битов) должно обменяться друг с другом. Например, если пара родителей представляется в виде следующих строк-хромосом: и . Пусть точка кроссовера = 3 и пусть эта точка показывается символом “ “. Тогда имеем следующую схему обмена:

и .

Кроссовер оператор сгенерирует следующих «потомков»:

и .

Итак, можно видеть, что непрерывные группы бит с правого конца хромосом обмениваются своими значениями.

Примечание. Существуют другие типы кроссовер оператора, например, такие как

  1. Uniform crossover:

Чтобы обобщить процесс кроссовера, в этом случае используется специальная строка, называемая a crossover mask. 1 в строке-маске означает, что соответствующие биты в хромосомах должны обменяться своими значениями. 0 означает, что обмена не происходит.

  1. Linear interpolation 2-point crossover:

Как следует из определения, при производстве новых индивидуумов (для дальнейшего тестирования) оператор кроссовер базируется только на той информации, которая присутствует в родителях.

Оператор мутации

Оператор мутации, который меняет одну или несколько бит в выбранной хромосоме, обеспечивает способ, с помощью которого вносится новая информация в новое поколение.

В литературе предлагается большой диапазон операторов мутации, начиная от случайных до более эвристических операторов поиска. Оператор мутации является вторым оператором поиска, который позволяет ГА исследовать все точки пространства поиска.

В результате, сгенерированные потомки оцениваются и возвращаются в популяцию, замещая «родителей».

Примечание. Сколько членов популяции замещаются в течении каждой итерации и как выбираются члены популяции для замещения – определяют тот или иной тип ГА.

Этап 5: Критерий останова (Checking of End_Test)

t = t+1; IF NOT (End_Test) THEN go to Step2 ; else stop.

Критерий останова (“End_Test”) описывает условия окончания ГА. Обычно это либо заданное общее число генераций поколений (например, 200), либо общее время работы (например, 3 часа) и т.д.

По окончанию работы ГА индивидуумы последней популяции представляют решение заданной задачи оптимизации.

Пример оптимизации, основанной на га

Рассмотрим простой пример оптимизации с помощью ГА. Поставим следующую задачу: найти максимум функции на интервале целых чисел [0-31] с помощью механизма поиска ГА. Итак, имеем следующую проблему для ГА: найти величину , которая дает максимум функции пригодности .

Прежде всего, ГА работает с хромосомами (закодированными параметрами проблемы, которую оптимизируем). Следовательно, параметры нашей задачи, а именно числа интервала [0-31] должны быть закодированы. Будем использовать бинарное кодирование. Рассмотрим строки, состоящие из пяти бит: от до .

Примечание. Бинарная строка длины может представлять индивидуумов. Следовательно, строки длиной могут представлять числа 1,2,3,...32 ( 25 = 32).

Пусть начальная популяция сформирована случайным образом, например, так, как показано в Таблице 3-1.

Таблица 3-1. Начальная популяция

Примечание. В таблице 3-1 представлены числа в двух формах: бинарной и десятичной. Напомним правило перевода бинарного числа в десятичное:

.

Например, .

Следующий шаг – репродукция. Оператор репродукции оценивает и выбирает пары для формирования промежуточной популяции (mating pool) следующим образом: одна копия строки 01101, две копии строки 11000 и одна копия 10011 выбраны с использованием процедуры «рулетки».

Теперь применим кроссовер оператор так как показано в Таблице 3-2. Точка кроссовера получена с помощью генератора случайных чисел.

Таблица 3-2. Строки Mating pool и crossover.

После «кроссовера» применяется оператор мутации, который случайным образом модифицирует хромосому (строку). Для определения вероятности мутации используются специальные вероятностные функции. В Таблице 3-3 показана новая популяция строк после применения мутации (как видно, в данном случае вероятность мутации равна нулю).

Таблица 3- 3. Новая популяция строк

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

Итак, последняя (после останова ГА) популяция представляет собой решение проблемы оптимизации. В этом случае мы говорим, что ГА сходится к оптимальному решению. Сходимость ГА означает, что все хромосомы в конечной популяции имеют одни и те же гены.

Мы показали, что даже простой ГА представляет собой сложный процесс обработки информации. На рисунках 3-2 (a,b,c,d) приведена блок-схема вычислений ГА.