104
Генетичні алгоритми та їх застосування Логічні алгоритми і системи штучного інтелекту Лекція 10 http://boxcar2d.com/

Lect ai 3 ga

Embed Size (px)

Citation preview

Page 1: Lect ai 3  ga

Генетичні алгоритми та їх застосування

Логічні алгоритми і системи штучного інтелекту

Лекція 10

http://boxcar2d.com/

Page 2: Lect ai 3  ga

Ідея

Думай про успішне покоління

Page 3: Lect ai 3  ga

Ідея

Еволюціонуй в гармонії з довкіллям

Super-fit

Page 4: Lect ai 3  ga

Для чого генетичні алгоритми? Генетичні алгоритми

застосовуються для рішення задач: Оптимізація функцій

Різноманітні задачі на графах (задача комівояжера, розфарбування тощо)

Налагодження та навчання штучної нейронної мережі

13/05/2015 4

нейронної мережі

Складання розкладів

Ігрові стратегії

апроксимація функцій

штучне життя

біоінформатика

Page 5: Lect ai 3  ga

Джерела http://www.gotai.net/ http://neuronet.alo.ru/ http://www.neuroproject.ru/ Holland J. H. Adaptation in natural and artificial systems. An introductory

analysis with application to biology, control, and artificial intelligence.—London: Bradford book edition, 1994 —211 p.

De Jong K.A. An analysis of the behavior of a class of genetic adaptive systems. Unpublished PhD thesis. University of Michigan, Ann Arbor, 1975. (Also University Microfilms No. 76-9381).

Darrel Whitley "A Genetic Algorithm Tutorial", 1993.

13/05/2015 5

Darrel Whitley "A Genetic Algorithm Tutorial", 1993. Darrel Whitley, An Overview of Evolutionary Algorithms: Practical Issues

and Common Pitfalls, Journal of Information and Software Technology, 2001.

Mitchell M. An Introduction to Genetic Algorithms. Cambridge, MA: The MIT Press, 1996.

David E. Goldberg, Kumara Sastry "A Practical Schema Theorem for Genetic Algorithm Design and Tuning", 2001.

Вороновский Г.К., Махотило К.В., Петрашев С.Н., Сергеев С.А., Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности, Харьков, ОСНОВА, 1997. – 112с.

Page 6: Lect ai 3  ga

План

1. Генетичні алгоритми: основні поняття

2. Класичний генетичний алгоритм

3. Налаштування ГА

Деякі моделі ГА

13/05/2015 6

4. Деякі моделі ГА

5. Приклади застосування ГА

Page 7: Lect ai 3  ga

1. ГЕНЕТИЧНІ АЛГОРИТМИ: ОСНОВНІ ПОНЯТТЯ

13/05/2015 7

Page 8: Lect ai 3  ga

Теорія еволюції Дарвіна + генетика

Природній відбір

Схрещування

Мутація

Sir Charles DarwinSir Charles Darwin

110011010000100111

010011010000100111

000010100111100110

010111110111110111

010011010000100111

Page 9: Lect ai 3  ga

Нащадки мають комбіновані ознаки, успадковані від кожного

Еволюція на генетичному рівні

успадковані від кожного з батьків

Page 10: Lect ai 3  ga

Еволюція на генетичному рівні

Спостерігаються випадкові зміни

Image adapted from http://www.wpdipart.com

Page 11: Lect ai 3  ga

Еволюція на генетичному рівні

Хромосоми двох різних батьків

Хроматиди перетинаються в Хроматиди перетинаються в

“хіазмі”

Формуються рекомбіновані хромосоми

Далі передаються потомству

Генетичний кроссовер

Page 12: Lect ai 3  ga

Еволюція на генетичному рівні

A T T G C T C оригінал

замінаA T A G C T C

додавання

знищення

A T T G A C T C

A T G C T C

Page 13: Lect ai 3  ga

Історія

1954: Перший опис комп’ютерної симуляції еволюції в роботі Nils Aall Barricelli в Institute of Advanced Study, Princeton.

1957: Fraser розробив перший генетичний алгоритм.

1960: John Holland запропонував власний підхід до ГА.

1966: Ідея ‘Evolutionary computation’, як розділу АІ вперше представлена Lawrence J. Fogel.

1975: John Holland публікує свою найвідомішу роботу «Adaptation in

13/05/2015 13

1975: John Holland публікує свою найвідомішу роботу «Adaptation in Natural and Artificial Systems». У ній він вперше ввів термін «генетичний алгоритм» і запропонував схему класичного генетичного алгоритму (canonical GA). Надалі поняття «генетичні алгоритми» стало дуже широким, і часто до них відносяться алгоритми, що сильно відрізняються від класичного ГА.

Учні Холланда - Кеннет Де Йонг (Kenneth De Jong) і Девід Голдберг (David E. Goldberg) – зробили величезний внесок у розвиток ГА. Найбільш відома робота Голдберга - «Genetic algorithms in search optimization and machine learning» (1989).

Page 14: Lect ai 3  ga

Формальне визначення

Генетичний алгоритм (англ. genetic algorithm) — це еволюційний алгоритм пошуку, що використовується для вирішення задач оптимізації і моделювання шляхом послідовного підбору, комбінування і варіації шуканих параметрів з використанням механізмів, що нагадують біологічну еволюцію.

13/05/2015 14

біологічну еволюцію.

Поширення хороших характеристик покоління в наступному поколінні

Пошук найперспективніших напрямків в просторі рішень

Яким чином?

Page 15: Lect ai 3  ga

Основні поняття та терміни Ген — атомарний елемент генотипу, зокрема, хромосоми.

13/05/2015 15

Хромосоми (ланцюжки або кодові послідовності) — це впорядковані послідовності генів.

Генотип — це набір хромосом даної особини. Отже, особинами популяції можуть бути генотипи або одиничні хромосоми (в досить поширеному випадку, коли генотип складається з однієї хромосоми).

