Генетические алгоритмы для 239.pptx
- Количество слайдов: 37
Генетические алгоритмы Владимир Ульянцев Кафедра «Компьютерные технологии» НИУ ИТМО Урок для ФМЛ 239. 29 февраля 2012
Задача о расстановке ферзей • Шахматная доска размером 8 на 8 • 8 ферзей • Необходимо их расставить так, чтобы они не били друга • Задача поиска в условиях ограничений 2
Пространство поиска • Число способов расставить 8 фигур на доске 8 на 8: • В каждой вертикали и горизонтали – ровно один ферзь – число вариантов есть 8!=40320 • Число решений задачи – 92 3
Перебор с возвратом • Ставим ферзей начиная с первой горизонтали • В очередной горизонтали пробуем ставить ферзя только в неатакованные клетки • Дошли до конца – решение построено • Если не получилось – возвращаемся назад 4
Обобщение задачи • Размер доски не 8 на 8, а N на N • Эффективность перебора падает с ростом размеров доски – «комбинаторный взрыв» 5
Комбинаторный взрыв 6
Вопросы • Слушаю вопросы по первой части лекции 7
Эволюция по Дарвину • Принцип естественного отбора • Механизм дарвиновской эволюции: – Рождение нового поколения – Часть особей выросла и дала потомство, часть – погибла – Погибают неприспособленные, выживают приспособленные, у потомков остаются лучшие черты 8
Генетические алгоритмы • Метод направленного перебора • Оптимизационный метод, базирующийся на эволюции популяции «особей» • Особь характеризуется приспособленностью • Задача оптимизации – максимизация функции приспособленности 9
Основные компоненты • Пространство допустимых решений • Функция приспособленности Fitness • Генетические операции: – Мутация – Скрещивание • Критерий завершения работы алгоритма: достижение некоторого значения функции приспособленности, генерация некоторого числа поколений и т. д. 10
Общая схема генетического алгоритма • Сгенерировать начальное поколение • Пока не выполнен критерий остановки: – Выбрать часть особей из текущего поколения на основе значений функции приспособленности – Сформировать следующее поколение с помощью операций скрещивания и мутации 11
Представление особей • Битовые строки – генетический алгоритм • Структурное представление (применительно к генерации программ) – генетическое программирование • Способ представления зависит от задачи • От способа представления особей зависят операции мутации и скрещивания 12
Одноточечное скрещивание и мутация для битовых строк Скрещивание: 11010 01100101101 ⇒ 101100101101 10110 10011101001 ⇒ 11010 10011101001 Мутация: 101100101101 ⇒ 101101101101 13
Методы отбора (1) • Ранговый отбор – для каждой особи ее вероятность попасть в промежуточную популяцию пропорциональна ее порядковому номеру в отсортированной по возрастанию приспособленности популяции • Турнирный отбор осуществляется следующим образом: из популяции случайным образом выбирается t особей, и лучшая из них помещается в промежуточную популяцию. Наиболее распространен вариант при t = 2 14
Методы отбора (2) • Элитизм – в очередное поколение переходит некоторая фиксированная доля лучших особей 15
Решение задачи о расстановке ферзей с помощью ГА • Будем использовать структурное представление особей – в виде перестановок, а не в виде битовых строк • Например, при n = 5 • 1 3 4 5 2 16
Операция мутации • Обмен двух элементов перестановки • 1 3 4 5 2 –> 1 5 4 3 2 17
Операция скрещивания (1) • На вход поступают две перестановки: P 1 и P 2 • На выходе получается одна: Q • Самостоятельно постройте алгоритм скрещивания 18
Функция приспособленности • Пусть k – число пар ферзей, которые атакуют друга в расстановке, задаваемой особью P • Значение функции приспособленности f(P)=-k • Например, f(P)=-4 • Необходимо найти P: f(P) = 0
Генерация очередного поколения • Элитизм – 10% лучших особей переходят напрямую • Для заполнения оставшихся 90% поколения выполняются следующие операции: – Выбираются две особи из текущего поколения – С некоторой вероятностью производится их скрещивание – Иначе – выполняется мутация 20
Время работы алгоритма 21
Вопросы • Слушаю вопросы по второй части лекции 22
Приближение изображения многоугольниками • Особь – закодированные многоугольники • Функция приспособленности – степень похожести изображений • Видео № 1! • Статья автора – http: //blog. nihilogic. dk/2009/01/genetic-monalisa. html 23
24
25
26
Попробуйте сами! • http: //www. nihilogic. dk/labs/evolvingimages/ 27
Какая устроен алгоритм? • Видео № 2 • Видео № 3 • Видео № 4 28
Машинка • Видео № 5 • Теперь вы: – http: //megaswf. com/serve/102223/ 29
Антенна NASA • http: //adam. sardar. me. uk/? p=499 30
Лего-мост 31
Лего-мост в реальности 32
Длинный мост 33
Генетическое программирование 34
Построение автопилота • Видео № 6 35
Спасибо за внимание! Владимир Ульянцев ulyantsev@rain. ifmo. ru 36
Перебор с возвратом function bt(p : integer) : boolean; var i : integer; begin result : = false; if (p = n + 1) then begin result : = true; exit; end; for i : = 1 to n do begin if (not w[i]) and (not diag 1[p + i]) and (not diag 2[p - i]) then begin w[i] : = true; diag 1[p + i] : = true; diag 2[p - i] : = true; pos[p] : = i; if (bt(p + 1)) then begin result : = true; exit; end; w[i] : = false; diag 1[p + i] : = false; diag 2[p - i] : = false; end; 37


