Upload
colette-austin
View
61
Download
3
Embed Size (px)
DESCRIPTION
Генетические алгоритмы. Формальное определение. - PowerPoint PPT Presentation
Citation preview
Генетические алгоритмы
2
Формальное определение
• Генетический алгоритм — это алгоритм, который позволяет найти удовлетворительное решение к аналитически неразрешимым проблемам через последовательный подбор и комбинирование искомых параметров с использованием механизмов, напоминающих биологическую эволюцию.
3
Зачем нужны ГА?
• Генетические алгоритмы применяются для решения следующих задач:– Оптимизация функций – Разнообразные задачи на графах (задача
коммивояжера, раскраска, нахождение паросочетаний) – Настройка и обучение искусственной нейронной сети – Составление расписаний – Игровые стратегии – Аппроксимация функций – Искусственная жизнь – Биоинформатика
4
Ключевые работы• Родителем современной теории генетических алгоритмов
считается Д.Х. Холланд (J. Holland). Однако сначала его интересовала, прежде всего, способность природных систем к адаптации, а его мечтой было создание такой системы, которая могла бы приспосабливаться к любым условиям окружающей среды.
• В 1975 году Холланд публикует свою самую знаменитую работу «Adaptation in Natural and Artificial Systems».В ней он впервые ввёл термин «генетический алгоритм» и предложил схему классического генетического алгоритма (canonical GA). В дальнейшем понятие «генетические алгоритмы» стало очень широким, и зачастую к ним относятся алгоритмы, сильно отличающиеся от классического ГА.
• Ученики Холланда - Кеннет Де Йонг (Kenneth De Jong) и Дэвид Голдберг (David E. Goldberg) - внесли огромный вклад в развитие ГА. Наиболее известная работа Голдберга - «Genetic algorithms in search optimization and machine learning» (1989).
5
Принцип работы ГА• Популяция – совокупностью всех «особей»,
представляющих собой строки, кодирующие одно из решений задачи.
• С помощью функции приспособленности:– наиболее приспособленные (более подходящие
решения) получают возможность скрещиваться и давать потомство
– наихудшие (плохие решения) удаляются из популяции и не дают потомства
• Таким образом, приспособленность нового поколения в среднем выше предыдущего.
• В классическом ГА:– начальная популяция формируется случайным образом– размер популяции (количество особей N) фиксируется и
не изменяется в течение работы всего алгоритма– каждая особь генерируется как случайная L-битная
строка, где L — длина кодировки особи– длина кодировки для всех особей одинакова
6
Схема работы любого ГА
Шаг алгоритма состоит из трех стадий:
1. генерация промежуточной популяции (intermediate generation) путем отбора (selection) текущего поколения
2. скрещивание (recombination) особей промежуточной популяции путем кроссовера (crossover), что приводит к формированию нового поколения
3. мутация нового поколения
Применение генетических алгоритмов в задачах
оптимизации – поиска минимума функции Швефеля
Были разработаны специальные функции для тестирования различных оптимизационных алгоритмов. Такие функции характеризуются множеством локальных минимумов и одним глобальным. Задача состоит в том, чтобы найти этот глобальный минимум и при этом не застрять в одном из локальных минимумов.
В качестве такой функции примем функцию Ханс-Пауля Швефеля, предложенную им в своей работе 1977 года.
В оригинальной работе она выражена так:
Здесь аргументов функции может быть множество – это многокритериальная оптимизация. Для геометрической интерпретации поиска примем эту функцию от двух аргументов, так как большее количество аргументов уже не представимо графически в нашем трёхмерном пространстве.
Трёхмерная поверхность этой функции имеет следующий вид:
n
iiin xxxxf
11 sin*),...(
221121 sin*sin*),( xxxxxxf
На плоскости XY под трёхмерным графиком находится контурный график с изображёнными линиями одинакового уровня.
Для дальнейшей работы строим плоский график этих уровней, причём раскрашиваем его в серые тона, где более тёмные места означают меньшие значения функции.
Затем на этот график накладываются точки особей популяции в количестве 1000 особей. Это начальная популяция – поколение №1.
Рядом с этим графиком строится гистограмма распределения значений функции по популяции.
Затем для каждой особи популяции вычисляется целевая функция – это значение функции. По величине целевой функции сортируется популяция. Верхние 500 особей с меньшими значениями будут родителями, а 500 нижних не выживут и не перейдут в следующее поколение. Их места займут дети верхних особей.
Затем кроссовер между родителями, и родители вместе с детьми составляют поколение №2.
После этого к каждой особи нового поколения применяется оператор мутации с вероятностью 3%.
Затем также осуществляется отбор и далее аналогично.
-1500 -1000 -500 0 500 1000 1500 20000
5
10
15
20
25
30
35Гистограмма значений функции
x
yПоколение 1
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
По графикам видно, что почти всё поле покрыто точками особей. Гистограмма показывает, что математическое ожидание около 0, так как функция симметрична относительно 0, и значения её простираются примерно от -1500 до 1500.
Переходим к последующим поколениям.
-1500 -1000 -500 0 500 1000 15000
5
10
15
20
25
30
35
40Гистограмма значений функции
x
yПоколение2
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1000 -500 0 500 10000
10
20
30
40
50
60
70Гистограмма значений функции
x
yПоколение3
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1000 -500 0 500 10000
5
10
15
20
25
30
35
40
45
50Гистограмма значений функции
x
yПоколение4
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1000 -500 0 5000
10
20
30
40
50
60
70
80Гистограмма значений функции
x
yПоколение5
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1000 -500 0 5000
10
20
30
40
50
60
70
80
90Гистограмма значений функции
x
yПоколение6
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1400 -1300 -1200 -1100 -10000
10
20
30
40
50
60
70
80
90Гистограмма значений функции
x
yПоколение7
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1500 -1400 -1300 -1200 -1100 -1000 -900 -8000
20
40
60
80
100
120
140
160
180
200Гистограмма значений функции
x
yПоколение8
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1450 -1400 -1350 -1300 -1250 -1200 -1150 -11000
50
100
150
200
250
300Гистограмма значений функции
x
yПоколение9
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1420 -1410 -1400 -1390 -13800
50
100
150
200
250Гистограмма значений функции
x
yПоколение10
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1425 -1420 -1415 -1410 -1405 -1400 -1395 -13900
50
100
150
200
250
300Гистограмма значений функции
x
yПоколение11
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1429 -1428 -1427 -1426 -1425 -1424 -14230
100
200
300
400
500
600Гистограмма значений функции
x
yПоколение12
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1429 -1428 -1427 -1426 -1425 -1424 -14230
100
200
300
400
500
600
700
800
900Гистограмма значений функции
x
yПоколение13
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1425 -1420 -14150
100
200
300
400
500
600
700
800Гистограмма значений функции
x
yПоколение14
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000
-1430 -1429.5 -1429 -1428.5 -1428 -1427.5 -1427 -1426.5 -14260
100
200
300
400
500
600Гистограмма значений функции
x
yПоколение15
0 200 400 600 800 10000
100
200
300
400
500
600
700
800
900
1000