Алель — це значення конкретного гена, також визначається як значення властивості або варіант властивості.

Page 16: Lect ai 3  ga

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

представляються хромосомами з закодованими в них множинами параметрів задачі, тобто рішень, які інакше називаються точками в просторі пошуку (search points). Особиною буде називатися рядок, що є конкатенацією рядків впорядкованого набору параметрів : 1010 10110 101 … 10101| x1 | x2 | x3 | … | xn |

13/05/2015 16

Популяція — множина особин.

ОсобинаПопуляція

Page 17: Lect ai 3  ga

Фенотип — це набір значень, які відповідають даному генотипу, тобто декодована структура або множина параметрів задачі (розв’язок, точка простору пошуку).

Функція пристосованості (fitness function, функція оцінки) свідчить про міру пристосованості даної особини в популяції. Ця функція

Основні поняття та терміни

про міру пристосованості даної особини в популяції. Ця функція дозволяє оцінити ступінь пристосованості конкретних особин у популяції і вибрати з них найбільш пристосовані (тобто мають найбільші значення функції пристосованості) відповідно з еволюційним принципом виживання «найсильніших» (які найкраще пристосувалися).

13/05/2015 17

Page 18: Lect ai 3  ga

Вектор генів(генотип)

Розв’язок(фенотип)

(1, 1, 4, 3)

Page 19: Lect ai 3  ga

Функція пристосованості(фітнес-функція, fitness function)

f( ) = 9,134

f(

f(

) = 4,025

) = 7,239

Page 20: Lect ai 3  ga

2. КЛАСИЧНИЙ ГЕНЕТИЧНИЙ АЛГОРИТМ

Individual (Chromosome)

13/05/2015 20

Page 21: Lect ai 3  ga

Класичний генетичний алгоритм1. ініціалізація, або

вибір вихідної популяції хромосом;

2. оцінка пристосованості хромосом в популяції;

3. перевірка умови зупинки алгоритму;

початок

Ініціалізація – вибір вихідної популяції хромосом

Оцінювання пристосованості хромосом в популяції

13/05/2015 21

4. селекція хромосом;

5. застосування генетичних операторів;

6. формування нової популяції;

7. вибір «найкращої» хромосоми.

Умова закінчення виконана?

Селекція хромосом

Застосування генетичних операторів

Створення нової популяції

Вибір «найкращої» хромосоми

кінець

такні

Page 22: Lect ai 3  ga

Генети

чни

й а

лго

ри

тм

Створення початкової популяції

Кодування

Застосування фітнес-функції

Випадковим чином згенеровані особини

• Генерація випадкового початкового стану

– Перше покоління створюється з довільно вибраних рішень (хромосом).

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка/ Перевірка результату

Розкодування

рішень (хромосом).

– Це відрізняється від стандартних методів, коли початковий стан завжди один і той самий.

Page 23: Lect ai 3  ga

Генети

чни

й а

лго

ри

тм

Створення початкової популяції

Кодування

Застосування фітнес-функції

Бітові рядки (0101 ... 1100)

Дійсні числа (43.2 -33.1 ... 89.2)

