Скачать презентацию Генетические алгоритмы Генетический алгоритм это алгоритм Скачать презентацию Генетические алгоритмы Генетический алгоритм это алгоритм

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

  • Количество слайдов: 33

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

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

Генетические алгоритмы являются частью более общей группы методов, называемой эволюционными вычислениями, которые объединяют различные Генетические алгоритмы являются частью более общей группы методов, называемой эволюционными вычислениями, которые объединяют различные варианты использования эволюционных принципов для достижения поставленной цели. Также в ней выделяют следующие направления: Эволюционные стратегии Генетическое программирование Эволюционное программирование – Было впервые предложено Л. Дж. Фогелем в 1960 году для моделирования эволюции как процесса обучения с целью создания искусственного интеллекта. Он использовал конечные автоматы, предсказывающие символы в цифровых последовательностях, которые, эволюционируя, становились более приспособленными к решению поставленной задачи.

Генетические алгоритмы применяются для решения следующих задач: • Оптимизация функций • Разнообразные задачи на Генетические алгоритмы применяются для решения следующих задач: • Оптимизация функций • Разнообразные задачи на графах (задача коммивояжера, раска, нахождение паросочетаний) • Настройка и обучение искусственной нейронной сети • Задачи компоновки • Составление расписаний • Игровые стратегии • Аппроксимация функций • Искусственная жизнь • Биоинформатика

Подоплекой возникновения этих методов стали несколько открытий в биологии. Сначала Чарльз Дарвин опубликовал в Подоплекой возникновения этих методов стали несколько открытий в биологии. Сначала Чарльз Дарвин опубликовал в 1859 году свою знаменитую работу "Происхождение видов", где были провозглашены основные принципы эволюционной теории: • Наследственность (потомки сохраняют свойства родителей) • Изменчивость (потомки почти всегда не идентичны) • Естественный отбор (выживают наиболее приспособленные). Тем самым было показано, какие принципы приводят к эволюционному развитию флоры и фауны под влиянием окружающей среды. Однако вопрос о том, как генетическая информация передается от родителей потомкам, долгое время оставался открытым. В 1944 году Эйвери, Маклеод и Маккарти опубликовали результаты своих исследований, доказывавших, что за наследственные процессы ответственна "кислота дезоксирибозного типа". Однако о том, как работает ДНК, стало известно позднее. В 1953 году в номере журнала "Nature" вышла статья Уотсона и Крика, которые впервые предложили модель двухцепочной спирали ДНК. Таким образом, стали известны все необходимые компоненты для реализации эволюционной модели.

Родителем современной теории генетических алгоритмов считается Д. Х. Холланд. Однако сначала его интересовала, прежде Родителем современной теории генетических алгоритмов считается Д. Х. Холланд. Однако сначала его интересовала, прежде всего, способность природных систем к адаптации, а его мечтой было создание такой системы, которая могла бы приспосабливаться к любым условиям окружающей среды. В 1975 году Холланд публикует свою самую знаменитую работу «Adaptation in Natural and Artificial Systems» . В ней он впервые ввёл термин «генетический алгоритм» и предложил схему классического генетического алгоритма (canonical GA). В дальнейшем понятие «генетические алгоритмы» стало очень широким, и зачастую к ним относятся алгоритмы, сильно отличающиеся от классического ГА. Ученики Холланда – Кеннет Де Йонг и Дэвид Голдберг – внесли огромный вклад в развитие ГА. Наиболее известная работа Голдберга – «Genetic algorithms in search optimization and machine learning» (1989).

Представим себе искусственный мир, населенный множеством существ (особей), причем каждое существо — это некоторое Представим себе искусственный мир, населенный множеством существ (особей), причем каждое существо — это некоторое решение нашей задачи. Будем считать особь тем более приспособленной, чем лучше соответствующее решение (чем большее значение целевой функции оно дает). Тогда задача максимизации целевой функции сводится к поиску наиболее приспособленного существа. Будем рассматривать много поколений, сменяющих друга. Если ввести в действие естественный отбор и генетическое наследование то полученный мир будет подчиняться законам эволюции. В соответствии с нашим определением приспособленности, целью этой искусственной эволюции будет как раз создание наилучших решений. Принудительно остановив этот процесс через достаточно долгое время после его начала и выбрав наиболее приспособленную особь в текущем поколении, мы получим не абсолютно точный, но близкий к оптимальному ответ. Для того чтобы говорить о генетическом наследовании, нужно снабдить наши существа хромосомами. В генетическом алгоритме хромосома — это некоторый числовой вектор, соответствующий изменяемым параметрам задачи, а набор хромосом данной особи определяет решение задачи. Какие именно векторы следует рассматривать в конкретной задаче, решает пользователь. Каждая из позиций вектора хромосомы называется геном.

