27
Генетические алгоритмы

Генетические алгоритмы

Embed Size (px)

DESCRIPTION

Генетические алгоритмы. Формальное определение. - PowerPoint PPT Presentation

Citation preview

Page 1: Генетические алгоритмы

Генетические алгоритмы

Page 2: Генетические алгоритмы

2

Формальное определение

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

Page 3: Генетические алгоритмы

3

Зачем нужны ГА?

• Генетические алгоритмы применяются для решения следующих задач:– Оптимизация функций – Разнообразные задачи на графах (задача

коммивояжера, раскраска, нахождение паросочетаний) – Настройка и обучение искусственной нейронной сети – Составление расписаний – Игровые стратегии – Аппроксимация функций – Искусственная жизнь – Биоинформатика

Page 4: Генетические алгоритмы

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: Генетические алгоритмы

5

Принцип работы ГА• Популяция – совокупностью всех «особей»,

представляющих собой строки, кодирующие одно из решений задачи.

• С помощью функции приспособленности:– наиболее приспособленные (более подходящие

решения) получают возможность скрещиваться и давать потомство

– наихудшие (плохие решения) удаляются из популяции и не дают потомства

• Таким образом, приспособленность нового поколения в среднем выше предыдущего.

• В классическом ГА:– начальная популяция формируется случайным образом– размер популяции (количество особей N) фиксируется и

не изменяется в течение работы всего алгоритма– каждая особь генерируется как случайная L-битная

строка, где L — длина кодировки особи– длина кодировки для всех особей одинакова

Page 6: Генетические алгоритмы

6

Схема работы любого ГА

Шаг алгоритма состоит из трех стадий:

1. генерация промежуточной популяции (intermediate generation) путем отбора (selection) текущего поколения

2. скрещивание (recombination) особей промежуточной популяции путем кроссовера (crossover), что приводит к формированию нового поколения

3. мутация нового поколения

Page 7: Генетические алгоритмы

Применение генетических алгоритмов в задачах

оптимизации – поиска минимума функции Швефеля

Page 8: Генетические алгоритмы

Были разработаны специальные функции для тестирования различных оптимизационных алгоритмов. Такие функции характеризуются множеством локальных минимумов и одним глобальным. Задача состоит в том, чтобы найти этот глобальный минимум и при этом не застрять в одном из локальных минимумов.

В качестве такой функции примем функцию Ханс-Пауля Швефеля, предложенную им в своей работе 1977 года.

В оригинальной работе она выражена так:

Здесь аргументов функции может быть множество – это многокритериальная оптимизация. Для геометрической интерпретации поиска примем эту функцию от двух аргументов, так как большее количество аргументов уже не представимо графически в нашем трёхмерном пространстве.

Трёхмерная поверхность этой функции имеет следующий вид:

n

iiin xxxxf

11 sin*),...(

221121 sin*sin*),( xxxxxxf

Page 9: Генетические алгоритмы
Page 10: Генетические алгоритмы

На плоскости XY под трёхмерным графиком находится контурный график с изображёнными линиями одинакового уровня.

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

Затем на этот график накладываются точки особей популяции в количестве 1000 особей. Это начальная популяция – поколение №1.

Рядом с этим графиком строится гистограмма распределения значений функции по популяции.

Затем для каждой особи популяции вычисляется целевая функция – это значение функции. По величине целевой функции сортируется популяция. Верхние 500 особей с меньшими значениями будут родителями, а 500 нижних не выживут и не перейдут в следующее поколение. Их места займут дети верхних особей.

Затем кроссовер между родителями, и родители вместе с детьми составляют поколение №2.

После этого к каждой особи нового поколения применяется оператор мутации с вероятностью 3%.

Затем также осуществляется отбор и далее аналогично.

Page 11: Генетические алгоритмы

-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: Генетические алгоритмы

По графикам видно, что почти всё поле покрыто точками особей. Гистограмма показывает, что математическое ожидание около 0, так как функция симметрична относительно 0, и значения её простираются примерно от -1500 до 1500.

Переходим к последующим поколениям.

Page 13: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы

-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: Генетические алгоритмы