Перестановки елементів (E11 E3 E7

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка/ Перевірка результату

Розкодування

елементів (E11 E3 E7 ... E1 E15)

Списки правил (R1 R2 R3 ... R22 R23)

Page 24: Lect ai 3  ga

ПопуляціяПопуляція

N

Page 25: Lect ai 3  ga
Page 26: Lect ai 3  ga

Визначає придатність кожного представника популяції.

Обчислення коефіцієнта пристосованності (fitness)

Кожному рішенню (хромосомі) зіставляється певне

Генети

чни

й а

лго

ри

тм

Створення початкової популяції

Кодування

Застосування фітнес-функції

зіставляється певне чисельне значення, яке залежить від його близькості до відповіді.

Найпростішою фітнес-функцією може бути цільова функція.

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка/ Перевірка результату

Розкодування

Page 27: Lect ai 3  ga

Відбір (selection)

N

(не кращий варіант)

N

Page 28: Lect ai 3  ga

Генети

чни

й а

лго

ри

тмСтворення

початкової популяції

Кодування

Застосування фтнес-функції

Спадкування - Схрещування

Мутація

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка

Розкодування

Page 29: Lect ai 3  ga

Схрещування (crossover)

(4, 3, 4, 3) (6, 1, 6, 5)(4, 3, 4, 3) (6, 1, 6, 5)

(6, 3, 4, 5) (6, 3, 6, 3) (4, 1, 4, 3)

Page 30: Lect ai 3  ga

Схрещування (Crossover)

Page 31: Lect ai 3  ga
Page 32: Lect ai 3  ga

Схрещування

Особини проміжної популяції випадковим чином розбиваються на пари, які з деякою вірогідністю схрещуються, в результаті чого виходять два нащадка, які

записуються в нове покоління

не схрещуються, тоді в нове покоління записується сама пара

У класичному ГА застосовується одноточковий оператор

13/05/2015 32

У класичному ГА застосовується одноточковий оператор кросовера (1-point crossover): для батьківських рядків випадковим чином вибирається точка розділу, нащадки виходять шляхом обміну відрубаними частинами.

011010.01010001101 => 111100.01010001101

111100.10011101001 => 011010.10011101001

Page 33: Lect ai 3  ga

Мутація (mutation)

(2, 2, 3, 5) (7, 2, 3, 5)

Page 34: Lect ai 3  ga

Мутація (Mutation)

Page 35: Lect ai 3  ga

Мутація

До отриманого в результаті відбору і схрещування нового покоління застосовується оператор мутації, необхідний для "вибивання" популяції з локального екстремуму та сприяє захисту від передчасної збіжності.

13/05/2015 35

Хоча б один біт кожної особини популяції з деякою малою ймовірністю (зазвичай менше 1%) інвертується

1110001010110 -> 1110001110110

Page 36: Lect ai 3  ga

Генети

чни

й а

лго

ри

тмСтворення

початкової популяції

Кодування

Застосування фітнес-функції

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка

Розкодування

Page 37: Lect ai 3  ga

Критерії зупинки

Критерієм зупинки може служити задана кількість поколінь або сходження (convergence) популяції.

Сходженням називається стан популяції, коли всі рядки знаходяться в області деякого екстремуму і майже однакові.

13/05/2015 37

однакові. Таким чином, сходження популяції

означає, що досягнуто рішення близьке до оптимального.

Підсумковим рішенням завдання може служити найбільш пристосована особина останнього покоління.

Page 38: Lect ai 3  ga

Генети

чни

й а

лго

ри

тмСтворення

початкової популяції

Кодування

Застосування фітнес-функції

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка

Розкодування

Page 39: Lect ai 3  ga

Розкодування

010001001

10010010

10010001

011101001

010001001

Page 40: Lect ai 3  ga

Генети

чни

й а

лго

ри

тмСтворення

початкової популяції

Кодування

Застосування фітнес-функції

Відбір

Схрещування

Мутація

Відтворення

Генети

чни

й а

лго

ри

тм

Генетичні оператори

Зупинка

Розкодування

ВідтворенняХромосоми, що мають високий рівень пристасованості (fitness), потрапляють до нащадків (які потім можуть мутувати) з більшою ймовірністю. Нащадок, результат злиття 'батька' і 'матері', є комбінацією їх генів. Цей процес називається 'кроссінговер' (crossing over).

Page 41: Lect ai 3  ga

Відбір

Відбір та схрещування:

13/05/2015 41

Проміжна популяція - набір особин, які отримали право розмножуватися.

У класичному ГА ймовірність кожної особини потрапити в проміжну популяцію пропорційна її пристосованості, тобто працює пропорційний відбір (proportional selection).

Page 42: Lect ai 3  ga

Пропорційний відбір

Існує кілька способів реалізації пропорційного відбору:

stochastic sampling. Особини розташовуються на колесі рулетки так, що розмір сектора кожної особини пропорційний її пристосованості. N раз запускаючи рулетку, вибираємо необхідну

4

2

1

3

13/05/2015 42

рулетку, вибираємо необхідну кількість особин для запису в проміжну популяцію.

remainder stochastic sampling. Особини розташовуються на рулетці так само, як і раніше. Але тепер у рулетки не одна стрілка, а N, причому вони відсікають однакові сектора. За один запуск рулетки вибираємо відразу всі N особин.

N

Page 43: Lect ai 3  ga

Колесо рулетки (Roulette Wheel)

1/6 = 17%

BA C

3/6 = 50%

B

2/6 = 33%fitness(A) = 3

fitness(B) = 1

fitness(C) = 2

Page 44: Lect ai 3  ga

Max x2 over {0,1,…,31}(Відбір)

Page 45: Lect ai 3  ga

Max x2 over {0,1,…,31}(Схрещування)

Page 46: Lect ai 3  ga

Max x2 over {0,1,…,31}(Мутація)

Page 47: Lect ai 3  ga

Приклад 1

Задача оптимізації функції f(х) = 2х2 +1, х з [0, 15].

Фенотип: {0,1,..., 15} — простір пошуку та одночасно множинапотенціальних розв’язків задачі.

Кодування параметра х від 0 до 15:

0 1 ген

0000 0001 0010 0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

13/05/2015 47

0 1

15аллель

хромосоми

Page 48: Lect ai 3  ga

Приклад 2

Знайти хромосоми з максимальною кількістю одиниць.

Припустимо, що хромосоми складаються з 12 генів, а популяція налічує 8 хромосом.

Ініціалізація, або вибір вихідної популяції хромосом. Необхідно випадковим чином згенерувати 8 двійкових послідовностей випадковим чином згенерувати 8 двійкових послідовностей довжиною 12 бітів (вихідна популяція)

ch1 = [111001100101] ch5 = [010001100100]ch2= [001100111010] ch6 = [010011000101]ch3 = [011101110011] ch7 = [101011011011]ch4 = [001000101000] ch8 = [000010111100]

13/05/2015 48

Page 49: Lect ai 3  ga

Приклад 2

Оцінка пристосованості хромосом в популяції. Вирішується задача знаходження такої хромосоми, яка містить найбільшу кількість одиниць. Тому функція пристосованості визначає кількість одиниць у хромосомі.

Позначимо функцію пристосованості символом F. Тоді її значення для кожної хромосоми з вихідної популяції будуть такі:

F(ch1) = 7 F(ch5)= 4 F(ch2) = 6 F(ch6) = 5F(ch3) = 8 F(ch7) = 8 F(ch4) = 3 F(ch8) = 5F(ch3) = 8 F(ch7) = 8 F(ch4) = 3 F(ch8) = 5

Хромосоми ch3 і ch7 характеризуються найбільшими значеннями функції приналежності. У цій популяції вони вважаються найкращими кандидатами на рішення задачі.

Якщо згідно з блок-схемою генетичного алгоритму умова зупинки алгоритму не виконується, то на наступному кроці проводиться селекція хромосом з поточної популяції.

13/05/2015 49

Page 50: Lect ai 3  ga

Приклад 2 Селекція хромосом. Селекція проводиться методом рулетки. Для

кожної з 8 хромосом поточної популяції (у нашому випадку —вихідної популяції, для якої N = 8) отримуємо сектори колеса рулетки:

v(ch1) = 15,22 v(ch2) = 13,04 v(ch3) = 17,39 v(ch4) =6,52

v(ch5) =8,70 v(ch6) = 10,87 v(ch7) = 17,39 v(ch8) = 10,87

Розіграш за допомогою колеса рулетки зводиться до випадкового вибору числа з

13/05/2015 50

зводиться до випадкового вибору числа з інтервалу [0, 100], що вказує на відповідний сектор на колесі, тобто на конкретну хромосому. Припустимо, що розіграні наступні 8 чисел:

79 44 9 74

44 86 48 23

Це означає вибір хромосом

ch7 ch3 ch1 ch7

ch3 ch7 ch4 ch2

Всі вибрані таким чином хромосоми включаються в батьківський пул.

v(ch1) 15,22

v(ch2) 13,04

v(ch3) 17,39

v(ch4) 6,52

v(ch5) 8,7

v(ch6) 10,87

v(ch7) 17,39

v(ch8) 10,87

Page 51: Lect ai 3  ga

Приклад 2 Застосування генетичних операторів. Припустимо, що ні одна з відібраних у процесі селекції хромосом не піддається мутації, і всі вони складають популяцію хромосом, призначених для схрещування.

Це означає, що ймовірність схрещування Pс = 1, а ймовірність мутації рm

= 0. Припустимо, що з цих хромосом випадковим чином сформовані пари батьків

ch2 і ch7 ch1 і ch7

ch3 і ch4 ch3 і ch7

Точки схрещування:

13/05/2015 51

першої пари lk = 4,

другої lk = 3,

третьої lk = 11,

четвертої lk = 5.

В результаті виконання оператора схрещування виходять 4 пари нащадків.

Page 52: Lect ai 3  ga

Приклад 2 Формування нової популяції. Після виконання операції схрещування отримуємо наступну популяцію нащадків:

Ch1 = [001111011011] Ch5 = [011101110010]Ch2 = [101000111010] Ch6 = [001000101001]Ch3 = [111011011011] Ch7 = [011101011011]

13/05/2015 52

Ch7 = [011101011011]Ch4 = [101001100101] Ch8 = [101011110011]

В результаті схрещування отримана хромосома Ch3 з найбільшим значенням функції пристосованості, яким не володіла ні одна хромосома з батьківського популяції.

Провадиться повернення до другого етапу, тобто до оцінки пристосованості хромосом з новосформованої популяції, яка стає поточною. Значення функцій пристосованості хромосом цієї популяції складають:F(Ch1) = 8 F(Ch5) = 7 F(Ch2) = 6 F(Ch6) = 4F(Ch3) = 9 F(Ch7) = 8 F(Ch4) = 6 F(Ch8) = 8

Page 53: Lect ai 3  ga

Знайти максимум функції , х приймає тількі цілі значення

Побудовані хромосоми складаються з 4-х генів:

Integer Binary code Integer Binary code Integer Binary code

Приклад 3.

2( ) 15 , [0,15]f x x x x

Integer Binary code Integer Binary code Integer Binary code

1 112 7 123 8 13

4 9 145 10 15

6 1 0 1 1

1 1 0 01 1 0 11 1 1 01 1 1 1

0 1 1 0

0 1 1 11 0 0 01 0 0 11 0 1 0

0 0 0 1

0 0 1 00 0 1 10 1 0 00 1 0 1

Page 54: Lect ai 3  ga

Chromosomelabel

Chromosomestring

Decodedintege r

Chromosomefitnes s

Fitnes sra tio, %

X 1 1 1 0 0 1 2 3 6 16.5X 2 0 1 0 0 4 4 4 20.2

X 3 0 0 0 1 1 1 4 6.4

X 4 1 1 1 0 1 4 1 4 6.4X 5 0 1 1 1 7 5 6 25.7X 6 1 0 0 1 9 5 4 24.8

60f(x ) 60

Приклад 3.

x

50

40

30

20

60

10

00 5 10 15

f(x )

(a ) Chromosome initial locations.

x

50

40

30

20

60

10

00 5 10 15

(b ) Chromosome final locations.

Page 55: Lect ai 3  ga

Вибір хромосом для формування пар з використанням roulette wheel selection.

100 0

75.2

X1: 16.5%

X2: 20.2%

X3: 6.4%

Приклад 3.

36.743.149.5

75.2 X3: 6.4%

X4: 6.4%

X5: 25.3%

X6: 24.8%

Page 56: Lect ai 3  ga

X6 i 1 00 0 01 0 X2 i0 10 0

Crossover operatorCrossover operator

Приклад 3.

0 01 0X2 i 0 11 1 X5 i

0X1 i 0 11 1 X5 i1 01 0 11 101 0

Page 57: Lect ai 3  ga

X 6' i 1 00

0 01 0X 2' i 0 1

0 0

1 1 1 X 1" i1 10X 1' i 1 1 1

Приклад 3.

0 11 1X 5' i 01 0

0 1 111X 5 i

X 2" i0 1 00 1 0X 2 i

Mutation operatorMutation operator

Page 58: Lect ai 3  ga

1 01 0X 1 i

G ene r ati on i

0 01 0X 2 i

0 00 1X 3 i

1 11 0X 4 i

0 11 1X 5 i f = 5 6

1 00 1X 6 i f = 5 4

f = 3 6

f = 4 4

f = 1 4

f = 1 4

C ro s s o ve r

X 6 i 1 00 0 01 0 X 2 i

0 01 0X 2 i 0 11 1 X 5 i

0X 1 i 0 11 1 X 5 i1 01 0

0 10 0

11 101 0

Приклад 3.

1 00 1i f = 5 4

1 00 0X 1 i +1

G ene r ati on ( i + 1 )

0 01 1X 2 i +1

1 10 1X 3 i +1

0 01 0X 4 i +1

0 11 0X 5 i +1 f = 5 4

0 11 1X 6 i +1 f = 5 6

f = 5 6

f = 5 0

f = 4 4

f = 4 4

0 01 0X 2 i 0 11 1 X 5 i

M u ta ti on

0 11 1X 5 'i 01 0

X 6 'i 1 00

0 01 0X 2 'i 0 1

0 0

0 1 111X 5 i

1 1 1 X 1 " i1 1

X 2 " i0 1 0

0X 1 'i 1 1 1

0 1 0X 2 i

Page 59: Lect ai 3  ga

+ Проста реалізація

Вирішує широкий клас задач

−• Складність фітнес-

функції

• Проблема локального оптимумуоптимуму

Page 60: Lect ai 3  ga

3. Налаштування генетичного алгоритму

13/05/2015 60

Page 61: Lect ai 3  ga

Налаштування ГА

Генетичний алгоритм виконує пошук рішень з допомогою: відбору гіперплощин (hyperplane sampling) шляхом кроссовера методу hill-climbing шляхом мутації

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

13/05/2015 61

надійний.

З точки зору теореми шаблонів, мутація тільки шкодить зростанню кількості представників хороших шаблонів, зайвий раз руйнуючи їх.

Але мутація необхідна для ГА з малим розміром популяції, тому що для них властива передчасна збіжність (premature convergence) -ситуація, коли в деяких позиціях всі особини мають один і той же біт, не відповідний глобальному екстремуму.

Page 62: Lect ai 3  ga

Налаштування ГА Тиск відбору (selection pressure) - міра того, наскільки різняться

шанси кращої і гіршої особин популяції потрапити в проміжну популяцію. Для пропорційного відбору ця величина із збільшенням середньої пристосованості популяції зменшується, прямуючи до 1.

Для ефективної роботи генетичного алгоритму необхідно підтримувати тонку рівновагу між дослідженням і використанням : При збільшенні вірогідності схрещування або мутації і зменшенні тиску відбору (за

рахунок використання інших стратегій відбору) розмноження представників

13/05/2015 62

рахунок використання інших стратегій відбору) розмноження представників пристосованих шаблонів сповільнюється, але зате відбувається інтенсивний пошук інших шаблонів.

