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

Содержание

Слайд 2

Возникли ГА в результате попыток копирования естественных процессов, происходящих в мире

Возникли ГА в результате попыток копирования естественных процессов, происходящих в мире

живых организмов. Идею построения таких алгоритмов предложил в 1975 году Дж. Холланд в Мичиганском университете. В теории ГА за основу принят ряд принципов, существующих в природе, и упрощенных их до такой степени, чтобы их можно было реализовать на компьютере.
Конечной целью применения ГА в различных областях деятельности является решение задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров.
В отличие от других оптимизационных процедур поиск лучшего варианта осуществляется не путем улучшения одного решения, а путем использования сразу нескольких альтернатив на некотором множестве решений
Слайд 3

Генети́ческий алгори́тм (англ. genetic algorithm) — это эвристический алгоритм поиска, применяемый

Генети́ческий алгори́тм (англ. genetic algorithm) — это эвристический алгоритм поиска,

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

В методологии ГА используется биологическая терминология в упрощенном виде Особь (индивидуум,

В методологии ГА используется биологическая терминология
в упрощенном виде
Особь (индивидуум, от

лат . individuum - неделимое) - наименее неделимая единица биологического вида, самостоятельно существующий организм; в генетических алгоритмах представляются хромосомами.
Популяция – конечное множество особей.
Хромосомы (цепочки, кодовые последовательности) – упорядоченные последовательности генов.
Ген – атомарный элемент хромосомы, материальная единица наследственности.
Генотип – набор хромосом данной особи или совокупность генов данного организма.
Фенотип — совокупность внешних и внутренних признаков организма, приобретённых в результате индивидуального развития, и показывающих чем объект является в реальном мире; в теории ГА фенотип означает множество параметров решения задачи или декодированная структура.
Аллель – значение конкретного гена или значение свойства; альтернативная форма структурного состояния гена, от которой зависит проявление наследственного признака.
Слайд 5

Локус – позиция, указывающая место размещения данного гена в хромосоме (цепочке).

Локус – позиция, указывающая место размещения данного гена в хромосоме (цепочке).
Функция

приспособленности (fitness function) – представляет меру приспособленности данной особи в популяции. В ГА часто называется целевой функцией.
Скрещивание (кроссовер, кроссинговер) – операция передачи потомкам признаков родителей, при которой хромосомы особей обмениваются своими частями. Очередная популяция потомков в ГА называется поколением.
Процесс скрещивания в ГА заключается в создании такого нового поколения, чтобы пробные решения в новой популяции были бы ближе к глобальному минимуму целевой функции.
Мутация – процедура эволюции нового поколения; случайное изменение одного или нескольких генов в хромосоме так, чтобы обеспечить лучшую приспособленность к внешней среде.
Слайд 6

ЭТАПЫ ГЕНЕТИЧЕСКОГО АЛГОРИТМА Создание начальной популяции Вычисление функций приспособленности для особей

ЭТАПЫ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

Создание начальной популяции
Вычисление функций приспособленности для особей популяции (оценивание)

Начало цикла:
Выбор индивидов из текущей популяции (селекция)
Скрещивание и мутация
Вычисление функций приспособленности для всех особей
Формирование нового поколения
Если выполняются поставленные критерии, то
Конец цикла
иначе Начало цикла.
Слайд 7

Модель «эволюционного процесса»

Модель «эволюционного процесса»

Слайд 8

ПРИНЦИП РАБОТЫ ГА Задача кодируется таким образом, чтобы её решение могло

ПРИНЦИП РАБОТЫ ГА
Задача кодируется таким образом, чтобы её решение могло быть


представлено в виде вектора («хромосома»). Случайным образом создаётся
некоторое количество начальных векторов («начальная популяция»). Они
оцениваются с использованием «функции приспособленности», в результате чего
каждому вектору присваивается определённое значение («приспособленность»),
которое определяет вероятность выживания организма, представленного данным
вектором. После этого с использованием полученных значений
приспособленности выбираются вектора (селекция), допущенные к
«скрещиванию». К этим векторам применяются «генетические операторы» (в
большинстве случаев «скрещивание» - crossover и «мутация» - mutation),
создавая таким образом следующее «поколение». Особи следующего поколения
также оцениваются, затем производится селекция, применяются генетические
операторы и т. д. Так моделируется «эволюционный процесс», продолжающийся
несколько жизненных циклов (поколений), пока не будет выполнен критерий
остановки алгоритма.
Таким критерием может быть:
нахождение глобального, либо субоптимального решения;
исчерпание числа поколений, отпущенных на эволюцию;
исчерпание времени, отпущенного на эволюцию.
Слайд 9

Простой генетический алгоритм

Простой генетический алгоритм

Слайд 10

Вектора переменных в ГА записываются в виде цепочек символов, используя, как

Вектора переменных в ГА записываются в виде цепочек символов, используя, как

правило, бинарное кодирование. Хромосома (особь) представляется состоящей из фиксированного количества генов. Аллели в локусах хромосомы могут принимать значения 0 или 1, т.е. хромосомы представляются двоичными последовательностями фиксированной длины. Примером закодированной хромосомы длины девять может служить хромосома 001001101. Случайным образом создаётся некоторое количество начальных хромосом.
Хромосомы оцениваются с использованием «функции приспособленности», в результате чего каждой хромосоме присваивается определённое значение («приспособленность»), которое определяет вероятность выживания организма, представленного данной хромосомой в популяции. Чем больше значение этой функции, тем выше «качество» хромосомы. Отобранные по значению функции приспособленности хромосомы образуют начальную популяцию.
Слайд 11

Доля производимых на каждой итерации отпрысков называется коэффициентом скрещивания. Произведение коэффициента

Доля производимых на каждой итерации отпрысков называется коэффициентом скрещивания. Произведение коэффициента

скрещивания на размер популяции показывает количество отпрысков. Большое значение этого коэффициента позволяет исследовать больше областей пространства поиска (или пространства решений) и уменьшает шанс попадания в локальный минимум. Но если значение слишком велико, то это приведет к большим затратам времени вычислений на исследование бесперспективных областей.

ОСНОВНЫЕ ОПЕРАЦИИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
Операция скрещивания. Скрещивание является главной генетической операцией.
Эта операция выполняется над двумя хромосомами- родителями и создает отпрыск
путем комбинирования особенностей обоих родителей.
В начале выберем некоторую случайную точку p (точка скрещивания - англ. Cut-point), после этого создадим хромосому-отпрыск путем комбинирования сегмента первого родителя, стоящего слева от выбранной точки скрещивания, с сегментом второго родителя, стоящего по правую сторону от точки скрещивания, как это показано на рисунке.
p

Слайд 12

СХЕМА ОПЕРАЦИИ СКРЕЩИВАНИЯ

СХЕМА ОПЕРАЦИИ СКРЕЩИВАНИЯ

Слайд 13

популяция

популяция

Слайд 14

Операция мутации. Мутация - это фоновая операция, производящая случайное изменение в

Операция мутации. Мутация - это фоновая операция, производящая
случайное изменение

в различных хромосомах. Наипростейший вариант мутации
состоит в случайном изменении одного или более генов. В ГА мутация играет
важную роль для:
а) восстановления генов, выпавших из популяции в ходе операции
выбора, так что они могут быть опробованы в новых комбинациях,
б) формирования генов, которые не были представлены в исходной
популяции.
Интенсивность мутаций определяется коэффициентом мутаций. Он представляет
собой долю генов, подвергающихся мутации на данной итерации, в расчете на их
общее число. Слишком малое значение этого коэффициента приводит к тому, что
многие гены, которые могли бы быть полезными, никогда не будут рассмотрены.
В то же время слишком большое значение коэффициента приведет к большим
случайным возмущениям. Отпрыски перестанут быть похожими на родителей и
алгоритм потеряет возможность обучаться, сохраняя наследственные признаки .
Стратегии поиска. Поиск является одним из наиболее универсальных
методов нахождения решения для случаев, когда априори не известна
последовательность шагов, ведущая к оптимуму. Существуют две поисковые
стратегии: эксплуатация наилучшего решения и исследование пространства
решений. Градиентный метод является примером стратегии, которая выбирает
наилучшее решение для возможного улучшения, игнорируя в то же время
исследование всего пространства поиска.
Слайд 15

