Слайд 1Системи штучного інтелекту
Лекція 3. Генетичні алгоритми
Слайд 2Загальний підхід
генетичні алгоритми виникли в результаті спостереження і спроб копіювання природних
процесів, що відбуваються в світі живих організмів, зокрема, еволюції та
пов'язаної з нею селекції (природнього відбору) популяцій живих істот.
Слайд 3Історичні факти
Ідею генетичних алгоритмів висловив Дж. Холланд у кінці шістдесятих
— початку сімдесятих років XX століття.
Він працював над алгоритмами, що
оперували послідовностями двійкових цифр (одиниць і нулів), що одержали назву хромосом. Ці алгоритми імітували еволюційні процеси в поколіннях таких хромосом. У них були реалізовані механізми селекції та репродукції, аналогічно вживаними при природній еволюції.
Слайд 4Генетичні алгоритми і традиційні методи оптимізації
Генетичні алгоритми — це процедури
пошуку, засновані на механізмах природного відбору і спадкоємства. У них
використовується еволюційний принцип виживання найбільш пристосованих особин. Вони відрізняються від традиційних методів оптимізації декількома базовими елементами. Зокрема, генетичні алгоритми:
обробляють не значення параметрів самого завдання, а їх закодовану форму;
здійснюють пошук рішення виходячи не з єдиної точки, а з їх деякої популяції;
використовують тільки цільову функцію, а не її похідні або іншу додаткову інформацію;
застосовують імовірнісні, а не детерміновані правила вибору.
Слайд 5Основні поняття генетичних алгоритмів
Популяція — це кінцева множина особин.
Особини, що входять
в популяцію, у генетичних алгоритмах представляються хромосомами з закодованими в
них множинами параметрів задачі, тобто рішень, які інакше називаються точками в просторі пошуку (search points). У деяких роботах особини називаються організмами.
Хромосоми (інші назви — ланцюжки або кодові послідовності) — це впорядковані послідовності генів.
Ген (який також називається властивістю, знаком чи детектором) — це атомарний елемент генотипу, зокрема, хромосоми.
Генотип або структура — це набір хромосом даної особини. Отже, особинами популяції можуть бути генотипи або одиничні хромосоми (в досить поширеному випадку, коли генотип складається з однієї хромосоми).
Фенотип — це набір значень, які відповідає даному генотипу, тобто декодована структура або безліч параметрів задачі (розв’язок, точка простору пошуку).
Алель — це значення конкретного гена, також визначається як значення властивості або варіант властивості.
Локус чи позиція вказує місце розміщення даного гена в хромосомі (ланцюжку). Множина позицій генів — це локи.
Слайд 6Основні поняття генетичних алгоритмів
Дуже важливим поняттям у генетичних алгоритмах вважається функція
пристосованості (fitness function), яка інакше називається функцією оцінки. Вона являє міру
пристосованості даної особини в популяції. Ця функція відіграє найважливішу роль, оскільки дозволяє оцінити ступінь пристосованості конкретних особин у популяції і вибрати з них найбільш пристосовані (тобто мають найбільші значення функції пристосованості) відповідно з еволюційним принципом виживання «найсильніших» (які найкраще пристосувалися).
На кожній ітерації генетичного алгоритму пристосованість кожної особини даної популяції оцінюється за допомогою функції пристосованості, і на цій основі створюється наступна популяція особин, що складають безліч потенційних рішень проблеми, наприклад, задачі оптимізації. Чергова популяція в генетичному алгоритмі називається поколінням, а до новостворюваної популяції особин застосовується термін «нове покоління» або «покоління нащадків».
Слайд 7Приклад використання ГА
f(х) = 2х2 +1, х = 1..15
Задача оптимізації цієї
функції полягає в переміщені в просторі, який складається з 16
точок зі значеннями 0, 1, …,15 для виявлення тієї точки, в якій функція приймає максимальне (або мінімальне) значення.
Слайд 8Приклад використання ГА
В цьому випадку в ролі параметра задачі виступає
змінна х. Множина {0,1,..., 15} складає простір пошуку та одночасно
— множину потенціальних розв’язків задачі. Кожне з 16 чисел, які належать цій множині, називається точкою простору пошуку, розв’язком, значенням параметра, фенотипом. Розв’язок, який оптимізує функцію, називається найкращим або оптимальним розв’язком. Значення параметра х від 0 до 15 можна закодувати наступним чином:
0000 0001 0010 0011 0100 0101 0110 0111
1000 1001 1010 1011 1100 1101 1110 1111
Пристосованість окремих хромосом в популяції визначається значенням цієї функції для значень х, які відповідають цим хромосомам, тобто для фенотипів, які відповідають певним генотипам.
Слайд 9Класичний ГА
Основний (класичний) генетичний алгоритм (який також називається елементарним чи
простим генетичним алгоритмом) складається з наступних кроків:
ініціалізація, або вибір вихідної
популяції хромосом;
оцінка пристосованості хромосом в популяції;
перевірка умови зупинки алгоритму;
селекція хромосом;
застосування генетичних операторів;
формування нової популяції;
вибір «найкращої» хромосоми.
Слайд 11Блок-схема генетичного алгоритму
Слайд 12Перевірка умови зупинки алгоритму
Визначення умови зупинки генетичного алгоритму залежить
від його конкретного застосування. У оптимізаційних задачах, якщо відомо максимальне
(або мінімальне) значення функції пристосованості, то зупинка алгоритму може відбутися після досягнення очікуваного оптимального значення, можливо — з заданою точністю.
Зупинка алгоритму також може статися у разі, коли його виконання не приводить до поліпшення вже досягнутого значення. Алгоритм може бути зупинений після закінчення певного часу виконання або після виконання заданої кількості ітерацій. Якщо умова зупинки виконана, то проводиться перехід до завершального етапу вибору «найкращої» хромосоми. В іншому випадку на наступному кроці виконується селекція.
Слайд 13Селекція хромосом
Селекція хромосом полягає у виборі (по розрахованим на
другому етапі значеннями функції пристосованості) тих хромосом, які братимуть участь
у створенні нащадків для наступної популяції, тобто для чергового покоління. Такий вибір здійснюється згідно з принципом природного добору, за яким найбільші шанси на участь у створенні нових особин мають хромосоми з найбільшими значеннями функції пристосованості.
Існують різні методи селекції. Найбільш популярним вважається так званий метод рулетки, який свою назву отримав за аналогією з відомою азартною грою. Кожній хромосомі може бути зіставлений сектор колеса рулетки, величина якого встановлюється пропорційною значенню функції пристосованості даної хромосоми. Тому чим більше значення функції пристосованості, тим більше сектор на колесі рулетки.
Слайд 14Схема виконання генетичного алгоритму
Слайд 15Метод рулетки
Все колесо рулетки відповідає сумі значень функції пристосованості всіх
хромосом розглянутої популяції. Кожній хромосомі, що позначається chi для і
=1,2, …, N (де N позначає чисельність популяції) відповідає сектор колеса V(сhj), виражений у відсотках згідно з формулою
Слайд 16Метод рулетки
Селекція хромосоми може бути представлена як результат повороту колеса
рулетки, оскільки хромосома «яка виграла» (тобто обрана) відноситься до сектору
цього колеса, що випав.
Очевидно, що чим більше сектор, тим більше вірогідність «перемоги» відповідної хромосоми. Тому ймовірність вибору даної хромосоми виявляється пропорційною значенню її функції пристосованості. Якщо все коло колеса рулетки представити у вигляді цифрового інтервалу [0, 100], то вибір хромосоми можна ототожнити з вибором числа з інтервалу [a, b], де а і b позначають відповідно початок і закінчення фрагмента кола, відповідного цьому сектору колеса; очевидно, що 0 <а < b <100.
Слайд 17Перехід до наступних кроків ГА
В результаті процесу селекції створюється батьківська
популяція, також звана батьківським пулом (matingpool) з чисельністю N, що
дорівнює чисельності поточної популяції.
Застосування генетичних операторів до хромосом, відібраних за допомогою селекції, призводить до формування нової популяції нащадків від створеної на попередньому кроці батьківської популяції.
У класичному генетичному алгоритмі застосовуються два основних генетичних оператора: оператор схрещування (сrossover) та оператор мутації (mutation). Однак слід зазначити, що оператор мутації грає явно другорядну роль в порівнянні з оператором схрещування. Це означає, що схрещування в класичному генетичному алгоритмі здійснюється практично завжди, тоді як мутація — досить рідко. Вірогідність схрещування, як правило, досить велика (звичайно 0,5 <рc <1), тоді як імовірність мутації встановлюється дуже малою (найчастіше 0 <рm <0,1). Це випливає з аналогії зі світом живих організмів, де мутації відбуваються надзвичайно рідко.
Слайд 18Оператор схрещування
На першому етапі схрещування вибираються пари хромосом з
батьківського популяції (батьківського пулу). Це тимчасова популяція, що складається з
хромосом, відібраних в результаті селекції та призначених для подальших перетворень операторами схрещування і мутації з метою формування нової популяції нащадків. На даному етапі хромосоми з батьківського популяції об'єднуються в пари.
Це здійснюється випадковим способом відповідно до ймовірністю схрещування Pс. Далі для кожної пари відібраних таким чином батьків розігрується позиція гена (локус) у хромосомі, що визначає так звану точку схрещування. Якщо хромосома кожного з батьків складається з L генів, то очевидно, що точка схрещування Lк представляє собою натуральне число, менше L. Тому фіксація точки схрещування зводиться до випадкового вибору числа з інтервалу [1, L-1] У результаті схрещування пари батьківських хромосом виходить така пара нащадків:
нащадок, хромосома якого на позиціях від 1 до Lк складається з генів першого з батьків, а на позиціях від Lк + 1 до L — із генів другого з батьків;
нащадок, хромосома якого на позиціях від 1 до Lк складається з генів другого з батьків, а на позиціях від Lк + 1 до L — з генів першого з батьків.
Слайд 20Оператор мутації
Оператор мутації з імовірністю рm змінює значення гена
в хромосомі на протилежне (тобто з 0 на 1 або
навпаки). Наприклад, якщо в хромосомі [100110101010] мутації піддається ген на позиції 7, то його значення, рівне 1, змінюється на 0. що призводить до утворення хромосоми [100110001010]. Як вже згадувалося вище, ймовірність мутації зазвичай дуже мала, і саме від неї залежить, чи буде цей ген мутувати чи ні. Вірогідність рm мутації може емулюватися, наприклад, випадковим вибором числа з інтервалу [0, 1] для кожного гена і відбором для виконання цієї операції тих генів, для яких розігране число виявляється меншим або рівним значенню рm.
Слайд 21Ілюстрація виконання класичного генетичного алгоритму
Розглянемо сильно спрощений і досить штучний
приклад, що складається в знаходженні хромосоми з максимальною кількістю одиниць.
Припустимо, що хромосоми складаються з 12 генів, а популяція налічує 8 хромосом. Зрозуміло, що найкращою буде хромосома, що складається з 12 одиниць. Подивимося, як протікає процес вирішення цієї вельми тривіальної задачі за допомогою генетичного алгоритму.
Слайд 22Ілюстрація виконання класичного генетичного алгоритму
Ініціалізація, або вибір вихідної популяції хромосом.
Необхідно випадковим чином згенерувати 8 двійкових послідовностей довжиною 12 бітів.
Це можна досягти, наприклад, підкиданням монети (96 разів, при випаданні «орла» приписується значення 1, а у разі «решки» — 0). Таким чином можна сформувати вихідну популяцію
ch1 = [111001100101] ch5 = [010001100100]
ch2= [001100111010] ch6 = [010011000101]
ch3 = [011101110011] ch7 = [101011011011]
ch4 = [001000101000] ch8 = [000010111100]
Слайд 23Ілюстрація виконання класичного генетичного алгоритму
Оцінка пристосованості хромосом в популяції. У
спрощеному прикладі, що розглядається, вирішується задача знаходження такої хромосоми, яка
містить найбільшу кількість одиниць. Тому функція пристосованості визначає кількість одиниць у хромосомі. Позначимо функцію пристосованості символом F. Тоді її значення для кожної хромосоми з вихідної популяції будуть такі:
F(ch1) = 7 F(ch5)= 4
F(ch2) = 6 F(ch6) = 5
F(ch3) = 8 F(ch7) = 8
F(ch4) = 3 F(ch8) = 5
Хромосоми ch3 і ch7 характеризуються найбільшими значеннями функції приналежності. У цій популяції вони вважаються найкращими кандидатами на рішення задачі.
Слайд 24Ілюстрація виконання класичного генетичного алгоритму
Селекція хромосом. Селекція проводиться методом рулетки.
На підставі формул (1.2) і (1.3) для кожної з 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
Слайд 25Ілюстрація виконання класичного генетичного алгоритму
Розіграш за допомогою колеса рулетки зводиться
до випадкового вибору числа з інтервалу [0, 100], що вказує
на відповідний сектор на колесі, тобто на конкретну хромосому. Припустимо, що розіграні наступні 8 чисел:
79 44 9 74 44 86 48 23
Це означає вибір хромосом
ch7 ch3 ch1 ch7 ch3 ch7 ch4 ch2
Слайд 26Ілюстрація виконання класичного генетичного алгоритму
Припустимо, що ні одна з відібраних
у процесі селекції хромосом не піддається мутації, і всі вони
складають популяцію хромосом, призначених для схрещування. Це означає, що ймовірність схрещування Pс = 1, а ймовірність мутації рm = 0. Припустимо, що з цих хромосом випадковим чином сформовані пари батьків
ch2 и ch7 ch1 и ch7 ch3 и ch4 ch3 и ch7
Слайд 27Ілюстрація виконання класичного генетичного алгоритму
Для першої пари випадковим чином вибрана
точка схрещування lk = 4, для другої lk = 3, для третьої
lk = 11, для четвертої lk = 5. В результаті виконання оператора схрещування виходять 4 пари нащадків.
Слайд 28Ілюстрація виконання класичного генетичного алгоритму
Формування нової популяції. Після виконання операції
схрещування ми отримуємо наступну популяцію нащадків:
Ch1 = [001111011011] Ch5 =
[011101110010]
Ch2 = [101000111010] Ch6 = [001000101001]
Ch3 = [111011011011] Ch7 = [011101011011]
Ch4 = [101001100101] Ch8 = [101011110011]
Слайд 29Ілюстрація виконання класичного генетичного алгоритму
Оцінки пристосованості хромосом з новосформованої популяції,
яка стає поточною. Значення функцій пристосованості хромосом цієї популяції складають:
F(Ch1)
= 8 F(Ch5) = 7
F(Ch2) = 6 F(Ch6) = 4
F(Ch3) = 9 F(Ch7) = 8
F(Ch4) = 6 F(Ch8) = 8
Помітно, що популяція нащадків характеризується набагато більш високим середнім значенням функції пристосованості, ніж популяція батьків. Звернемо увагу, що в результаті схрещування отримана хромосома Ch3 з найбільшим значенням функції пристосованості, яким не володіла ні одна хромосома з батьківського популяції.
Слайд 30Загальний програмний алгоритм ГА
Слайд 31Теорія “sheme”
Хоча зовні здається, що ГА обробляє рядки, насправді
при цьому неявно відбувається обробка шим (“sheme”), що представляють шаблони
подоби між рядками. ГА практично не може займатися повним перебором усіх представлень у просторі пошуку.
Слайд 32Теорія “sheme”
Шима - це рядок довжиною l (що дорівнює
довжині будь-якого рядка популяції), що складається зі знаків алфавіту {0;1;*},
де {*} - невизначений символ.
Слайд 33Теорія “sheme”
Кожна шима визначає безліч усіх бінарних рядків довжини
l, що мають у відповідних позиціях або 0, або 1,
у залежності від того, який біт знаходиться у відповідній позиції самої шими.
Наприклад, шима, 1**01, визначає собою множину з чотирьох п’ятибітових рядків {10001; 10101; 11001; 11101}.
У шим виділяють дві властивості - порядок і визначена довжина. Порядок шими - це число визначених бітів ("0" чи "1") у шимі.
Слайд 34Теорія “sheme”
Визначена довжина - відстань між крайніми визначеними бітами
у шимі. Наприклад, вищезгадана шима має порядок o(1**01)=3, а визначена
довжина d(1**01) = 4. Кожен рядок у популяції являється прикладом 2l шим.
Слайд 35Теорія “sheme”
Будуючі блоки - це шими, що мають такі
властивості, як високу пристосованість, низький порядок, коротку визначену довжину.
Пристосованість
шими визначається, як середнє серед пристосованостей прикладів, котрі її містять. Після процедури відбору залишаються лише строки с найбільш високою пристосованістю.
Слайд 36Теорія “sheme”
Нехай m(H,t) - число прикладів шими H у
t-ому поколінні. Обчислимо очікуване число прикладів H у наступному поколінні
m(H,t+1) у термінах m(H,t). Простий ГА кожному рядку ставить у відповідність імовірність її "виживання" при відбиранні пропорційно її пристосованості. Очікується, що шима H може бути обрана m(H,t)*(f(H)/fср.) разів, де fср. - середня пристосованість популяції, а f(H) - середня пристосованість тих рядків у популяції, що є прикладами H.
Слайд 37Геометрична інтерпретація теорії “sheme”
Розглянемо на прикладі простої одномірної функції
f(x) процедуру переходу з евклідова простору параметрів в простір представлень.
f(x) = 10 + x cos(x), на відрізку [0, 10].
Слайд 38Геометрична інтерпретація теорії “sheme”
Нехай кодування буде здійснюватися бінарними рядками довжини
3. Тобто відрізок [0,10] потрібно розбити на 23 = 8
підінтервалів, кожному з яких буде відповідати унікальна двійкова комбінація, одержувана перекладом номера підінтервала, рахуючи зліва направо, у двійковій позиційній системі. Довжина кожного такого інтервалу буде h=10:8=1,25.
Слайд 39Геометрична інтерпретація теорії “sheme”
Слайд 40Геометрична інтерпретація теорії “sheme”
Тепер подивимося, чому будуть відповідати шими порядку
2. Таких шим 2o(H)Cl=22C3=12: {00*, 01*, 10*, 11*, 0*0, 0*1,
1*0, 1*1, *00, *01, *10, *11}. Геометрично, усі такі шаблони описують поверхні, розмірність яких на одиницю перевершує розмірність крапки - вершини куба, тобто шими порядку 2 довжини 3 відповідають ребрам куба
Слайд 41Геометрична інтерпретація теорії “sheme”
шими порядку 1 довжини 3 відповідають граням
куба. порядку 0 и довжини 3 – цілий куб
Слайд 42Геометрична інтерпретація теорії “sheme”
шими порядку 1 довжини 3 – відповідають
граням куба
Слайд 43Геометрична інтерпретація теорії “sheme”
В евклідовому просторі шими 2-го та 1-го
порядків будуть відповідати таким просторам (наприклад, для шим: 11*, 00*
та 0**, 1**)
Слайд 44Переваги та недоліки ГА
Переваги генетичних алгоритмів
не вимагають жодної інформації про
поверхні відповіді;
розриви, існуючі на поверхні відповіді мають незначний ефект
на повну ефективність оптимізації;
стійки до потрапляння в локальні оптимуми;
добре працюють при вирішенні великомасштабних проблем оптимізації;
можуть бути використані для широкого класу задач;
прості і прозорі в реалізації;
можуть бути використані в задачах з мінливим середовищем.
ГА не бажано використовувати:
у разі, коли необхідно знайти точний глобальний оптимум;
при великому часі обчислення функції;
необхідно знайти всі рішення задачі, а не одне з них;
конфігурація не є простою (вимагає кодування рішення).
Слайд 45Корисні посилання
http://www.gotai.net/documents/doc-imp-005.aspx - ГА на C#
http://matlab.exponenta.ru/fuzzylogic/book5/1_2.php - ГА на MatLab
http://www.aiportal.ru/articles/genetic-algorithms/algorithm-example.html
- приклад розв’язку задачі