4. Для чого генетичні алгоритми?
Генетичні алгоритми
застосовуються для рішення задач:
Оптимізація функцій
Різноманітні задачі на графах (задача
комівояжера, розфарбування тощо)
Налагодження та навчання штучної
нейронної мережі
13/05/2015 4
нейронної мережі
Складання розкладів
Ігрові стратегії
апроксимація функцій
штучне життя
біоінформатика
5. Джерела
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с.
6. План
1. Генетичні алгоритми: основні поняття
2. Класичний генетичний алгоритм
3. Налаштування ГА
Деякі моделі ГА
13/05/2015 6
4. Деякі моделі ГА
5. Приклади застосування ГА
8. Теорія еволюції Дарвіна + генетика
Природній відбір
Схрещування
Мутація
Sir Charles DarwinSir Charles Darwin
110011010000100111
010011010000100111
000010100111100110
010111110111110111
010011010000100111
10. Еволюція на генетичному рівні
Спостерігаються випадкові зміни
Image adapted from http://www.wpdipart.com
11. Еволюція на генетичному рівні
Хромосоми двох різних батьків
Хроматиди перетинаються в Хроматиди перетинаються в
“хіазмі”
Формуються рекомбіновані
хромосоми
Далі передаються потомству
Генетичний кроссовер
12. Еволюція на генетичному рівні
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
13. Історія
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).
14. Формальне визначення
Генетичний алгоритм (англ. genetic algorithm) — це
еволюційний алгоритм пошуку, що використовується для
вирішення задач оптимізації і моделювання шляхом
послідовного підбору, комбінування і варіації шуканих
параметрів з використанням механізмів, що нагадують
біологічну еволюцію.
13/05/2015 14
біологічну еволюцію.
Поширення хороших характеристик покоління в
наступному поколінні
Пошук найперспективніших напрямків в просторі рішень
Яким чином?
15. Основні поняття та терміни
Ген — атомарний елемент генотипу, зокрема, хромосоми.
13/05/2015 15
Хромосоми (ланцюжки або кодові послідовності) — це
впорядковані послідовності генів.
Генотип — це набір хромосом даної особини. Отже, особинами
популяції можуть бути генотипи або одиничні хромосоми (в
досить поширеному випадку, коли генотип складається з однієї
хромосоми).
Алель — це значення конкретного гена, також визначається як
значення властивості або варіант властивості.
16. Основні поняття та терміни
Особини, що входять в популяцію, у генетичних алгоритмах
представляються хромосомами з закодованими в них множинами
параметрів задачі, тобто рішень, які інакше називаються точками в
просторі пошуку (search points). Особиною буде називатися рядок,
що є конкатенацією рядків впорядкованого набору параметрів :
1010 10110 101 … 10101
| x1 | x2 | x3 | … | xn |
13/05/2015 16
Популяція — множина особин.
ОсобинаПопуляція
17. Фенотип — це набір значень, які відповідають даному генотипу,
тобто декодована структура або множина параметрів задачі
(розв’язок, точка простору пошуку).
Функція пристосованості (fitness function, функція оцінки) свідчить
про міру пристосованості даної особини в популяції. Ця функція
Основні поняття та терміни
про міру пристосованості даної особини в популяції. Ця функція
дозволяє оцінити ступінь пристосованості конкретних особин у
популяції і вибрати з них найбільш пристосовані (тобто мають
найбільші значення функції пристосованості) відповідно з
еволюційним принципом виживання «найсильніших» (які найкраще
пристосувалися).
13/05/2015 17
21. Класичний генетичний алгоритм
1. ініціалізація, або
вибір вихідної
популяції хромосом;
2. оцінка
пристосованості
хромосом в популяції;
3. перевірка умови
зупинки алгоритму;
початок
Ініціалізація – вибір вихідної
популяції хромосом
Оцінювання пристосованості
хромосом в популяції
13/05/2015 21
4. селекція хромосом;
5. застосування
генетичних
операторів;
6. формування нової
популяції;
7. вибір «найкращої»
хромосоми.
Умова
закінчення
виконана?
Селекція
хромосом
Застосування генетичних
операторів
Створення
нової популяції
Вибір
«найкращої»
хромосоми
кінець
такні
26. Визначає придатність
кожного
представника
популяції.
Обчислення коефіцієнта
пристосованності (fitness)
Кожному рішенню
(хромосомі)
зіставляється певне
Генетичнийалгоритм
Створення
початкової популяції
Кодування
Застосування
фітнес-функції
зіставляється певне
чисельне значення, яке
залежить від його
близькості до відповіді.
Найпростішою
фітнес-функцією
може бути цільова
функція.
Генетичнийалгоритм
Генетичні оператори
Зупинка/ Перевірка
результату
Розкодування
32. Схрещування
Особини проміжної популяції випадковим чином
розбиваються на пари, які з деякою вірогідністю
схрещуються, в результаті чого виходять два нащадка, які
записуються в нове покоління
не схрещуються, тоді в нове покоління записується сама пара
У класичному ГА застосовується одноточковий оператор
13/05/2015 32
У класичному ГА застосовується одноточковий оператор
кросовера (1-point crossover): для батьківських рядків
випадковим чином вибирається точка розділу, нащадки
виходять шляхом обміну відрубаними частинами.
011010.01010001101 => 111100.01010001101
111100.10011101001 => 011010.10011101001
35. Мутація
До отриманого в результаті відбору і
схрещування нового покоління застосовується
оператор мутації, необхідний для "вибивання"
популяції з локального екстремуму та сприяє
захисту від передчасної збіжності.
13/05/2015 35
Хоча б один біт кожної особини популяції з
деякою малою ймовірністю (зазвичай менше 1%)
інвертується
1110001010110 -> 1110001110110
37. Критерії зупинки
Критерієм зупинки може служити
задана кількість поколінь або
сходження (convergence) популяції.
Сходженням називається стан
популяції, коли всі рядки знаходяться в
області деякого екстремуму і майже
однакові.
13/05/2015 37
однакові.
Таким чином, сходження популяції
означає, що досягнуто рішення близьке
до оптимального.
Підсумковим рішенням завдання може
служити найбільш пристосована
особина останнього покоління.
41. Відбір
Відбір та схрещування:
13/05/2015 41
Проміжна популяція - набір особин, які отримали право
розмножуватися.
У класичному ГА ймовірність кожної особини потрапити в проміжну
популяцію пропорційна її пристосованості, тобто працює пропорційний
відбір (proportional selection).
42. Пропорційний відбір
Існує кілька способів реалізації
пропорційного відбору:
stochastic sampling. Особини
розташовуються на колесі рулетки
так, що розмір сектора кожної
особини пропорційний її
пристосованості. N раз запускаючи
рулетку, вибираємо необхідну
…
4
2
1
3
13/05/2015 42
рулетку, вибираємо необхідну
кількість особин для запису в
проміжну популяцію.
remainder stochastic sampling.
Особини розташовуються на рулетці
так само, як і раніше. Але тепер у
рулетки не одна стрілка, а N,
причому вони відсікають однакові
сектора. За один запуск рулетки
вибираємо відразу всі N особин.
N
43. Колесо рулетки (Roulette Wheel)
1/6 = 17%
B
A C
3/6 = 50%
B
2/6 = 33%
fitness(A) = 3
fitness(B) = 1
fitness(C) = 2
47. Приклад 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
аллель
хромосоми
48. Приклад 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
49. Приклад 2
Оцінка пристосованості хромосом в популяції. Вирішується задача
знаходження такої хромосоми, яка містить найбільшу кількість одиниць.
Тому функція пристосованості визначає кількість одиниць у хромосомі.
Позначимо функцію пристосованості символом F. Тоді її значення для кожної
хромосоми з вихідної популяції будуть такі:
F(ch1) = 7 F(ch5)= 4 F(ch2) = 6 F(ch6) = 5
F(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
50. Приклад 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
51. Приклад 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 пари
нащадків.
52. Приклад 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) = 4
F(Ch3) = 9 F(Ch7) = 8 F(Ch4) = 6 F(Ch8) = 8
53. Знайти максимум функції , х приймає
тількі цілі значення
Побудовані хромосоми складаються з 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 11
2 7 12
3 8 13
4 9 14
5 10 15
6 1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
54. Chromosome
label
Chromosome
string
Decoded
intege r
Chromosome
fitnes s
Fitnes s
ratio, %
X 1 1 1 0 0 12 36 16.5
X 2 0 1 0 0 4 44 20.2
X 3 0 0 0 1 1 14 6.4
X 4 1 1 1 0 14 14 6.4
X 5 0 1 1 1 7 56 25.7
X 6 1 0 0 1 9 54 24.8
60
f(x) 60
Приклад 3.
x
50
40
30
20
60
10
0
0 5 10 15
f(x)
(a) Chromosome initial locations.
x
50
40
30
20
60
10
0
0 5 10 15
(b) Chromosome final locations.
55. Вибір хромосом для формування пар з використанням
roulette wheel selection.
100 0
75.2
X1: 16.5%
X2: 20.2%
X3: 6.4%
Приклад 3.
36.7
43.149.5
75.2 X3: 6.4%
X4: 6.4%
X5: 25.3%
X6: 24.8%
57. 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
58. 1 01 0X 1 i
G ene r ation 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 so 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 1
0 0
11 1
01 0
Приклад 3.
1 00 1i f = 5 4
1 00 0X 1 i +1
G ene r ation ( 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 uta 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 5i
1 1 1 X 1 "i1 1
X 2 "i0 1 0
0X 1 'i 1 1 1
0 1 0X 2i
59. + Проста реалізація
Вирішує широкий
клас задач
−
• Складність фітнес-
функції
• Проблема локального
оптимумуоптимуму
61. Налаштування ГА
Генетичний алгоритм виконує пошук рішень з допомогою:
відбору гіперплощин (hyperplane sampling) шляхом кроссовера
методу hill-climbing шляхом мутації
Дослідження показали, що на простих задачах з малим розміром
популяції ГА з мутацією (і без кросовера) знаходять рішення
швидше, а на складних багатоекстремальних функціях краще
використовувати ГА з кросовером, оскільки цей метод більш
надійний.
13/05/2015 61
надійний.
З точки зору теореми шаблонів, мутація тільки шкодить зростанню
кількості представників хороших шаблонів, зайвий раз руйнуючи їх.
Але мутація необхідна для ГА з малим розміром популяції, тому що
для них властива передчасна збіжність (premature convergence) -
ситуація, коли в деяких позиціях всі особини мають один і той же
біт, не відповідний глобальному екстремуму.
62. Налаштування ГА
Тиск відбору (selection pressure) - міра того, наскільки різняться
шанси кращої і гіршої особин популяції потрапити в проміжну
популяцію. Для пропорційного відбору ця величина із збільшенням
середньої пристосованості популяції зменшується, прямуючи до 1.
Для ефективної роботи генетичного алгоритму необхідно підтримувати
тонку рівновагу між дослідженням і використанням :
При збільшенні вірогідності схрещування або мутації і зменшенні тиску відбору (за
рахунок використання інших стратегій відбору) розмноження представників
13/05/2015 62
рахунок використання інших стратегій відбору) розмноження представників
пристосованих шаблонів сповільнюється, але зате відбувається інтенсивний пошук
інших шаблонів.
Зменшення ймовірностей схрещування або мутації і збільшення тиску відбору веде до
інтенсивного використання знайдених хороших шаблонів, але менше уваги
приділяється пошуку нових.
Необхідність збалансованої збіжності ГА:
швидка збіжність може призвести до неоптимального рішення
повільна збіжність часто призводить до втрати знайденої найкращої особини.
Методологія управління збіжністю класичного ГА досі не вироблена.
63. Алфавіт
Кодування бінарним алфавітом:
забезпечує кращий пошук за допомогою
гіперплощин, оскільки надає максимальну їх кількість.
для можливості зустріти кожний символ у кожній позиції
потрібно менший розмір популяції
Навіть для двох рядків, є ймовірність, що на кожній позиції в
популяції є і 0, і 1. Якщо ж алфавіт більшої потужності, то до
13/05/2015 63
популяції є і 0, і 1. Якщо ж алфавіт більшої потужності, то до
застосування мутації більша частина простору пошуку буде
недоступна з точки зору кросовера, після застосування мутації
стане недоступна інша частина.
Однак небінарні алфавіти часто
забезпечують більш наочне
представлення рішень задачі.
64. Кодування параметрів
Бінарне кодування додає додаткові розриви, що
ускладнює пошук.
Наприклад, числа 7 і 8 розрізняються на 4 біти
Для більшості функцій ГА будуть працювати краще при
кодуванні параметрів кодом Грея.
Приклад: нехай потрібно мінімізувати функцію
Якщо в початковій популяції переважали хороші від’ємні
2
x)x(f
13/05/2015 64
Якщо в початковій популяції переважали хороші від’ємні
рішення, то швидше за все ми прийдемо до розв’язку -
1 = 11 ... 1.
Але досягти глобального мінімуму 00 ... 0 буде практично
неможливо, оскільки зміна будь-якого біта буде призводити до
погіршення рішення. При кодуванні кодом Грея такої проблеми
не виникає.
Іноді застосовується кодування з плаваючою
точкою, яке теж є більш вдалим, ніж пряме бінарне.
65. Стратегії відбору
Ранковий відбір (rank selection): для кожної особини її
ймовірність потрапити в проміжну популяцію пропорційна її
порядковому номеру у відсортованій за зростанням
пристосованості популяції. Такий вид відбору не залежить від
середньої пристосованості популяції.
Турнірний відбір (tournament selection): з популяції випадковим
чином вибирається t особин, і найкраща з них поміщається в
13/05/2015 65
чином вибирається t особин, і найкраща з них поміщається в
проміжну популяцію. Цей процес повторюється N раз, поки
проміжну популяцію не буде заповнено. Найбільш поширений
варіант при t = 2. Турнірний відбір є більш агресивним, ніж
пропорційний.
Відбір усіканням (truncation selection): популяція сортується за
пристосованістю, потім береться задана частка кращих, і з них
випадковим чином N раз вибирається особина для подальшого
розвитку.
66. Кросовер
Двоточковий кросовер:
вибираються 2 точки розділу, і батьки обмінюються ділянками
між собою:
При цьому визначальна довжина вимірюється в кільці - для
шаблону 1 ***** 1 при двоточковому кросовері вона дорівнюватиме
1, хоча при одноточковому була 6.
Однорідний кросовер:
один з дітей успадковує кожен біт з ймовірністю у першогоp
13/05/2015 66
один з дітей успадковує кожен біт з ймовірністю у першого
батька і з (1 - ) у другого,
друга дитина одержує не успадковані першою біти. Зазвичай
= 0.5.
при малому розмірі популяції однорідний кросовер перешкоджає
передчасному сходженню.
0p
0p
0p
67. Стратегії формування нового покоління
Два основних типи формування нового покоління після
кросовера і мутації:
діти заміщають батьків
нове покоління складається із сукупності дітей та їх батьків
Також застосовується принцип елітизму: в нове покоління
включається задана кількість кращих особин попереднього
покоління (часто одна краща особина).
13/05/2015 67
покоління (часто одна краща особина).
Використання другої стратегії та елітизму не допускає втрати
кращих рішень.
Приміром, якщо популяція зійшлася в локальному максимумі, а
мутація вивела один з рядків в область глобального, то при
заміщенні батьків досить імовірно, що ця особина в результаті
схрещування буде втрачена, і рішення задачі не буде отримано.
Якщо ж використовується елітизм, то отримане хороше рішення
буде залишатися в популяції до тих пір, поки не буде знайдене
краще.
68. Шаблон (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) =
3
5
69. Шаблони
Пристосованістю шаблону називається середня
пристосованість рядків з популяції, які є його представниками.
Залежить від популяції, і тому змінюється з часом.
Хоча зовні здається, що ГА обробляє рядки, насправді при
цьому неявно відбувається обробка шим, які представляють
шаблони подібності між рядками (Goldberg, 1989;
Голланд, 1992).
13/05/2015 69
Голланд, 1992).
ГА практично не може займатися повним перебором всіх точок у
просторі пошуку. Однак він може виробляти вибірку значного
числа гіперплощин в областях пошуку з високою
пристосованістю. Кожна така гіперплощина відповідає множині
схожих рядків із високою пристосованістю.
70. Теорема шаблонів
Теорема шаблонів (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-1
f(t)
P(H, t) 1) P(H, t mс
71. Приклад 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 – пристосованості, то вони
більш бажані.
72. Приклад 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
73. Приклад 4. Розв'язання Діофантового рівняння
"Кроссовер" (cross-over).
Нехай мати містить наступний набір рішень: a1, b1, c1, d1,
батько - a2, b2, c2, d2,
тоді можливо 6 різних кросоверів (таб.5):
Є досить багато шляхів
передачі інформації
нащадкові, і кросовер - тільки
один з них. Розташування
роздільника може бути
абсолютно довільним, як і
Хромосома-батько Хромосома-матір Хромосома-нащадок
a1 | b1,c1,d1 a2 | b2,c2,d2
a1,b2,c2,d2 or
a2,b1,c1,d1
a1,b1 | c1,d1 a2,b2 | c2,d2
a1,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 | d2
a1,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)
74. Приклад 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
76. Деякі моделі ГА
Genitor (Whitley)
У даній моделі використовується
специфічна стратегія відбору. На
кожному кроці тільки одна пара
випадкових батьків створює тільки одну
13/05/2015 76
випадкових батьків створює тільки одну
дитину. Ця дитина замінює не батьків, а
одну з найгірших особин популяції.
Таким чином, на кожному кроці в
популяції оновлюється лише одна
особина.
Збіжність швидше, ніж у класичного
ГА.
77. Деякі моделі ГА
Для нового покоління вибираються N найкращих різних особин серед
батьків і дітей. Дублювання рядків не допускається.
Для схрещування всі особини розбиваються на пари, але схрещуються
тільки ті пари, між якими відстань Хеммінга більше деякої порогової
CHC (Eshelman) – Cross
generational elitist
selection, Heterogenous
recombination, Cataclysmic
mutation.
13/05/2015 77
тільки ті пари, між якими відстань Хеммінга більше деякої порогової
(також можливі обмеження на мінімальну відстань між крайніми
відмінними бітами).
При схрещуванні використовується так званий HUX-оператор (Half
Uniform Crossover), різновид однорідного кросовера - кожному нащадку
переходить рівно половина бітів кожного з батьків.
Розмір популяції слабкий. Цим виправдане використання однорідного
кросовера.
Даний алгоритм досить швидко збіжний через те, що в ньому немає
мутацій.
78. Деякі моделі ГА
Hybrid algorithm (Davis)
Генетичні алгоритми є робастними
алгоритмами, тобто дозволяють
знаходити хороше рішення, але
знаходження оптимального найчастіше
виявляється набагато більш важким
завданням в силу стохастичності
принципів роботи алгоритму. Тому
виникла ідея використовувати ГА на
початковому етапі для ефективного
13/05/2015 78
виникла ідея використовувати ГА на
початковому етапі для ефективного
звуження простору пошуку навколо
глобального екстремуму, а
потім, взявши кращу
особину, застосувати один з
"класичних" методів оптимізації.
79. Деякі моделі ГА
Island Models (Острівна модель, island model) —
модель паралельного генетичного алгоритму.
Розіб'ємо популяцію на кілька подпопуляцій. Кожна з
них буде розвиватися окремо за допомогою деякого
ГА. Таким чином, можна сказати, що ми розселили
особини на кількох ізольованих островах.
Зрідка (наприклад, кожні 5 поколінь) відбувається міграція - острови
обмінюються кількома хорошими особинами.
13/05/2015 79
Так як населеність островів невелика, то підпопуляціі будуть схильні до
передчасної збіжності. Тому важливо правильно встановити частоту
міграції:
надто часта міграція (або міграція занадто великої кількості особин)
призведе до змішування всіх підпопуляцій, і тоді острівна модель буде
несильно відрізнятися від звичайного ГА
якщо міграція буде занадто рідкою, то вона не зможе запобігти
передчасній збіжності підпопуляцій
ГА стохастичні, тому при різних їх запусках популяція може сходитися до
різних хороших рішень. Острівна модель дозволяє запустити алгоритм
відразу кілька разів і поєднати «досягнення» різних островів для отримання
найкращого рішення.
80. Висновки
Генетичні алгоритми є універсальним методом
оптимізації багатопараметричних функцій, що
дозволяє вирішувати широкий спектр завдань.
Генетичні алгоритми мають безліч модифікацій і
сильно залежать від параметрів. Найчастіше
невелика зміна одного з них може призвести до
13/05/2015 80
невелика зміна одного з них може призвести до
несподіваного поліпшення результату.
Слід пам'ятати, що застосування ГА корисно
лише в тих випадках, коли для даної задачі
немає відповідного спеціального алгоритму
рішення.
84. Нехай F=F(X1,X2,X3……Xn), необхідно
знайти Fmax та Fmin.
Спершу потрібно задати код для x1,x2,x3…
Xn, а потім з’єднати їх для визначення
Приклад 1. Пошук мінімуму функції (MATLAB)
для багатьох змінних
Xn, а потім з’єднати їх для визначення
хромосоми та розв’язку у вигляді (x1,x2,…Xn).
Далі діяти за описаним вище.
85. Приклад 1. Пошук мінімуму функції
MATLAB:GATOOL>>optimumtool(‘ga’))(MATLAB:GATOOL>>optimumtool(‘ga’)
86.
87. Розмір популяції: 20-100
залежить від задачі.
Cross-Over імовірність: 0.6-0.9
оптимально~0.7 .
Mutation імовірність: Mutation імовірність:
як можна менша, 0.1-0.01 etc.
Покоління:
Типово від 50 до 100 дають гарний
результат.
Roulette-wheeler selection використовався у
прикладі
93. 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)
94. 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)