Зменшення ймовірностей схрещування або мутації і збільшення тиску відбору веде до інтенсивного використання знайдених хороших шаблонів, але менше уваги приділяється пошуку нових.

Необхідність збалансованої збіжності ГА: швидка збіжність може призвести до неоптимального рішення повільна збіжність часто призводить до втрати знайденої найкращої особини.

Методологія управління збіжністю класичного ГА досі не вироблена.

Page 63: Lect ai 3  ga

Алфавіт

Кодування бінарним алфавітом:

забезпечує кращий пошук за допомогою гіперплощин, оскільки надає максимальну їх кількість.

для можливості зустріти кожний символ у кожній позиції потрібно менший розмір популяції

Навіть для двох рядків, є ймовірність, що на кожній позиції в популяції є і 0, і 1. Якщо ж алфавіт більшої потужності, то до

13/05/2015 63

популяції є і 0, і 1. Якщо ж алфавіт більшої потужності, то до застосування мутації більша частина простору пошуку буде недоступна з точки зору кросовера, після застосування мутації стане недоступна інша частина.

Однак небінарні алфавіти часто забезпечують більш наочне представлення рішень задачі.

Page 64: Lect ai 3  ga

Кодування параметрів

Бінарне кодування додає додаткові розриви, що ускладнює пошук. Наприклад, числа 7 і 8 розрізняються на 4 біти

