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

ПР-ИС-Лек4.ppt

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

Генетические алгоритмы Генети ческий алгори тм (англ. genetic algorithm) — это эвристический алгоритм поиска, Генетические алгоритмы Генети ческий алгори тм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путем последовательного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений (en: evolutionary computation). Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания» , который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе. «Отцом-основателем» генетических алгоритмов считается Джон Холланд (en: John Henry Holland), книга которого «Адаптация в естественных и искусственных системах» (1992)[1] является основополагающим трудом в этой области исследований.

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

Достоинства • Позволяют решать задачи с любым количеством точек • Разрешают распараллеливать задачу • Достоинства • Позволяют решать задачи с любым количеством точек • Разрешают распараллеливать задачу • Допускают ограничение решения задачи, как по времени, так и по заданному значению критерия • Обладают высоким быстродействием

Основные понятия • Популяция – конечное множество альтернативных вариантов или особей. • Особи – Основные понятия • Популяция – конечное множество альтернативных вариантов или особей. • Особи – хромосомы, входящие в популяцию (может быть и одна) • Хромосома – упорядоченная последовательность генов, значение (аллель) которых выбирается из множества (0, 1). • Фенотипы – точки пространства поиска. • Генотип – набор хромосом данной особи. • Локус, или позиция, указывает место размещения данного гена в хромосоме. (Локи – множество позиций генов). • Crossover (кроссовер) – генерирует новую хромосому, объединяя генетический материал двух родительских. • Mutation (мутация) – случайное изменение хромосомы. • Инверсия – изменяет порядок бит в хромосоме. • Fitness – функция приспособленности

Особенности ГА • ГА основан на процессах биологических организмов. Биологические популяции развиваются в течение Особенности ГА • ГА основан на процессах биологических организмов. Биологические популяции развиваются в течение нескольких поколений, подчиняясь законам естественного отбора (по Дарвину), то есть «выживают наиболее приспособленные» . • На начальном этапе случайным образом генерируется популяция хромосом и вычисляется приспособленность особей в ней. Далее из популяции отбираются наиболее приспособленные особи-решения, скрещиваются (операция наз. Crossover) и добавляются в популяцию, если они лучше имеющихся в ней решений. • Как и в природе, в алгоритме используется механизм мутаций. Таким способом получают совершенно новые хромосомы. Мутации позволяют исследовать новые области поверхности решений и не дают алгоритму застревать в точках локальных оптимумов.

Схема решений Генерация популяций хромосом Селекция и fitness Crossover скрещивание Mutation Мутация Выделение лучшего Схема решений Генерация популяций хромосом Селекция и fitness Crossover скрещивание Mutation Мутация Выделение лучшего решения

Пример. Решение уравнения. a+2 b+3 c+4 d=30 1≤ a, b, c, d ≤ 30 Пример. Решение уравнения. a+2 b+3 c+4 d=30 1≤ a, b, c, d ≤ 30 • Выберем 5 случайных решений Табл. 1 Табл. 2 Хромосомы (a, b, c, d) 1 2 3 4 5 (1, 28, 15, 3) (14, 9, 2, 4) (13, 5, 7, 3) (28, 8, 16, 19) (9, 13, 5, 2) Хромосомы Коэф. выживания (fitness) 1 2 3 4 5 |114 -30|=84 |54 -30|=24 |56 -30|=26 |163 -30|=133 |58 -30|=28 Среднее значение = 59. 4 Чем ближе значения к 30, тем более они желательны

Вычислим вероятностные значения хромосом и представим их в процентах (%) Табл. 3 Хромосом а Вычислим вероятностные значения хромосом и представим их в процентах (%) Табл. 3 Хромосом а % подходящности 1 2 3 4 5 (1/84)/S = 7. 60% (1/24)/S = 26. 6% (1/26)/S = 24. 5% (1/33)/S = 19. 3% (1/28)/S = 22. 8% S=1/84 + 1/26 + 1/33 + 1/28 = 0. 1566