Случайный поиск является примером стратегии, которая, наоборот, исследует пространство решений, игнорируя

Случайный поиск является примером стратегии, которая, наоборот, исследует
пространство решений,

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

ПРЕИМУЩЕСТВА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ Существуют два главных преимущества генетических алгоритмов перед классическими

ПРЕИМУЩЕСТВА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
Существуют два главных преимущества генетических алгоритмов перед
классическими оптимизационными

методиками:
1. ГА не имеет значительных математических требований к видам целевых
функций и ограничений. Исследователь не должен упрощать модель объекта,
теряя ее адекватность, и искусственно добиваясь возможности применения
доступных математических методов. При этом могут использоваться самые
разнообразные целевые функции и виды ограничений (линейные и
нелинейные), определенные на дискретных, непрерывных и смешанных
универсальных множествах.
2. При использовании классических пошаговых методик глобальный оптимум
может быть найден только в том случае, когда проблема обладает свойством
выпуклости.
В тоже время эволюционные операции генетических алгоритмов позволяют эффективно отыскивать глобальный оптимум.
Слайд 17

Пример ГА: Решение Диофантова уравнения Рассмотрим диофантово (только целочисленные решения) уравнение:

Пример ГА: Решение Диофантова уравнения

Рассмотрим диофантово (только целочисленные решения) уравнение:
a+2b+3c+4d=30,

