Генетические алгоритмы
DESCRIPTION
Генетические алгоритмы. Формальное определение. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/1.jpg)
Генетические алгоритмы
![Page 2: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/2.jpg)
2
Формальное определение
• Генетический алгоритм — это алгоритм, который позволяет найти удовлетворительное решение к аналитически неразрешимым проблемам через последовательный подбор и комбинирование искомых параметров с использованием механизмов, напоминающих биологическую эволюцию.
![Page 3: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/3.jpg)
3
Зачем нужны ГА?
• Генетические алгоритмы применяются для решения следующих задач:– Оптимизация функций – Разнообразные задачи на графах (задача
коммивояжера, раскраска, нахождение паросочетаний) – Настройка и обучение искусственной нейронной сети – Составление расписаний – Игровые стратегии – Аппроксимация функций – Искусственная жизнь – Биоинформатика
![Page 4: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/4.jpg)
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).
![Page 5: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/5.jpg)
5
Принцип работы ГА• Популяция – совокупностью всех «особей»,
представляющих собой строки, кодирующие одно из решений задачи.
• С помощью функции приспособленности:– наиболее приспособленные (более подходящие
решения) получают возможность скрещиваться и давать потомство
– наихудшие (плохие решения) удаляются из популяции и не дают потомства
• Таким образом, приспособленность нового поколения в среднем выше предыдущего.
• В классическом ГА:– начальная популяция формируется случайным образом– размер популяции (количество особей N) фиксируется и
не изменяется в течение работы всего алгоритма– каждая особь генерируется как случайная L-битная
строка, где L — длина кодировки особи– длина кодировки для всех особей одинакова
![Page 6: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/6.jpg)
6
Схема работы любого ГА
Шаг алгоритма состоит из трех стадий:
1. генерация промежуточной популяции (intermediate generation) путем отбора (selection) текущего поколения
2. скрещивание (recombination) особей промежуточной популяции путем кроссовера (crossover), что приводит к формированию нового поколения
3. мутация нового поколения
![Page 7: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/7.jpg)
Применение генетических алгоритмов в задачах
оптимизации – поиска минимума функции Швефеля
![Page 8: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/8.jpg)
Были разработаны специальные функции для тестирования различных оптимизационных алгоритмов. Такие функции характеризуются множеством локальных минимумов и одним глобальным. Задача состоит в том, чтобы найти этот глобальный минимум и при этом не застрять в одном из локальных минимумов.
В качестве такой функции примем функцию Ханс-Пауля Швефеля, предложенную им в своей работе 1977 года.
В оригинальной работе она выражена так:
Здесь аргументов функции может быть множество – это многокритериальная оптимизация. Для геометрической интерпретации поиска примем эту функцию от двух аргументов, так как большее количество аргументов уже не представимо графически в нашем трёхмерном пространстве.
Трёхмерная поверхность этой функции имеет следующий вид:
n
iiin xxxxf
11 sin*),...(
221121 sin*sin*),( xxxxxxf
![Page 9: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/9.jpg)
![Page 10: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/10.jpg)
На плоскости XY под трёхмерным графиком находится контурный график с изображёнными линиями одинакового уровня.
Для дальнейшей работы строим плоский график этих уровней, причём раскрашиваем его в серые тона, где более тёмные места означают меньшие значения функции.
Затем на этот график накладываются точки особей популяции в количестве 1000 особей. Это начальная популяция – поколение №1.
Рядом с этим графиком строится гистограмма распределения значений функции по популяции.
Затем для каждой особи популяции вычисляется целевая функция – это значение функции. По величине целевой функции сортируется популяция. Верхние 500 особей с меньшими значениями будут родителями, а 500 нижних не выживут и не перейдут в следующее поколение. Их места займут дети верхних особей.
Затем кроссовер между родителями, и родители вместе с детьми составляют поколение №2.
После этого к каждой особи нового поколения применяется оператор мутации с вероятностью 3%.
Затем также осуществляется отбор и далее аналогично.
![Page 11: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/11.jpg)
-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
![Page 12: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/12.jpg)
По графикам видно, что почти всё поле покрыто точками особей. Гистограмма показывает, что математическое ожидание около 0, так как функция симметрична относительно 0, и значения её простираются примерно от -1500 до 1500.
Переходим к последующим поколениям.
![Page 13: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/13.jpg)
-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
![Page 14: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/14.jpg)
-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
![Page 15: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/15.jpg)
-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
![Page 16: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/16.jpg)
-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
![Page 17: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/17.jpg)
-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
![Page 18: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/18.jpg)
-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
![Page 19: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/19.jpg)
-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
![Page 20: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/20.jpg)
-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
![Page 21: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/21.jpg)
-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
![Page 22: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/22.jpg)
-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
![Page 23: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/23.jpg)
-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
![Page 24: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/24.jpg)
-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
![Page 25: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/25.jpg)
-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
![Page 26: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/26.jpg)
-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
![Page 27: Генетические алгоритмы](https://reader035.vdocuments.pub/reader035/viewer/2022081503/568130a5550346895d96a011/html5/thumbnails/27.jpg)