Выбор родителей • Для выбора 5 -и пар родителей (каждая из которых будет иметь Выбор родителей • Для выбора 5 -и пар родителей (каждая из которых будет иметь 1 потомка). Представим, что у нас есть 10000 -я игральная кость. На 760 сторонах отмечена хромосома 1, на 2660 – 2, на 2450 – 3, на 1930 – 4, на 2280 – хромосома 5. Для выбора 1 -й пары кидаем 2 раза и так 5 раз. Получим Хромосома отца Хромосома матери 3 5 3 2 3 1 2 5 5 3 Табл. 4. Симуляция выбора родителей

Каждый потомок содержит информацию о генах отца и матери. Пусть мать содержит следующий набор Каждый потомок содержит информацию о генах отца и матери. Пусть мать содержит следующий набор решений: a 1, b 1, c 1, d 1, а отец – a 2, b 2, c 2, d 2 | - разделительная линия Хромосома отец Хромосома мать Хромосомы - потомки a 1 | b 1 c 1 d 1 a 1 b 1 | c 1 d 1 a 1 b 1 c 1 | d 1 a 2 | b 2 c 2 d 2 a 2 b 2 | c 2 d 2 a 2 b 2 c 2 | d 2 a 1 b 2 c 2 d 2 V a 2 b 1 c 1 d 1 a 1 b 1 c 2 d 2 V a 2 b 2 c 1 d 1 a 1 b 1 c 1 d 2 V a 2 b 2 c 2 d 1

Для нашего примера № 3 5 3 2 3 Хром. -отец (13|5, 7, 3) Для нашего примера № 3 5 3 2 3 Хром. -отец (13|5, 7, 3) (9, 13|5, 2) (13, 5, 7, |3) (14|9, 2, 4) (13, 5|7, 3) Хром. -мать Потомки 1 (1|28, 15, 3) 2 (14|9, 2, 4) 5 (9, 13|5, 2) 3 (13|5, 7, 3) (13, 28, 15, 3) (9, 13, 2, 4) (13, 5, 7, 2) (14, 13, 5, 2) (13, 5, 5, 2) Выживаемость |126 – 30|=96 |57 – 30|=27 |52 -30|=22 |63 -30|=33 |46 -30|=16 Среднее значение = 38. 8 Данное значение гораздо меньше предыдущего - 59. 4

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

Генетический алгоритм Пример. Задача отыскания экстремума функции на отрезке x={0, 7} Генетический алгоритм Пример. Задача отыскания экстремума функции на отрезке x={0, 7}

Блок-схема Кодирование фенотипов Генерация популяции Декодирование Fitness - Выполнено Селекция хромосом Форм-е род. пула Блок-схема Кодирование фенотипов Генерация популяции Декодирование Fitness - Выполнено Селекция хромосом Форм-е род. пула Crossover Созд-ие новой популяции + Решение

Экстремум При х=4 y=82 y 80 70 60 50 2 4 6 х Экстремум При х=4 y=82 y 80 70 60 50 2 4 6 х

Кодирование фенотипов • • • Представим непрерывный отрезок его дискретными значениями Х 0=0; х1=0. Кодирование фенотипов • • • Представим непрерывный отрезок его дискретными значениями Х 0=0; х1=0. 5; х2=1. 0; х3=1. 5; х4=2. 0; Х 5=2. 5; х6=3. 0; х7=3. 5; х8=4. 0; х9=4. 5; Х 10=5. 0; х11=5. 5; х12=6. 0; х13=6. 5; х14=7. 0. Эти значения будем рассматривать как фенотипы, представляющие пространство поиска или множество альтернативных вариантов. • Для кодирования фенотипов в хромосомы используют двоичные коды. • 0 – 0000; 0. 5 – 0001; 1. 0 – 0010; 1. 5 – 0011; - - - 14. 0 - 1110

Генерация начальной популяции • • • Принято начальную выборку производить случайным образом Ch 1=(0000); Генерация начальной популяции • • • Принято начальную выборку производить случайным образом Ch 1=(0000); ch 2=(1101); ch 3=(0100); Ch 4=(1010); ch 5=(0001); ch 6=(0011). • • • Функция приспособленности для каждого фенотипа составит Y 1=50; y 2=69. 5; y 3=74; y 4=80; y 5=57. 5; y 6=69. 5. В качестве показателя приспособленности используется среднее значение Для примера y=66. 75 Среднее значение используют для оценки завершенности процесса поиска: |yi+1+ yi |<=ε

Селекция хромосом текущей популяции • • Используется метод рулетки для скрещивания более приспособленных популяций. Селекция хромосом текущей популяции • • Используется метод рулетки для скрещивания более приспособленных популяций. Из начальной популяции выбирают более приспособленные хромосомы, имеющие большую вероятность. Затем разобъем числовой промежуток [0, 100] на интервалы длиной v(ch)=p(ch)100 Получим длины интервалов: v(ch 1)=12. 48; v(ch 2)=17. 35; v(ch 3)=18. 48; v(ch 4)=19. 98; v(ch 5)=14. 36; v(ch 6)=17. 35 Расположим их на промежутке [0, 100] 1 2 3 4 5 6 0 12. 48 29. 83 48. 31 68. 29 82. 65 100

Выбор родительского пула • Пусть методом Монте-Карло сформирован следующий родительский пул: ch 2=(1101); ch Выбор родительского пула • Пусть методом Монте-Карло сформирован следующий родительский пул: ch 2=(1101); ch 5=(0001); ch 3=(0100); ch 4=(1010). • Множество всех возможных родительских пар определяется прямым произведением: • {ch 2, ch 5, ch 3, ch 4} x {ch 2, ch 5, ch 3, ch 4} = {(ch 2, ch 2); (ch 2, ch 5); (ch 2, ch 3); (ch 2, ch 4); … ; (ch 4, ch 4)}. • Из полученных 36 возможных пар хромосом выбирается случайным образом шесть пар, например: (0001, 0001); (0001, 1101); (1010, 1101); (0100, 1101); (1101, 1101); (0100, 1101). Следующий этап - репродукция

Репродукция • Применяем обязательный оператор кроссовер и только одну его модификацию. Из родительского пула Репродукция • Применяем обязательный оператор кроссовер и только одну его модификацию. Из родительского пула порождаем новую хромосому, у которой первая половина аллелей заимствуется у первого родителя, а вторая – у второго. Возникает новая популяция: ch 1=(0001); ch 2=(0001); ch 3=(1001); ch 4=(0101); ch 5=(1101); ch 6=(0101). • Соответствующие значения функции приспособленности хромосом будут: • Y 1=57. 5; y 2=57. 5; y 3=81. 5; y 4=77. 5; y 5=69. 5; y 6=77. 5. • Среднее значение составит Уср=70. 17 • Видно, что после первой итерации средняя приспособленность выросла, что свидетельствует о правильном направлении поиска. Следующие итерации дадут: 76. 17; 79. 5; 78. 17; 77. 5

Кодирование фенотипов и хромосом • В классическом генетическом алгоритме применяется двоичное кодирование хромосом. Длина Кодирование фенотипов и хромосом • В классическом генетическом алгоритме применяется двоичное кодирование хромосом. Длина хромосом зависит от ширины области определения х и от требуемой точности решения. • Если бы в примере нас интересовало решение с точностью, превышающей 0. 5, то промежуток от 0 до 7 необходимо было бы разбить на большее количество подынтервалов. Для кодирования потребовались бы более длинные хромосомы. При кодировании отрицательных чисел необходим еще один ген, определяющий знак числа. Но обычно прибегают к следующей нормировке переменной x=[a, b]: x(n)=x-a. Нормированная область: [0, (b-a)]. • Если потребуется точность q. То понадобиться разбить промежуток [a, b] на (b-a)10 q одинаковых подинтервалов. Это означает применение дискретизации с шагом r =10 -q. Наименьшее натуральное число m, удовлетворяющее неравенству (b – a)10 q ≤ 2 m -1 определяет длину двоичного кода.

Продолжение Каждой такой двоичной последовательности соответствует десятичное значение числа. Пусть у обозначает десятичное значение Продолжение Каждой такой двоичной последовательности соответствует десятичное значение числа. Пусть у обозначает десятичное значение сдвига двоичной последовательности, кодирующей число х, тогда выражение для кодирования имеет вид: • • Пример кодирования и декодирования [-5; 10] с точностью q=0. Разобьем промежуток на (10 + 5)100=15 подыинтервалов. Шаг дискретизации r=1. Получим m=4 – длина двоичной последовательности.

Кодирование Оптимизация функции по одной переменной Оптимизация функции по n переменным, фенотип будет представлен Кодирование Оптимизация функции по одной переменной Оптимизация функции по n переменным, фенотип будет представлен последовательностью чисел. Процедура нормирования в этом случае выполняется для каждой переменной. Двоичный код обладает недостатком – из-за неодинакового веса битов строки. Особенно этот недостаток проявляется при мутации. Лучше использовать код Грея.

Код Грея № 0 1 2 3 4 5 6 7 8 Двоич. код Код Грея № 0 1 2 3 4 5 6 7 8 Двоич. код 0000 0001 0010 0011 0100 0101 0110 0111 1000 Грея 0000 0001 0010 0111 0100 1100

Код Грея № 9 10 11 12 13 14 15 Двоич. код 1001 1010 Код Грея № 9 10 11 12 13 14 15 Двоич. код 1001 1010 1011 1100 1101 1110 1111 Грея 1101 1110 1011 1000

Код Грея Нечетные единицы (слева-направо) имеют положительный вес, а все четные единицы отрицательный Здесь Код Грея Нечетные единицы (слева-направо) имеют положительный вес, а все четные единицы отрицательный Здесь ai –код Грея, A – двоичный код 9 1001 д 1101 г 9

Код Грея • Переход из кода Грея в двоичный код 1101 г 1001 д Код Грея • Переход из кода Грея в двоичный код 1101 г 1001 д 9

Представление графов хромосомами • Кодирование фенотипов в виде графов представляется в виде матриц смежности Представление графов хромосомами • Кодирование фенотипов в виде графов представляется в виде матриц смежности или инциденций. 1 Матрица смежности 1 1 2 3 4 5 0 1 0 1 0 1 0 0 0 2 4 3 5 Каждою строку такой матрицы можно рассматривать как хромосому генотипа кодируемой особи

Пример • Пусть инвестор имеет 4 проекта, каждый из которых может быть внедрен на Пример • Пусть инвестор имеет 4 проекта, каждый из которых может быть внедрен на одном из 4 предприятий. Распределение прибыли показано в таблице. Необходимо назначить по одному проекту на каждое предприятие так, чтобы получить максимальную суммарную прибыль инвестора. Число вариантов размещения проектов n!, 4!=24 1 2 3 4 1 100 150 90 200 2 200 100 70 150 3 250 80 100 4 190 100 120 200 70

Формальная постановка задачи (А) Формальная постановка задачи (А)

Таблица 1 2 3 4 1 1 0 0 0 2 0 0 1 Таблица 1 2 3 4 1 1 0 0 0 2 0 0 1 0 3 0 1 0 0 4 0 0 0 1 Матрицу можно рассматривать как генотип, состоящий из 4 хромосом. Так же можно представить многие задачи оптимизации: транспортные задачи, задачи о размещении, расписания, назначения и др.

Выбор начальной популяции • Выбор объема начальной популяции сегодня основывается на эмпирических или эвристических Выбор начальной популяции • Выбор объема начальной популяции сегодня основывается на эмпирических или эвристических соображениях. Основной способ – случайный выбор. Оператор кроссовер Это скрещивание хромосом двух особей X 1 и X 2, В классическом генетическом алгоритме обычно используются точечные кроссоверы. Простейший – это одноточечный кроссовер.

Двухточечный кроссовер X 1 10101 10010 X 2 00011 01111 10101 01111 X 12 Двухточечный кроссовер X 1 10101 10010 X 2 00011 01111 10101 01111 X 12 Родительские хромосомы Потомок

Трехточечный кроссовер 1010 1100 1000 0001 1011 1111 0111 1010 1011 1000 0111 Родительские Трехточечный кроссовер 1010 1100 1000 0001 1011 1111 0111 1010 1011 1000 0111 Родительские хромосомы Потомок

В задачах о назначениях применяют матричный генотип Отцовский генотип 1 0 0 0 0 В задачах о назначениях применяют матричный генотип Отцовский генотип 1 0 0 0 0 1 0 Материнский генотип 0 0 1 0 0 0 1 0 0 0 1 0 0 Так как потомок должен удовлетворять ограничениям А, то в каждой хромосоме потомка должен присутствовать только один ненулевой ген.

ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА

Поставка задачи Коммивояжер должен выйти из первого города, посетить по разу в неизвестном порядке Поставка задачи Коммивояжер должен выйти из первого города, посетить по разу в неизвестном порядке города 2, 1, 3. . n и вернуться в первый город. Расстояния между городами известны. В каком порядке следует обходить города, чтобы замкнутый путь коммивояжера был кратчайшим?

Структурная схема генетического алгоритма Формирование начальной популяции Селекция особей для скрещивания Воспроизводство потомства Мутация Структурная схема генетического алгоритма Формирование начальной популяции Селекция особей для скрещивания Воспроизводство потомства Мутация популяции Условие остановки выполняются Выбор наилучшей особи Естественный отбор

Метод самого дешевого включения (стохастический вариант) Чем меньше вес вставки, тем выше вероятность включения Метод самого дешевого включения (стохастический вариант) Чем меньше вес вставки, тем выше вероятность включения города в существующий маршрут, вес вставки – это сумма расстояний от предыдущего города из обхода до включаемого и от включаемого до следующего.

Реализация методов решения задачи коммивояжера В данной работе было реализовано два метода: • Метод Реализация методов решения задачи коммивояжера В данной работе было реализовано два метода: • Метод самого дешевого включения; • Генетический алгоритм. Наименование метода Вероятность правильного ответа Ср. время решения (с) Ср. длина пути (у. е. ) Жадный алгоритм 0, 25 <1 3842, 378 Генетический алгоритм 0, 82 11, 058 3508, 938

Тестовая программа Результат работы генетического алгоритма Тестовая программа Результат работы генетического алгоритма

Результат работы генетического алгоритма Результат работы генетического алгоритма

Спасибо! Спасибо!

 Thank you Thank you