где a, b, c и d – некоторые положительные целые.
Применение ГА за очень короткое время находит искомое решение (a, b, c, d).
Для начала выберем 5 случайных решений: 1 =< a,b,c,d =< 30

Чтобы вычислить коэффициенты приспособленности (fitness), подставим каждое
решение в выражение a+2b+3c+4d. Расстояние от полученного значения до 30
и будет нужным значением.

Таблица 1: 1-е поколение хромосом и их содержимое

Слайд 18

Таблица 2: Коэффициенты выживаемости первого поколения хромосом Так как меньшие значения

Таблица 2: Коэффициенты выживаемости первого поколения хромосом

Так как меньшие значения ближе

к 30, то они более желательны (приспособленность).
В нашем случае большие численные значения коэффициентов приспособленности
подходят, увы, меньше.
Чтобы создать систему, где хромосомы с более подходящими значениями имеют
большие шансы оказаться родителями, мы должны вычислить, с какой вероятностью
(в %) может быть выбрана каждая. Одно решение заключается в том, чтобы взять
сумму обратных значений коэффициентов, и исходя из этого вычислять проценты.
Слайд 19

Таблица 3: Вероятность оказаться родителем Для выбора 5-и пар родителей (каждая

Таблица 3: Вероятность оказаться родителем

Для выбора 5-и пар родителей (каждая из которых

будет иметь 1 потомка,
всего - 5 новых решений), представим, что у нас есть 10000-гранная игральная
кость, на 880 сторонах отмечена хромосома 1, на 3080 - хромосома 2, на 2840
сторонах - хромосома 3, на 556 - хромосома 4 и на 2640 сторонах отмечена
хромосома 5. Чтобы выбрать первую пару кидаем кость два раза и выбираем
выпавшие хромосомы. Таким же образом выбирая остальных, получаем:
Слайд 20

Таблица 4: Симуляция выбора родителей Каждый потомок содержит информацию о генах

Таблица 4: Симуляция выбора родителей

Каждый потомок содержит информацию о генах и отца

и от матери. Вообще говоря,
это можно обеспечить различными способами, однако в нашем случае можно
использовать т.н. "кроссовер" (cross-over). Пусть отец содержит следующий набор
решений: a1,b1,c1,d1, а мать- a2,b2,c2,d2, тогда возможно 6 различных кроссоверов
(| = разделительная линия):

Таблица 5: Кроссоверы между родителями

Слайд 21

Таблица 6: Симуляция кросс-оверов хромосом родителей Таблица 7: Коэффициенты выживаемости потомков (fitness)

Таблица 6: Симуляция кросс-оверов хромосом родителей

Таблица 7: Коэффициенты выживаемости потомков (fitness)

Слайд 22

Средняя приспособленность (fitness) потомков оказалась 38.8, в то время как у

Средняя приспособленность (fitness) потомков оказалась 38.8, в то время как


у родителей этот коэффициент равнялся 59.4. Следующее поколение может
мутировать. Например, мы можем заменить одно из значений какой-нибудь
хромосомы на случайное целое от 1 до 30.
Продолжая таким образом, одна хромосома в конце концов достигнет
коэффициента выживаемости 0, то есть станет решением.
Слайд 23

ПРИМЕНЕНИЕ ГА Генетические алгоритмы применяются при разработке программного обеспечения, в системах

ПРИМЕНЕНИЕ ГА

Генетические алгоритмы применяются при разработке программного обеспечения, в системах искусственного

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

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

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

мехатронно-модульных роботов
Совершено самостоятельный аспект исследований, которые активно проводятся
в рамках этой очень широкой тематики, связан с попытками применения
генетических алгоритмов для решения задач по автоматическому формированию
программ, выполняющих требуемые функции. Подобные задачи приобретают
особую актуальность в контексте проблем разработки принципиально
нового класса технических систем, обладающих способностями к
самоорганизации и самообучению. Одним из примеров систем такого рода
являются многозвенные реконфигурируемые мехатронно-модульные роботы,
техническая реализуемость которых подтверждается результатами ряда
известных проектов. Так, в лабораторных испытаниях конкретных образцов
реконфигурируемых мехатронно-модульных роботов различных типов, включая
Poly Bot (PARK, USA), Polypod (Stanford University, USA), MTRAN (AIST, Japan) и
др., неоднократно демонстрировалась возможность изменения кинематической
структуры за счет автоматической перестыковки ее фрагментов.
Слайд 25

PolyBot (PARK, Xerox, USA)

PolyBot (PARK, Xerox, USA)

Слайд 26

Многозвенные реконфигурируемые мехатронно-модульные роботы в зависимости от условий своего функционирования и

Многозвенные реконфигурируемые мехатронно-модульные роботы в
зависимости от условий своего функционирования и

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

Формирование программы управления мехатронно-модульного робота в конфигурации шагающего устройства предполагает необходимость

Формирование программы управления мехатронно-модульного робота в
конфигурации шагающего устройства предполагает необходимость

построения
целесообразной последовательности циклических изменений состояния
конечностей, обеспечивающей тот или иной вид походки. При этом изменение
состояния конечностей соответствует выполнению элементарных движений из
следующего набора:
• поднять конечность;
• опустить конечность;
• повернуть конечность вперед (+15°);
• повернуть конечность в нейтральное положение (0°);
• повернуть конечность назад (—15°).
Будем считать, что реализация оговоренных движений определяется радом
допущений:
• прямоугольная система координат робота связана с его узловым модулем;
• точки крепления конечностей к узловому модулю совпадают с осями системы
координат робота;
• движение каждой конечности в вертикальной, плоскости осуществляется поворотами шарниров первого и второго модулей (в порядке следования от узлового)
• движение каждой конечности в горизонтальной плоскости осуществляется поворотом шарнира, первого модуля (по отношению к узловому)
Слайд 28

• Структура хромосомы, отвечающей этим требованиям, разбивается на несколько фрагментов, каждый

• Структура хромосомы, отвечающей этим требованиям, разбивается на
несколько фрагментов, каждый

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

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

Слайд 29

Следовательно, исходя из предположения, что движение робота при моделировании начинается в

Следовательно, исходя из предположения, что движение робота при
моделировании начинается в

точке с нулевыми координатами, функция оценки
полезности хромосом может быть записана в следующем виде:

f = x2+y2

где х, у — координаты положения робота после отработки одного цикла
синтезированного алгоритма управления движением.

Слайд 30

Машинная реализация процесса эволюции особей, которые представляются в виде хромосом с

Машинная реализация процесса эволюции особей, которые представляются в
виде хромосом с

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

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

Слайд 31

Как известно, формирование новой популяции особей в процессе их эволюции осуществляется

Как известно, формирование новой популяции особей в процессе их эволюции
осуществляется

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

Слайд 33

В ходе выполнения экспериментальных исследований селекция синтезируемых хромосом осуществлялась по методу

В ходе выполнения экспериментальных исследований селекция синтезируемых хромосом осуществлялась по методу

элитного отбора. Для эмуляции движений робота, отвечающих кодам полученных хромосом, использовался специализированный комплекс программно- инструментальных средств моделирования виртуальной реальности ODE (Open Dynamic Engine). При этом продолжительность "жизни" каждой особи ограничивалась 40 тактами, где под тактом понимается период выполнения команд одной подхромосомы.
Для полноты исследований был проведен сравнительный анализ программ управления роботом, одна из которых была синтезирована высококвалифицированным экспертом, а остальные формировались в автоматическом режиме с помощью генетического алгоритма. Составленная экспертом программа на алгоритмическом уровне рассмотрения представляла собой последовательность элементарных движений конечностей, регулярное повторение которой должно обеспечивать реализацию соответствующей походки робота.
Слайд 34

Слайд 35

Анализ экспериментальных данных показывает, что в смысле полезности полученных хромосом автоматически

Анализ экспериментальных данных показывает, что в смысле полезности
полученных хромосом автоматически

формируемые с помощью генетического
алгоритма решения в ряде отдельных случаев оказываются намного более
эффективными, чем синтезируемые экспертом. При этом следует отметить, что
если поиск приемлемых решений по формированию программ управления
походкой шагающего робота в автоматическом режиме по времени занимает от
10 до 30 минут, то для эксперта решение аналогичной задачи требует от 1,5 до 3
суток.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ГА
К настоящему времени созданы многочисленные пакеты программного обеспечения по ГА. Одним из таких приложений является программный комплекс GeneHunter, разработанный российской компанией "НейроПроект", и программный пакет Auto2Fit от CPC-X Software. К пакетам, получившим широкое применение относятся Genesis, Evolution Machine, Genitor, Neuro-Genetic Optimizer, MATLAB Genetic Algorithm Toolbox и др.
Слайд 36

АППАРАТНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ Идея применения генетических алгоритмов в системах автоматизированного

АППАРАТНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
Идея применения генетических алгоритмов в системах автоматизированного
проектирования

активно развивается наряду с другими направлениями. Впервые
эта идея была предложена С. Луисом [Louis et al., 1991] и Д. Раулинсом [Rawlins
et al., 1993] в 1991 году и экспериментально проверена в области цифровых схем.
В дальнейшем, предложенные методы были развиты и доработаны, и получили
применение во многих автоматизированных системах проектирования
аппаратуры. Использование генетических алгоритмов (ГА) [Курейчик 2004 и др.]
как механизма для автоматического проектирования схем на реконфигурируемых
платформах [Blondet et al., 2003], получило название эволюционные аппаратные
средства (Evolvable Hardware) [Higuchi et al., 1993], [Sakanashi et al., 1999],
которое также используется синонимом для несколько общего направления,
известного как эволюционная электроника (Evolutionary Electronics) [Zebulumetal., 2002].
Для автономных решений и задач, связанных с построением эволюционных
аппаратных средств, программная реализация ГА является неприемлемой по
целому ряду критериев. Сам факт автономности исключает наличие возможности
использования программных решений, выполняемых на ПК или кластерным
методом. С другой стороны, автономные системы, как правило, функционируют
в режиме реального времени, что накладывает ряд требований на временные
характеристики используемых алгоритмов, в связи с чем, вопрос использования
программных моделей перестает быть актуальным.