
- •Скобцов ю.А. «эволюционные вычисления»
- •3 Источника эволюционных вычислений
- •Генетические алгоритмы
- •Генетические операторы Репродукция
- •Оператор кроссинговера(скрещивания)
- •Мутация
- •Простой пример
- •Репродукция
- •Представление вещественных решений в двоичной форме
- •Пример функции с популяцией особей в начале эволюции
- •«Конденсация» особей в окрестностях эксремумов
- •Положение особей популяции в конце эволюции
- •Использование кода Грея в га
- •1.8.1 Концептуальная простота
- •1.8.2 Широкая применимость
- •1.8.3 Меньшие требования при решении реальных задач
- •1.8.4 Потенциальное использование априорных знаний и гибридизация с другими методами
- •1.8.5 Параллелизм.
- •1.8.6 Устойчивость к динамическим изменениям
- •1.8.7 Способность к самоорганизации
- •1.8.8 Решение проблем, которые не имеют опыта решений
- •1.8.9 Недостатки га
- •Га для задач комбинаторной оптимизации Задача о покрытии
- •Задача об укладке рюкзака
- •Модификации и обобщения га
- •Пример двухточечного кроссинговера
- •Пример четырехточечного кроссинговера
- •1. Дискретная рекомбинация
- •Промежуточная рекомбинация
- •Мутация над вещественными числами
- •Генетические алгоритмы с изменяемой мощностью популяций
- •Параллельные генетические алгоритмы
- •Генетическое программирование
- •Усекающая мутация
- •Растущая мутация
- •Мутация «Обмен поддеревьев»
- •Фитнесс-функция в генетическом программировании
- •Применение эволюционных вычислений
- •С основами эволюционных вычислений можно ознакомиться в следующей книге:
Генетические операторы Репродукция
Репродукция – это процесс, в котором хромосомы копируются в промежуточную популяцию для дальнейшего "размножения" согласно их значениям целевой (фитнес-) функции. При этом хромосомы с лучшими значениями целевой функции имеют большую вероятность попадания одного или более потомков в следующее поколение. Этот оператор представляется в алгоритмической форме различными способами. Самый простой (и популярный) метод реализации ОР – построение колеса рулетки, в которой каждая хромосома имеет сектор, пропорциональный ее значению ЦФ.
=
Оператор кроссинговера(скрещивания)
Одноточечный или простой оператор кросинговера (ОК) с заданной вероятностью Pc выполняется в 3 этапа:
1
-й
этап. Две
хромосомы (родители)
A=
B=
выбираются случайно (или одним из методов, рассмотренных в разделе 3) из промежуточной популяции, сформированной при помощи оператора репродукции (ОР).
2-й этап. Случайно выбирается точка скрещивания - число k из диапазона [1,2…n-1], где n – длина хромосомы (число бит в двоичном коде )
3-й этап. Две новых хромосомы A', B' (потомки) формируются из A и B путем обмена подстрок после точки скрещивания:
A=
B=
Например, рассмотрим выполнение кроссинговера для хромосом 1 и 2 из промежуточной популяции:
A=0 1 1 0 1
B=1 1 0 0 0
1 k 4, k=4
A=0 1 1 0 0
B=1 1 0 0 1
Кроссинговер
выполняется с заданной вероятностью
Pc
(отобранные два родителя не обязательно
производят потомков). Обычно величина
.
Мутация
Далее
согласно схеме классического ГА с
заданной вероятностью
выполняется оператор мутации. Иногда
этот оператор играет вторичную роль.
Обычно вероятность мутации мала -
Оператор мутации (ОМ) выполняется в 2 этапа:
1-й
этап. В
хромосоме A=
случайно выбирается k-ая
позиция (бит) мутации ( 1
k
n
).
2-й этап. Производится инверсия значения гена в k-й позиции.
.
Например, для хромосомы 11011 выбирается k=3 и после инверсии значения третьего бита получается новая хромосома – 11111.
Простой пример
Р
ассмотрим
работу простого ГА на следующем примере
из популярной монографии Голдберга
[2]. Надо найти (для простоты) целочисленное
значение х на отрезке от [0,31], при котором
функции
принимает максимальное значение.
Рис.1.2. Пример функции
Начальный этап работы ГА для данного примера приведен в верхней таблице (репродукция) рис.1.3.
Репродукция
№ хромо-сомы |
Начальная популяция особей |
Десятичное значение x |
Значение f(x) |
|
Среднее значение
|
Максимальное значение f max (x) |
1 |
01101 |
13 |
169 |
0,14 |
293 |
576 |
2 |
11000 |
24 |
576 |
0,49 |
||
3 |
01000 |
8 |
64 |
0,06 |
||
4 |
10011 |
19 |
3 |
0,31 |
Кроссинговер
№ хромо-сомы |
Популяция после репродукции |
Пары хромосом для кроссинговера |
Популяция после кроссинговера |
Значение f(x) |
Среднее значение |
Максимальное значение f max (x) |
1 |
0 |
1-2 |
01100 |
144 |
439 |
729 |
2 |
1 1 0 0 0 |
1-2 |
11001 |
625 |
||
3 |
1 1 0 0 0 |
3-4 |
11011 |
729 |
||
4 |
1 0 0 1 1 |
3-4 |
10000 |
256 |
Мутация
№ хромо-сомы |
Популяция после кроссинговера |
Новая популяция после мутации |
Десятичное значение x |
Значение f(x) |
Среднее значение |
Максимальное значение f max (x) |
1 |
01100 |
01100 |
12 |
144 |
496.5
|
961 |
2 |
11001 |
11001 |
25 |
625 |
||
3 |
11011 |
11111 |
31 |
961 |
||
4 |
10000 |
10000 |
16 |
256 |
Рис.1.3. Эволюция популяции
Здесь особи начальной популяции (двоичные коды значений переменных х - столбец 2) сгенерированы случайным образом. Двоичный код значения х называется хромосомой (она представляет генотип). Популяция образует множество потенциальных решений данной проблемы.