Для більшості функцій ГА будуть працювати краще при кодуванні параметрів кодом Грея. Приклад: нехай потрібно мінімізувати функцію

Якщо в початковій популяції переважали хороші від’ємні

2x)x(f

13/05/2015 64

Якщо в початковій популяції переважали хороші від’ємні рішення, то швидше за все ми прийдемо до розв’язку -

1 = 11 ... 1. Але досягти глобального мінімуму 00 ... 0 буде практично

неможливо, оскільки зміна будь-якого біта буде призводити до погіршення рішення. При кодуванні кодом Грея такої проблеми не виникає.

Іноді застосовується кодування з плаваючою точкою, яке теж є більш вдалим, ніж пряме бінарне.

Page 65: Lect ai 3  ga

Стратегії відбору

Ранковий відбір (rank selection): для кожної особини її ймовірність потрапити в проміжну популяцію пропорційна її порядковому номеру у відсортованій за зростанням пристосованості популяції. Такий вид відбору не залежить від середньої пристосованості популяції.

Турнірний відбір (tournament selection): з популяції випадковим чином вибирається t особин, і найкраща з них поміщається в

13/05/2015 65

чином вибирається t особин, і найкраща з них поміщається в проміжну популяцію. Цей процес повторюється N раз, поки проміжну популяцію не буде заповнено. Найбільш поширений варіант при t = 2. Турнірний відбір є більш агресивним, ніж пропорційний.

Відбір усіканням (truncation selection): популяція сортується за пристосованістю, потім береться задана частка кращих, і з них випадковим чином N раз вибирається особина для подальшого розвитку.

Page 66: Lect ai 3  ga

Кросовер

Двоточковий кросовер:

вибираються 2 точки розділу, і батьки обмінюються ділянками між собою:

При цьому визначальна довжина вимірюється в кільці - для шаблону 1 ***** 1 при двоточковому кросовері вона дорівнюватиме 1, хоча при одноточковому була 6.

Однорідний кросовер:

один з дітей успадковує кожен біт з ймовірністю у першого p

13/05/2015 66

один з дітей успадковує кожен біт з ймовірністю у першого батька і з (1 - ) у другого,

друга дитина одержує не успадковані першою біти. Зазвичай

= 0.5. при малому розмірі популяції однорідний кросовер перешкоджає передчасному сходженню.

0p

0p

0p

Page 67: Lect ai 3  ga

Стратегії формування нового покоління

Два основних типи формування нового покоління після кросовера і мутації: діти заміщають батьків нове покоління складається із сукупності дітей та їх батьків

Також застосовується принцип елітизму: в нове покоління включається задана кількість кращих особин попереднього покоління (часто одна краща особина).

13/05/2015 67

покоління (часто одна краща особина). Використання другої стратегії та елітизму не допускає втрати

кращих рішень.

Приміром, якщо популяція зійшлася в локальному максимумі, а мутація вивела один з рядків в область глобального, то при заміщенні батьків досить імовірно, що ця особина в результаті схрещування буде втрачена, і рішення задачі не буде отримано. Якщо ж використовується елітизм, то отримане хороше рішення буде залишатися в популяції до тих пір, поки не буде знайдене краще.

Page 68: Lect ai 3  ga

Шаблон (schema, «шима»)

Шаблоном (schema) називається рядок довжини L з символів 0, 1 і * («don't care» символ). Рядок є представником даного шаблону, якщо всі символи крім * збігаються. Наприклад, у шаблона 1 * 0 * 0 є 4 представника : 10000 10010 11000

11010

13/05/2015 68

11010 Порядком шаблона називається кількість фіксованих в ньому бітів. Визначальною довжиною. шаблону називається відстань між його

крайніми фіксованими бітами Наприклад, для шаблона H = *0**10*:

порядок o(H) = визначальна довжина Δ(H) =

35

Page 69: Lect ai 3  ga

Шаблони

Пристосованістю шаблону називається середня пристосованість рядків з популяції, які є його представниками. Залежить від популяції, і тому змінюється з часом.

Хоча зовні здається, що ГА обробляє рядки, насправді при цьому неявно відбувається обробка шим, які представляють шаблони подібності між рядками (Goldberg, 1989; Голланд, 1992).

13/05/2015 69

Голланд, 1992).

ГА практично не може займатися повним перебором всіх точок у просторі пошуку. Однак він може виробляти вибірку значного числа гіперплощин в областях пошуку з високою пристосованістю. Кожна така гіперплощина відповідає множині схожих рядків із високою пристосованістю.

Page 70: Lect ai 3  ga

Теорема шаблонів Теорема шаблонів (Schema Theorem) — перша теорема, яка

обгрунтовувала ефективність генетичних алгоритмів. Запропонована Джоном Г. Голландом.

Ця теорема пояснює, чому для певних задач певний клас генетичних алгоритмів є ефективним. У даний момент відомо декілька теорем шим, які обгрунтовують ефективність інших класів алгоритмів, зокрема теореми схем для генетичного програмування.

 o(H)p-1 f(t)

f(H, t)  P(H, t) 1 - 

1)-(L

 (H) p-1

f(t)

f(H, t)  P(H, t)  1) P(H, t  mс

13/05/2015 70

де f(H, t) — пристосованість шаблона H в поколінні t, <f(t)> — середня пристосовність покоління t, P(H, t) — частка представників шаблону H в поколінні t.

Отриманий вираз не надто вдалий для аналізу роботи генетичного алгоритму, тому що в ньому присутній знак нерівності.

Пристосованість шаблону і середня пристосованість популяції швидко змінюються від покоління до покоління, тому отримана нерівність добре описує ситуацію тільки для наступного покоління.

 o(H)p-1 f(t)

 P(H, t) 1 - 1)-(L

 p-1f(t)

 P(H, t)  1) P(H, t  mс

Page 71: Lect ai 3  ga

Приклад 4. Розв'язання Діофантового рівняння (тільки цілі рішення)

Розглянемо діофантовe рівняння: a+2b+3c+ 4d = 30, де a, b, c і d -деякі додатні цілі числа.

Для початку виберемо 5 випадкових рішень.

Хромосома (a,b,c,d)

Щоб обчислити коефіцієнти пристосованості (fitness), підставимо кожне рішення у вираз a+2b+3c+4d. Відстань від отриманого значення до 30 і буде потрібним значенням.

13/05/2015 71

Хромосома (a,b,c,d)

1 (1,28,15,3)

2 (14,9,2,4)

3 (13,5,7,3)

4 (23,8,16,19)

5 (9,13,5,2)

Таб.1: 1-е покоління хромосом і їх вміст

Хромосома Коефіцієнт пристосованості

1 |114-30|=84

2 |54-30|=24

3 |56-30|=26

4 |163-30|=133

5 |58-30|=28

Таб.2: Коефіцієнти пристосованості першого покоління хромосом (набору рішень)

Так як менші значення ближче до 30 – пристосованості, то вони більш бажані.

Page 72: Lect ai 3  ga

Приклад 4. Розв'язання Діофантового рівняння

Щоб створити систему, де хромосоми з більш придатними значеннями мають великі шанси опинитися батьками, ми повинні обчислити, з якою вірогідністю (у %) може бути обрана кожна.

Хромосома Відповідність

1 8.80%

2 30.8%

3 28.4%

4 5.56%

Хромосома батька Хромосома матері

3 1

5 2

3 5

13/05/2015 72

Таб.3: Імовірність виявитися батькомТаб.4: Симуляція вибору батьків

Для вибору 5-ти пар батьків (кожна з яких буде мати 1 нащадка, всього - 5 нових рішень), уявімо, що у нас є 10000-стороння гральна кістка, на 880 сторонах відзначена хромосома 1, на 3080 - хромосома 2, на 2640 сторонах - хромосома 3, на 556 - хромосома 4 і на 2640 сторонах відзначена хромосома 5.

Щоб вибрати першу пару кидаємо кістку двічі і вибираємо хромосоми, що випали . Таким же чином вибираючи інших, отримуємо таб.4

4 5.56%

5 26.4%2 5

5 3

Page 73: Lect ai 3  ga

Приклад 4. Розв'язання Діофантового рівняння

"Кроссовер" (cross-over). Нехай мати містить наступний набір рішень: a1, b1, c1, d1, батько - a2, b2, c2, d2, тоді можливо 6 різних кросоверів (таб.5):

Є досить багато шляхів передачі інформації нащадкові, і кросовер - тільки один з них. Розташування роздільника може бути абсолютно довільним, як і

Хромосома-батько Хромосома-матір Хромосома-нащадок

a1 | b1,c1,d1 a2 | b2,c2,d2a1,b2,c2,d2 or a2,b1,c1,d1

a1,b1 | c1,d1 a2,b2 | c2,d2a1,b1,c2,d2 or a2,b2,c1,d1

13/05/2015 73

Таб. 5: Кроссовери між батьками

Таб.6: Симуляція кроссоверів хромосом

батьків

абсолютно довільним, як і те, батько чи мати будуть ліворуч від роздільника.

a2,b2,c1,d1

a1,b1,c1 | d1 a2,b2,c2 | d2a1,b1,c1,d2 or a2,b2,c2,d1

Хромосома-батько Хромосома-матір Хромосома-нащадок

(13 | 5,7,3) (1 | 28,15,3) (13,28,15,3)

(9,13 | 5,2) (14,9 | 2,4) (9,13,2,4)

(13,5,7 | 3) (9,13,5 | 2) (13,5,7,2)

(14 | 9,2,4) (9 | 13,5,2) (14,13,5,2)

(13,5 | 7, 3) (9,13 | 5, 2) (13,5,5,2)

Page 74: Lect ai 3  ga

Приклад 4. Розв'язання Діофантового рівнянняТепер ми можемо обчислити

коефіцієнти пристосованості (fitness) нащадків.

…рекомендовано мутацію

Хромосома-нащадок

Коефіцієнт пристосованості

(13,28,15,3) |126-30|=96

(9,13,2,4) |57-30|=27

(13,5,7,2) |57-30|=22

(14,13,5,2) |63-30|=33

13/05/2015 74

(13,5,5,2) |46-30|=16

Page 75: Lect ai 3  ga

4. Деякі моделі генетичних алгоритмів

13/05/2015 75

Page 76: Lect ai 3  ga

Деякі моделі ГА

Genitor (Whitley)

У даній моделі використовується специфічна стратегія відбору. На кожному кроці тільки одна пара випадкових батьків створює тільки одну

13/05/2015 76

випадкових батьків створює тільки одну дитину. Ця дитина замінює не батьків, а одну з найгірших особин популяції.

Таким чином, на кожному кроці в популяції оновлюється лише одна особина.

Збіжність швидше, ніж у класичного ГА.

Page 77: Lect ai 3  ga

Деякі моделі ГА

Для нового покоління вибираються N найкращих різних особин серед батьків і дітей. Дублювання рядків не допускається.

Для схрещування всі особини розбиваються на пари, але схрещуються тільки ті пари, між якими відстань Хеммінга більше деякої порогової

CHC (Eshelman) – Cross generational elitist selection, Heterogenous recombination, Cataclysmic mutation.

13/05/2015 77

тільки ті пари, між якими відстань Хеммінга більше деякої порогової (також можливі обмеження на мінімальну відстань між крайніми відмінними бітами).

При схрещуванні використовується так званий HUX-оператор (Half Uniform Crossover), різновид однорідного кросовера - кожному нащадку переходить рівно половина бітів кожного з батьків.

Розмір популяції слабкий. Цим виправдане використання однорідного кросовера.

Даний алгоритм досить швидко збіжний через те, що в ньому немає мутацій.

Page 78: Lect ai 3  ga

Деякі моделі ГАHybrid algorithm (Davis) Генетичні алгоритми є робастними

алгоритмами, тобто дозволяють знаходити хороше рішення, але знаходження оптимального найчастіше виявляється набагато більш важким завданням в силу стохастичності принципів роботи алгоритму. Тому виникла ідея використовувати ГА на початковому етапі для ефективного

13/05/2015 78

виникла ідея використовувати ГА на початковому етапі для ефективного звуження простору пошуку навколо глобального екстремуму, а потім, взявши кращу особину, застосувати один з "класичних" методів оптимізації.

Page 79: Lect ai 3  ga

Деякі моделі ГАIsland Models (Острівна модель, island model) —

модель паралельного генетичного алгоритму.

Розіб'ємо популяцію на кілька подпопуляцій. Кожна з них буде розвиватися окремо за допомогою деякого ГА. Таким чином, можна сказати, що ми розселили особини на кількох ізольованих островах.

Зрідка (наприклад, кожні 5 поколінь) відбувається міграція - острови обмінюються кількома хорошими особинами.

13/05/2015 79

Так як населеність островів невелика, то підпопуляціі будуть схильні до передчасної збіжності. Тому важливо правильно встановити частоту міграції: надто часта міграція (або міграція занадто великої кількості особин)

призведе до змішування всіх підпопуляцій, і тоді острівна модель буде несильно відрізнятися від звичайного ГА

якщо міграція буде занадто рідкою, то вона не зможе запобігти передчасній збіжності підпопуляцій

ГА стохастичні, тому при різних їх запусках популяція може сходитися до різних хороших рішень. Острівна модель дозволяє запустити алгоритм відразу кілька разів і поєднати «досягнення» різних островів для отримання найкращого рішення.

Page 80: Lect ai 3  ga

Висновки Генетичні алгоритми є універсальним методом

оптимізації багатопараметричних функцій, що дозволяє вирішувати широкий спектр завдань.

Генетичні алгоритми мають безліч модифікацій і сильно залежать від параметрів. Найчастіше невелика зміна одного з них може призвести до

13/05/2015 80

невелика зміна одного з них може призвести до несподіваного поліпшення результату.

Слід пам'ятати, що застосування ГА корисно лише в тих випадках, коли для даної задачі немає відповідного спеціального алгоритму рішення.

Page 81: Lect ai 3  ga

5. Приклади застосування

13/05/2015 81

генетичного алгоритму

Page 82: Lect ai 3  ga

Приклад 1. Пошук мінімуму функції (MATLAB)

Розв’язок: 4

4.5GA: Fmin=1.7991 @ x~4.3

43 2 3( ) 2 3 4 5 / , [2,17]

log( )

xf x x x x x x

x

Розв’язок:

Точність: 1/1024

Fmin=1.7791

при x=4.3 (almost)

2 4 6 8 10 12 14 16 181.5

2

2.5

3

3.5

x

F(x

)

Page 83: Lect ai 3  ga

Приклад 1. Пошук мінімуму функції (MATLAB)

Page 84: Lect ai 3  ga

Нехай F=F(X1,X2,X3……Xn), необхідно знайти Fmax та Fmin.

Спершу потрібно задати код для x1,x2,x3… Xn, а потім з’єднати їх для визначення

Приклад 1. Пошук мінімуму функції (MATLAB)для багатьох змінних

Xn, а потім з’єднати їх для визначення хромосоми та розв’язку у вигляді (x1,x2,…Xn).

Далі діяти за описаним вище.

Page 85: Lect ai 3  ga

Приклад 1. Пошук мінімуму функції

MA

TLA

B:G

A T

OO

L>

>optim

um

tool(

‘ga

’))