Определим теперь понятия, соответствующие мутации и кроссинговеру в генетическом алгоритме: – Мутация — это Определим теперь понятия, соответствующие мутации и кроссинговеру в генетическом алгоритме: – Мутация — это преобразование хромосомы, случайно изменяющее одну или несколько ее позиций (генов). Наиболее распространенный вид мутаций — случайное изменение только одного из генов хромосомы. – Кроссовер (cross-over, в литературе по генетическим алгоритмам также употребляется название кроссинговер или скрещивание) — это операция, при которой из двух хромосом порождается одна или несколько новых хромосом. В простейшем случае кроссовер в генетическом алгоритме реализуется так же, как и в биологии. При этом хромосомы разрезаются в случайной точке и обмениваются частями между собой. Например, если хромосомы (1, 2, 3, 4, 5) и (0, 0, 0) разрезать между третьим и четвертым генами и обменять их части, то получатся потомки (1, 2, 3, 0, 0) и (0, 0, 0, 4, 5).

 • • • Генетический алгоритм состоит из трех стадий: генерация промежуточной популяции (intermediate • • • Генетический алгоритм состоит из трех стадий: генерация промежуточной популяции (intermediate generation) путем отбора (selection) текущего поколения скрещивание (recombination) особей промежуточной популяции путем кроссовера (crossover), что приводит к формированию нового поколения мутация нового поколения

Первые две стадии (отбор и скрещивание): Первые две стадии (отбор и скрещивание):

Алгоритм работы • 1. Генерируется начальная популяция особей (индивидуумов), т. е. некоторый набор решений Алгоритм работы • 1. Генерируется начальная популяция особей (индивидуумов), т. е. некоторый набор решений задачи. Как правило, это делается случайным образом. • 2. Моделируется размножение внутри этой популяции: – рассчитываются вероятности участия индивидуумов в скрещивании: чем приспособленнее индивидуум, то есть чем больше (меньше) соответствующее ему значение целевой функции, тем с большей вероятностью он будет участвовать в скрещивании, – с учетом рассчитанных вероятностей случайно составляется несколько пар индивидуумов, – производится скрещивание между хромосомами в каждой паре, – полученные новые хромосомы помещаются в популяцию нового поколения. • 3. Моделируются мутации — в нескольких случайно выбранных особях нового поколения изменяются некоторые гены. • 4. Старая популяция частично или полностью уничтожается и переходим к рассмотрению следующего поколения – к шагу 2.

 • Популяция следующего поколения в большинстве реализаций генетических алгоритмов содержит столько же особей, • Популяция следующего поколения в большинстве реализаций генетических алгоритмов содержит столько же особей, сколько начальная, но в силу отбора приспособленность в ней в среднем выше. Описанные процессы отбора, скрещивания и мутации повторяются уже для этой популяции и т. д. • В каждом следующем поколении мы будем наблюдать возникновение совершенно новых решений нашей задачи. Среди них будут как плохие, так и хорошие, но благодаря отбору число хороших решений будет возрастать. • В природе не бывает абсолютных гарантий, и даже самый приспособленный тигр может погибнуть от ружейного выстрела, не оставив потомства. Имитируя эволюцию, мы можем избегать подобных нежелательных событий и всегда сохранять жизнь лучшему из индивидуумов текущего поколения — такая методика называется “стратегией элитизма”.

Эффективность генетического алгоритма – степень реализации запланированных действий алгоритма и достижение требуемых значений целевой Эффективность генетического алгоритма – степень реализации запланированных действий алгоритма и достижение требуемых значений целевой функции. Эффективность во многом определяется структурой и составом начальной популяции. При создании начального множества решений происходит формирование популяции на основе четырех основных принципов: • «одеяла» – генерируется полная популяция, включающая все возможные решения в некоторой заданной области; • «дробовика» – подразумевает случайный выбор альтернатив из всей области решений данной задачи. • «фокусировки» – реализует случайный выбор допустимых альтернатив из заданной области решений данной задачи. • Комбинирования – состоит в различных совместных реализациях первых трех принципов.

Простой (одноточечный) оператор crossover Перед началом работы одноточечного оператора crossover определяется так называемая точка Простой (одноточечный) оператор crossover Перед началом работы одноточечного оператора crossover определяется так называемая точка оператора кроссинговера, или разрезающая точка оператора crossover, которая обычно определяется случайно. Эта точка определяет место в двух хромосомах, где они должны быть «разрезаны» . Р 1 : 11|111 Р 2 : 00|000 ________ Р'1 : 11|000 Р'2 : 00|111 Одноточечный оператор crossover • • • Одноточечный оператор кроссинговера выполняется в три этапа: Две хромосомы A = а 1, а 2, . . , а. L и B = a 1, a 2, . . , a L выбираются случайно из текущей популяции. Число k выбирается из {1, 2, . . . , L-1} также случайно. Здесь L - длина хромосомы, k - точка оператора crossover (номер, значение или код гена, после которого выполняется разрез хромосомы). Две новые хромосомы формируются из A и B путем перестановок элементов согласно правилу

Двухточечный и N-точечный оператор crossover В каждой хромосоме определяются две точки оператора crossover, и Двухточечный и N-точечный оператор crossover В каждой хромосоме определяются две точки оператора crossover, и хромосомы обмениваются участками, расположенными между двумя точками оператора crossover. Р 1 : 1 1 1 | 0 0 Р 2 : 0 0 0 | 1 1 | 1 0 __________ Р'1 : 1 1 1 | 0 0 Р'2 : 0 0 0 | 0 1 | 1 0 Пример двухточечного оператора crossover Развитием двухточечного оператора crossover является многоточечный оператор crossover или N-точечный оператор crossover. Многоточечный оператор crossover выполняется аналогично двухточечному оператору crossover, хотя большое число «разрезающих» точек может привести к потере «хороших» родительских свойств. Р 1 : 1 | 1 1 |0 1 | Р 2 : 0 | 0 0 |1 0 | __________ Р'1 : 1| 0 0 | 0 1 | Р'2 : 0| 1 1 | 1 0 | 00 11 11 00 Пример трехточечного оператора crossover

Одноточечный и двухточечный операторы мутации Оператор мутации – это языковая конструкция, позволяющая на основе Одноточечный и двухточечный операторы мутации Оператор мутации – это языковая конструкция, позволяющая на основе преобразования родительской хромосомы (или ее части) создавать хромосому потомка. Простейшим оператором мутации является одноточечный. При его реализации случайно выбирают ген в родительской хромосоме и, обменивая его на рядом расположенный ген, получают хромосому потомка. Р 1 : 0 1 1 | 0 1 1 Р'1 : 0 1 0 | 1 1 1 Одноточечный оператор мутации Р 1 – родительская хромосома, а Р'1 – хромосома-потомок после применения одноточечного оператора мутации При реализации двухточечного оператора мутации случайным или направленным образом выбираются две точки разреза. Затем производится перестановка генов между собой, расположенных справа от точек разреза. Р P' : A|BCD|EF : A EСD BF Двухточечный оператор мутации Р 1 – родительская хромосома, а Р'1 – хромосома-потомок после применения двухточечного оператора мутации

Пример использования генетического алгоритма Рассмотрим диофантово (только целые решения) уравнение: a+2 b+3 c+4 d=30, Пример использования генетического алгоритма Рассмотрим диофантово (только целые решения) уравнение: a+2 b+3 c+4 d=30, где a, b, c и d - некоторые положительные целые. Применение ГА за очень короткое время находит искомое решение (a, b, c, d). Выберем 5 случайных решений: 1 =< a, b, c, d =< 30. Вообще говоря, мы можем использовать меньшее ограничение для b, c, d, но для упрощения пусть будет 30. Хромосома (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)

Чтобы вычислить коэффициенты выживаемости (fitness), подставим каждое решение в выражение a+2 b+3 c+4 d. Чтобы вычислить коэффициенты выживаемости (fitness), подставим каждое решение в выражение a+2 b+3 c+4 d. Расстояние от полученного значения до 30 и будет нужным значением. Хромосома Коэффициент выживаемости 1 |114 -30|=84 2 |54 -30|=24 3 |56 -30|=26 4 |163 -30|=133 5 |58 -30|=28 Так как меньшие значения ближе к 30, то они более желательны. Чтобы создать систему, где хромосомы с более подходящими значениями имеют большие шансы оказаться родителями, мы должны вычислить, с какой вероятностью (в %) может быть выбрана каждая. Например, можно вычислить сумму обратных значений коэффициентов, и исходя из этого вычислять вероятности Хромосома Подходящесть 1 (1/84)/0. 135266 = 8. 80% 2 (1/24)/0. 135266 = 30. 8% 3 (1/26)/0. 135266 = 28. 4% 4 (1/133)/0. 135266 = 5. 56% 5 (1/28)/0. 135266 = 26. 4%

 • Далее симулируется выбор родителей. Хромосома отца Хромосома матери 3 1 5 2 • Далее симулируется выбор родителей. Хромосома отца Хромосома матери 3 1 5 2 3 5 2 5 5 3 • Каждый потомок содержит информацию о генах и отца и от матери. Вообще говоря, это можно обеспечить различными способами, однако в нашем случае можно использовать одноточечный кроссовер. Пусть мать содержит следующий набор решений: a 1, b 1, c 1, d 1, а отец a 2, b 2, c 2, d 2, тогда возможно 6 различных кроссоверов (| = разделительная линия): Хромосома-отец Хромосома-мать Хромосома-потомок a 1 | b 1, c 1, d 1 a 2 | b 2, c 2, d 2 a 1, b 2, c 2, d 2 or a 2, b 1, c 1, d 1 a 1, b 1 | c 1, d 1 a 2, b 2 | c 2, d 2 a 1, b 1, c 2, d 2 or a 2, b 2, c 1, d 1 a 1, b 1, c 1 | d 1 a 2, b 2, c 2 | d 2 a 1, b 1, c 1, d 2 or a 2, b 2, c 2, d 1

 • • Попробуем проделать это с нашими потомками Хромосома-отец Хромосома-мать Хромосома-потомок (13 | • • Попробуем проделать это с нашими потомками Хромосома-отец Хромосома-мать Хромосома-потомок (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) Теперь мы можем вычислить коэффициенты выживаемости (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, 5, 5, 2) |46 -30|=16 Средняя приспособленность (fitness) потомков оказалась 38. 8, в то время как у родителей этот коэффициент равнялся 59. 4. Следующее поколение может мутировать. Например, мы можем заменить одно из значений какой-нибудь хромосомы на случайное целое от 1 до 30.

Критерии остановки Такой процесс эволюции может продолжаться до бесконечности. Критерием останова может служить заданное Критерии остановки Такой процесс эволюции может продолжаться до бесконечности. Критерием останова может служить заданное количество поколений или схождение (convergence) популяции. Схождением называется состояние популяции, когда все строки популяции находятся в области некоторого экстремума и почти одинаковы. То есть кроссовер практически никак не изменяет популяции, а мутирующие особи склонны вымирать, так как менее приспособлены. Таким образом, схождение популяции означает, что достигнуто решение близкое к оптимальному.

Итоговым решением задачи может служить наиболее приспособленная особь последнего поколения. Итоговым решением задачи может служить наиболее приспособленная особь последнего поколения.

Метод генетического консилиума В основу метода положены новые принципы организации гибридного человеко-машинного интеллекта, использующие Метод генетического консилиума В основу метода положены новые принципы организации гибридного человеко-машинного интеллекта, использующие генетические алгоритмы. С их помощью осуществляется синхронизация коллективной работы группы свидетелей или эффективная организация работы одного свидетеля по восстановлению фоторобота.

Классическая схема генетического алгоритма Классическая схема генетического алгоритма

Объемная визуализация субъективного портрета Характеристики программы Face. Gen. Modeller: - Модель головы представляется полигонами; Объемная визуализация субъективного портрета Характеристики программы Face. Gen. Modeller: - Модель головы представляется полигонами; - Редактирование лица осуществляется 150 параметрами; - Вращение и перемещение головы в пространстве; - Есть возможность проведения операций кроссинговера и мутации фотороботов.

Общий вид рабочего окна программы Общий вид рабочего окна программы

Возможности Face. Gen Modeller Возрастной морфинг Половой морфинг Расовый морфинг Различная текстура и детальность Возможности Face. Gen Modeller Возрастной морфинг Половой морфинг Расовый морфинг Различная текстура и детальность кожи лица

Редактирование параметров лица Редактирование параметров лица

Функция Tween (Скрещивание) Функция Tween (Скрещивание)

Функция Genetic (Мутация) Функция Genetic (Мутация)

Результаты первого эксперимента 1 -я итерация 2 -я итерация 3 -я итерация 4 -я Результаты первого эксперимента 1 -я итерация 2 -я итерация 3 -я итерация 4 -я итерация 1 -й эксперт 2 -й эксперт 3 -й эксперт

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