( MA

TLA

B:G

A T

OO

L>

>optim

um

tool(

‘ga

’)

Page 86: Lect ai 3  ga
Page 87: Lect ai 3  ga

Розмір популяції: 20-100

залежить від задачі.

Cross-Over імовірність: 0.6-0.9

оптимально~0.7 .

Mutation імовірність: Mutation імовірність:

як можна менша, 0.1-0.01 etc.

Покоління:

Типово від 50 до 100 дають гарний результат.

Roulette-wheeler selection використовався у прикладі

Page 88: Lect ai 3  ga

Приклад 2. Задача коммівояжера

Travelling salesman problem

Page 89: Lect ai 3  ga

Початкові дані та результат

Початкові дані Результат

Page 90: Lect ai 3  ga

Кодування рішень

1

3

2 (1, 3, 5, 6, 2, 4, 7)

1

3

2

4

6

5

4

6

5

7

Page 91: Lect ai 3  ga

Ініціалізація

(1, 3, 5, 6, 2, 4, 7)

Розмір важливий!1

3

42

6

5

7

1

32

(5, 7, 3, 6, 1, 4, 2)

(7, 4, 2, 3, 6, 5, 1)

3

42

6

5

7

1

3

42

6

5

7

Page 92: Lect ai 3  ga

Order Crossover

(A, B, C, G, H, B, D, E) & (H, D, E, F, G, C, B, A)

Предок 1: (ABC|GHB|DE) Результат: (…|GHB|..)Предок 1: (ABC|GHB|DE) Результат: (…|GHB|..)

Предок 2: (HDE|FGC|BA) Результат: (EFC|GHB|AD)

Page 93: Lect ai 3  ga

Partially Matched Crossover

(F, B, C, A, H, G, D, E) & (A, B, C, D, E, F, G, H)

Предок 1: (FBC|AHG|DE) Результат: (…|AHG|..)

• Беремо в другому батьку три гена починаючи з позиції 4: FGC

• Розставляємо їх в позиції, що відповідають позиціям AHG в другому батьку

Предок 2: (ABC|DEF|GH) Результат: (D..|AHG|FE)

• Решта додаються в тому ж порядку, в якому вони знаходяться в другому батьку

Предок 2: (ABC|DEF|GH) Результат: (DBC|AHG|FE)

Page 94: Lect ai 3  ga

Cycle crossover

(F, B, C, A, H, G, D, E) & (A, B, C, D, E, F, G, H)

Батько 1: (F, B, C, A, H, G, D, E)

Батько 2: (A, B, C, D, E, F, G, H)Батько 2: (A, B, C, D, E, F, G, H)

Результат : (F, B, C, A, E, G, D, H)

Page 95: Lect ai 3  ga

Yet another crossover

(1, 3, 5, 7, 8, 6, 2, 4)(4, 5, 8, 1, 6, 3, 7, 2)

(1, 3, 5, 7, 4, 8, 6, 2)

Page 96: Lect ai 3  ga

Simple mutation

1

3

2

1

3

2

4

6

5

(1, 3, 5, 6, 2, 4, 7)(1, 4, 5, 6, 2, 3, 7)

7

4

2

6

5

7

Page 97: Lect ai 3  ga

Mutation by 2opt

13

4

2

6

13

4

2

6

(1, 3, 5, 7, 8, 6, 2, 4)

6

57

(1, 3, 6, 8, 7, 5, 2, 4)

8

57

8

Page 98: Lect ai 3  ga

Приклад 3. Genetic Car

Компоненти - ПредставленняФенотип Генотип

Рамка: 16 параметрівРамка: 16 параметрів

3 колеса: 9 параметрів

“DNA” рядок - 25 значень

8.7 4.7 9.5 5.9 6.2 1.3 … 9.3 1.0 8.7 3.8 1.7

Page 99: Lect ai 3  ga

Компонент - Популяція

Page 100: Lect ai 3  ga

Компоненти - Fitness функція

Пройдена дистанція

Page 101: Lect ai 3  ga

Компонент – механізм вибору батьків

0,1 0,5

0,4 0,1

Імовірність репродукції

Page 102: Lect ai 3  ga

Компонент – застосування операторів

Частина Parent1 + Частина Parent2 + мутаціяЧастина Parent1 + Частина Parent2 + мутація

8.7 4.7 9.5 5.9 6.2 1.3 1.8 … 1.0 8.7 3.8 1.7

8.5 9.1 0.1 3.5 8.0 1.5 2.2 … 1.6 5.5 2.8 4.5

8.7 4.7 3.4 5.9 6.2 1.7 2.2 … 1.6 5.5 2.8 4.5

Parent 1Parent 2

Нащадок(+ мутація)

Page 103: Lect ai 3  ga

Компонент – механізм вибору для подальшого спадкування

Page 104: Lect ai 3  ga

Дякую за увагу !