Генетические алгоритмы. 2
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования
«Брестский государственный университет
имени А. С. Пушкина»
Математический факультет
Кафедра информатики и прикладной математики
Курсовая работа
Генетические алгоритмы
Гелис Илья Александрович
студент 3 курса специальности «Математика.
Информатика»
Крощенко Александр
Брест 2012
Оглавление
Оглавление 2
Введение 3
Общие сведения 3
Актуальность 3
Обьект исследования 4
Предмет исследования 4
Цель работы 4
Задачи работы 5
Основная часть 5
1. История эволюционных вычислений 5
2. Естественный отбор в природе 5
Cредства Windows 71333. Основные понятия генетических алгоритмов 6
4. Общий вид генетического алгоритма 8
5. Пример 14
заключение 18
CПиСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19
Введение
Общие сведения
Природа всегда поражала человека
своим совершенством и
Теория эволюции, впервые представленная Чарльзом Дарвином в работе «Происхождение видов путём естественного отбора», оказала огромное влияние на мировоззрения людей. Несмотря на то, что работа содержала ряд ошибочных положений, в ней был выявлен главный механизм развития: отбор в сочетании с изменчивостью. Во многих случаях специфические особенности развития через изменчивость и отбор все еще не бесспорны, однако основные механизмы объясняют невероятно широкий спектр явлений, наблюдаемых в Природе.
Весьма перспективным оказалось применение теории эволюции в различных областях науки: математике, механике, физике, компьютерных науках. Алгоритмы, базирующиеся на использовании механизмов эволюции для решения разного рода задач, получили название генетических алгоритмов.
Актуальность
На сегодняшний день генетические алгоритмы доказали свою конкурентоспособность при решении многих NP-трудных задач и особенно в практических приложениях, где математические модели имеют сложную структуру и применение стандартных методов типа ветвей и границ, динамического или линейного программирования крайне затруднено. Они позволяют решать задачи прогнозирования, классификации, поиска оптимальных вариантов, и совершенно незаменимы в тех случаях, когда в обычных условиях решение задачи основано на интуиции или опыте, а не на строгом (в математическом смысле) ее описании. Поэтому, зачастую генетические алгоритмы более предпочтительные, чем классические.
Объектом исследования данной курсовой работы являются генетические алгоритмы.
Предмет исследования – применение генетических алгоритмов для нахождения решения оптимизационной задачи.
Цель работы – это обзор темы «Генетические алгоритмы».
Задачи работы:
- Познакомиться с основными понятиями генетических алгоритмов
- Рассмотреть общий вид генетического алгоритма
- Рассмотреть генетические операторы
- Рассмотреть применение генетического алгоритма на примере задачи нахождения максимума функции
ОСНОВНАЯ ЧАСТЬ
- История эволюционных вычислений
История эволюционных вычислений началась с разработки ряда различных независимых моделей. Основными стали генетические алгоритмы и классификационные системы Холланда, опубликованные в начале 60-х годов и получившие всеобщее признание после выхода в свет книги "Адаптация в естественных и искусственных системах", ставшей классикой в этой области. В 70-х годах в рамках теории случайного поиска Растригиным Л.А. был предложен ряд алгоритмов, использующих идей бионического поведения особей. Развитие этих идей нашло отражение в цикле работ Букатовой И.Л. по эволюционному моделированию. Развивая идеи Цетлина М.Л. о целесообразном и оптимальном поведении стохастических автоматов, Неймарк Ю.И. предложил осуществлять поиск глобального экстремума на основе коллектива независимых автоматов, моделирующих процессы развития и элиминации особей. Большой вклад в развитие эволюционного программирования внесли Фогел и Уолш. Несмотря на разницу в подходах, каждая из этих "школ" взяла за основу ряд принципов, существующих в природе, и упростила их до такой степени, чтобы их можно было реализовать на компьютере. [3]
2. Естественный отбор в природе
Эволюционная теория утверждает, что каждый биологический вид целенаправленно развивается и изменяется для того, чтобы наилучшим образом приспособиться к окружающей среде. В процессе эволюции многие виды насекомых и рыб приобрели защитную окраску, еж стал неуязвимым благодаря иглам, человек стал обладателем сложнейшей нервной системы. Можно сказать, что эволюция - это процесс оптимизации всех живых организмов. Рассмотрим, какими же средствами природа решает эту задачу оптимизации.
Основной механизм эволюции - это естественный отбор. Его суть состоит в том, что более приспособленные особи имеют больше возможностей для выживания(в природе выживание является определяющей и основной функцией.) и размножения и, следовательно, приносят больше потомства, чем плохо приспособленные особи. При этом благодаря передаче генетической информации (генетическому наследованию) потомки наследуют от родителей основные их качества. Таким образом, потомки сильных индивидуумов также будут относительно хорошо приспособленными, а их доля в общей массе особей будет возрастать. После смены нескольких десятков или сотен поколений средняя приспособленность особей данного вида заметно возрастает.
Чтобы сделать понятными принципы работы генетических алгоритмов, поясним также, как устроены механизмы генетического наследования в природе. В каждой клетке любого животного содержится вся генетическая информация этой особи. Эта информация записана в виде набора очень длинных молекул ДНК (Дезоксирибонуклеиновая Кислота). Каждая молекула ДНК - это цепочка, состоящая из молекул нуклеотидов четырех типов, обозначаемых А, T, C и G. Собственно, информацию несет порядок следования нуклеотидов в ДНК. Таким образом, генетический код индивидуума - это просто очень длинная строка символов, где используются всего 4 буквы. В животной клетке каждая молекула ДНК окружена оболочкой - такое образование называется хромосомой.
Каждое врожденное качество особи (цвет глаз, наследственные болезни, тип волос и т.д.) кодируется определенной частью хромосомы, которая называется геном этого свойства. Например, ген цвета глаз содержит информацию, кодирующую определенный цвет глаз. Различные значения гена называются его аллелями.
При размножении животных происходит слияние двух родительских половых клеток и их ДНК взаимодействуют, образуя ДНК потомка. Основной способ взаимодействия - кроссовер (cross-over, скрещивание). При кроссовере ДНК предков делятся на две части, а затем обмениваются своими половинками.
При наследовании возможны мутации из-за радиоактивности или других влияний, в результате которых могут измениться некоторые гены в половых клетках одного из родителей. Измененные гены передаются потомку и придают ему новые свойства. Если эти новые свойства полезны, они, скорее всего, сохранятся в данном виде - при этом произойдет скачкообразное повышение приспособленности вида. [4]
3. Основные понятия генетических алгоритмов.
При описании генетических алгоритмов используются определения, заимствованные из генетики. Например, речь идет о популяции особей, а в качестве базовых понятий применяются ген, хромосома, генотип, фенотип, аллель. Также используются соответствующие этим терминам определения из технического лексикона, в частности, цепь, двоичная последовательность, структура.
Популяция - это конечное множество особей.
Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами с закодированным в них множествами параметров задачи, т.е. решений, которые иначе называются точками в пространстве поиска (search points). В некоторых работах особи называются организмами.
Хромосомы (другие названия - цепочки или кодовые последовательности) - это упорядоченные последовательности генов.
Ген (также называемый свойством, знаком или детектором) - это атомарный элемент генотипа, в частности, хромосомы.
Генотип или структура - это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы либо единичные хромосомы (в довольно распространенном случае, когда генотип состоит из одной хромосомы).
Фенотип - это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска).
Аллель - это значение конкретного гена, также определяемое как значение свойства или вариант свойства.
Локус или позиция указывает место размещения данного гена в хромосоме (цепочке). Множество позиций генов - это локи.
Очень важным понятием в генетических алгоритмах считается функция приспособленности (fitness function), иначе называемая функцией оценки. Она представляет меру приспособленности данной особи в популяции. Эта функция играет важнейшую роль, поскольку позволяет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т.е. имеющие наибольшие значения функции приспособленности) в соответствии с эволюционным принципом выживания «сильнейших» (лучше всего приспособившихся). Функция приспособленности также получила свое название непосредственно из генетики. Она оказывает сильное влияние на функционирование генетических алгоритмов и должна иметь точное и корректное определение. В задачах оптимизации функция приспособленности, как правило, оптимизируется (точнее говоря, максимизируется) и называется целевой функцией. В задачах минимизации целевая функция преобразуется, и проблема сводится к максимизации. В теории управления функция приспособленности может принимать вид функции погрешности, а в теории игр - стоимостной функции. На каждой итерации генетического алгоритма приспособленность каждой особи данной популяции оценивается при помощи функции приспособленности, и на этой основе создается следующая популяция особей, составляющих множество потенциальных решений проблемы, например, задачи оптимизации.
Очередная популяция в генетическом алгоритме называется поколением, а к вновь создаваемой популяции особей применяется термин “новое поколение” или “поколение потомков”. [7]
4. Общий вид генетического алгоритма
Основной (классический) генетический алгоритм (также называемый элементарным или простым генетическим алгоритмом) состоит из следующих шагов:
1) Инициализация, или выбор исходной популяции хромосом;
2) Оценка приспособленности хромосом в популяции;
3) Проверка условия остановки алгоритма;
4) Селекция хромосом;
5) Применение генетических операторов;
6) Формирование новой популяции;
7) Выбор “наилучшей” хромосомы.
Блок-схема основного генетического алгоритма изображена на следующем рисунке.
Рис. 1. - Блок-схема генетического алгоритма.
Инициализация, т.е. формирование исходной популяции, заключается в случайном выборе заданного количества хромосом (особей), представляемых двоичными последовательностями фиксированной длины.
Оценивание приспособленности х
Проверка условия остановки алгоритма. Определение условия остановки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если известно максимальное (или минимальное) значение функции приспособленности, то остановка алгоритма может произойти после достижения ожидаемого оптимального значения, возможно - с заданной точностью. Остановка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определенного времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к завершающему этапу выбора «наилучшей» хромосомы. В противном случае на следующем шаге выполняется селекция.
Селекция хромосом заключается в выборе (по рассчитанным на втором этапе значениям функции приспособленности) тех хромосом, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наибольшими значениями функции приспособленности. Существуют различные методы селекции. Наиболее популярным считается так называемый метод рулетки (roulette wheel selection), который свое название получил по аналогии с известной азартной игрой. Каждой хромосоме может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки. Все колесо рулетки соответствует сумме значений функции приспособленности всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой chi для i =1,2, ..., N (где N обозначает численность популяции) соответствует сектор колеса v(chi), выраженный в процентах согласно формуле:
Где,
причем F(chi) - значение функции приспособленности хромосомы chi, a ps(chi) -вероятность селекции хромосомы chi. Селекция хромосомы может быть представлена как результат поворота колеса рулетки, поскольку “выигравшая” (т.е. выбранная) хромосома относится к выпавшему сектору этого колеса. Очевидно, что чем больше сектор, тем больше вероятность “победы” соответствующей хромосомы. Поэтому вероятность выбора данной хромосомы оказывается пропорциональной значению ее функции приспособленности. Если всю окружность колеса рулетки представить в виде цифрового интервала [0, 100], то выбор хромосомы можно отождествить с выбором числа из интервала [а, b], где а и b обозначают соответственно начало и окончание фрагмента окружности, соответствующего этому сектору колеса; очевидно, что 0 ≤ а < b ≤ 100. В этом случае выбор с помощью колеса рулетки сводится к выбору числа из интервала [0, 100], которое соответствует конкретной точке на окружности колеса [1, с. 130].
При турнирной селекции формируется случайное подмножество из элементов популяции и среди них выбирается один элемент с наибольшим значением целевой функции. Турнирный отбор реализует n турниров, чтобы выбрать n особей. Каждый турнир построен на выборке k элементов из популяции, и выбора лучшей особи среди них. Наиболее распространен турнирный отбор с k=2.
Турнирная селекция имеет определенные преимущества перед методом рулетки, так как не теряет своей избирательности, когда в ходе эволюции все элементы популяции становятся примерно равными по значению целевой функции. Пропорциональный отбор не гарантирует сохранности лучших результатов, достигнутых в какой-либо популяции, и для преодоления такого явления используется элитный отбор - несколько лучших индивидуумов переходят в следующее поколение без изменений, не участвуя в кроссинговерe и отборе.
Операторы селекции строятся таким образом, чтобы с ненулевой вероятностью любой элемент популяции мог бы быть выбран в качестве одного из родителей. Более того, допускается ситуация, когда оба родителя представлены одним и тем же элементом популяции.
В любом
случае каждое следующее поколение
будет в среднем лучше
Отбор в генетическом алгоритме тесно связан с принципами естественного отбора в природе следующим образом:
Таблица
Приспособленность индивидуума |
Значение целевой функции на этом индивидууме. |
Выживание наиболее приспособленных |
Популяция следующего поколения формируется в соответствии с целевой функцией. Чем приспособленнее индивидуум, тем больше вероятность его участия в кроссовере, т.е. размножении. |
В результате процесса селекции создается родительская популяция, также называемая родительским пулом (mating pool) с численностью N, равной численности текущей популяции.
Применение генетических операторов к хромосомам, отобранным с помощью селекции, приводит к формированию новой популяции потомков от созданной на предыдущем шаге родительской популяции.
Скрещивание. Служит для создания следующей популяции на основе промежуточной при помощи операторов кроссинговера и мутации, которые имеют случайный характер. Каждому элементу промежуточной популяции, если надо подбирается партнёр и вновь созданная хромосома помещается в новую популяцию.
Оператор кроссинговера (в литературе по генетическим алгоритмам также употребляется название кроссовер или скрещивание) - операция, при которой две хромосомы обмениваются своими частями. Производит обмен генетического материала между родителями для получения потомков. Кроссинговер смешивает "генетический материал" двух родителей, причем можно ожидать, что приспособленность родителей выше средней в предыдущем поколении, так как они только что прошли очередной раунд борьбы за выживание. Это аналогично соперничеству настоящих живых существ, где лишь сильнейшим удается передать свои (предположительно хорошие) гены следующему поколению. Важно, что кроссинговер может порождать новые хромосомы, ранее не встречавшиеся в популяции. Простейший одноточечный кроссинговер (рис. 2) производит обмен частями, на которые хромосома разбивается точкой кроссинговера. Одноточечный кроссовер работает следующим образом. Сначала, случайным образом выбирается одна из l-1 точек разрыва. Точка разрыва - участок между соседними битами в строке. Обе родительские структуры разрываются на два сегмента по этой точке. Затем, соответствующие сегменты различных родителей склеиваются и получаются два генотипа потомков. Двухточечный кроссинговер обменивает кусок строки, попавшей между двумя точками. Предельным случаем является равномерный кроссинговер, в результате которого все биты хромосом обмениваются с некоторой вероятностью. Этот оператор служит для исследования новых областей пространства и улучшения существующих (приспособление).
Рис. 2. - Кроссинговер
Все типы кроссинговера обладают общим свойством: они контролируют баланс между дальнейшим использованием уже найденных хороших подобластей пространства и исследованием новых подобластей. Достигается это за счет неразрушения общих блоков внутри хромосом-родителей, сохраняющем "хорошие" паттерны, и одновременном исследовании новых областей в результате обмена частями строк (хромосом). Совместное использование отбора и кроссинговера приводит к тому, что области пространства, обладающие лучшей средней оптимальностью, содержат больше элементов популяции, чем другие. Таким образом, эволюция популяции направляется к областям, содержащим оптимум с большей вероятностью, чем другие[5].
Оператор мутации с вероятностью рт изменяет значение гена в хромосоме на любое другое возможное значение. Например, если в хромосоме [100110101010] мутации подвергается ген на позиции 7, то его значение, равное 1, изменяется на 0. что приводит к образованию хромосомы [100110001010]. Как уже упоминалось выше, вероятность мутации обычно очень мала, и именно от нее зависит, будет данный ген мутировать или нет. Вероятность рт мутации может эмулироваться, например, случайным выбором числа из интервала [0, 1] для каждого гена и отбором для выполнения этой операции тех генов, для которых разыгранное число оказывается меньшим или равным значению рт.
Рис. 3. - Мутация
Формирование новой популяции.
Хромосомы, полученные в результате применения генетических операторов к хромосомам временной родительской популяции, включаются в состав новой популяции. Она становится так называемой текущей популяцией для данной итерации генетического алгоритма. На каждой очередной итерации рассчитываются значения функции приспособленности для всех хромосом этой популяции, после чего проверяется условие остановки алгоритма и либо фиксируется результат в виде хромосомы с наибольшим значением функции приспособленности, либо осуществляется переход к следующему шагу генетического алгоритма, т.е. к селекции. В классическом генетическом алгоритме вся предшествующая популяция хромосом замещается новой популяцией потомков, имеющей ту же численность.
Выбор “наилучшей” хромосомы.
Если условие остановки
алгоритма выполнено, то следует
вывести результат работы, т.е. представить
искомое решение задачи. Лучшим решением
считается хромосома с
5. Пример
Рассмотрим очень простой пример - задачу нахождения максимума функции, заданной выражением f(х)=2х²+1 для целочисленной переменной x, принимающей значения от 0 до 31. Для применения генетического алгоритма необходимо, прежде всего, закодировать значения переменной x в виде двоичных последовательностей. Очевидно, что целые числа из интервала [0,31] можно представить последовательностями нулей и единиц, используя их представление в двоичной системе счисления. Число 0 при этом записывается как 00000, а число 31 - как 11111. В данном случае хромосомы приобретают вид двоичных последовательностей, состоящих из 5 битов, т.е. цепочками длиной 5.
Также очевидно, что в роли функции f(x) приспособленности будет выступать целевая функция, заданная выражением f(х)=2х²+1. Тогда приспособленность хромосомы chᵢ , i=1,2,…,N. будет определяться значением функции f(x) для x, равного фенотипу, соответствующему генотипу chᵢ. Обозначим эти фенотипы chᵢ*. В таком случае значение функции приспособленности хромосомы chᵢ (т.е.F(chᵢ) ) будет равно f(chᵢ*).
Выберем случайным образом исходную популяцию, состоящую из 6 кодовых последовательностей (например, можно 30 раз подбросить монету); при этом N=6. Допустим, что выбраны хромосомы
Соответствующие им фенотипы - это представленные ниже числа из интервала от 0 до 31:
Рассчитываем значения функции приспособленности для каждой хромосомы в популяции и получаем
Селекция хромосом. Методом рулетки, выбираем 6 хромосом для репродукции. Колесо рулетки представлено на рисунке
Допустим, что выбраны числа
97 26 54 13 31 88.
Это означает выбор хромосом
Ch₆ Ch₄ Ch₆ Ch₁ Ch₄ Ch₆
Пусть скрещивание выполняется с вероятностью pc=1. Допустим, что для скрещивания сформированы пары
Ch₁ и Ch₄ Ch₄ и Ch₆ Ch₆ и Ch₆
Кроме того, допустим, что
случайным образом выбрана
При условии, что вероятность мутации pm=0, в новую популяцию включаются хромосомы
Для расчета значений функции приспособленности этих хромосом необходимо декодировать представляющие их двоичные последовательности и получить соответствующие им фенотипы. Обозначим их chᵢ*. В результате декодирования получаем числа (из интервала от 0 до 31).
Соответственно, значения функции приспособленности хромосом новой популяции, рассчитанные по формуле f(х)=2х²+1, составят
Легко заметить, что в этом случае среднее значение приспособленности возросло с 589 до 1262. Обратим внимание, что если на следующей итерации будут сформированы для скрещивания пары хромосом, например,Ch₄ и Ch₂,Ch₅ и Ch₂ или Ch₆ и Ch₂ с точкой скрещивания 2 или 3, то среди прочих будет получена хромосома с фенотипом[11111], равным числу 31, при котором оптимизируемая функция достигает своего максимума. Значение функции приспособленности для этой хромосомы оказывается наибольшим и составляет 1923. Если такое сочетание пар в данной итерации не произойдет, то можно будет ожидать образования хромосомы с наибольшим значением функции приспособленности на следующих итерациях. Хромосома [11111] могла быть получена и на текущей итерации в случае формирования для скрещивания пары Ch₁ и Ch₆ с точкой скрещивания 3.
Отметим, что при длине хромосом, равной 5 битам, пространство поиска очень мало и насчитывает всего 2⁵=32 точки. Представленный пример имеет исключительно демонстрационный характер. Применение генетического алгоритма для такого простого примера практически нецелесообразно, поскольку его оптимальное решение может быть получено мгновенно. Однако этот пример пригоден для изучения функционирования генетического алгоритма. [2]
Заключение
В ходе работы были рассмотрены исторические сведения, основные понятия генетических алгоритмов, общий вид генетического алгоритма, генетические операторы. Также мы рассмотрели применение генетического алгоритма, на примере задачи нахождения максимума функции.
В завершении хотелось бы отметить, что область применения генетических алгоритмов многогранна.
Генетические алгоритмы в различных формах применяются ко многим научным и техническим проблемам. Генетические алгоритмы используются при создании других вычислительных структур, например, автоматов или сетей сортировки. В машинном обучении они используются при проектировании нейронных сетей или управлении роботами. Они также применяются при моделировании развития в различных предметных областях, включая биологические (экология, иммунология и популяционная генетика), социальный (такие как экономика и политические системы) и когнитивные системы.
Генетические алгоритмы
применяются для решения
- Оптимизация функций
- Оптимизация запросов в базах данных
- Разнообразные задачи на графах (задача коммивояжера, раскраска, нахождение паросочетаний)
- Настройка и обучение искусственной нейронной сети
- Задачи компоновки
- Составление расписаний
- Игровые стратегии
- Теория приближений
- Искусственная жизнь
- Биоинформатика (фолдинг белков)
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- Рутковская Д., Пилиньский М., Рутковский Л. – «Нейронные сети, генетические алгоритмы и нечеткие системы»
- Генетические алгоритмы [Электронный ресурс] Режим доступа - http://www.sernam.ru/book_gen.
php – Дата доступа : 02.05.2012 - Популярно о генетических алгоритмах [Электронный ресурс] Режим доступа- http://knowledge.allbest.ru/
programming/ 3c0b65625b3bc78a5c43b89421316c 27_0.html – Дата доступа : 10.05.2012 - Особенности генетических алгоритмов [Электронный ресурс] Режим доступа - http://www.masters.donntu.edu.
ua/2000/fkita/stupchak/oglavl. htm – Дата доступа : 10.05.2012 - Генетические агоритмы [Электронный ресурс] Режим доступа -http://www.bestreferat.ru/
referat-213707.html – Дата доступа : 05.05.2012 - NeuroProject _ Обучение _ Статьи - Что такое генетические алгоритмы [Электронный ресурс] Режим доступа - http://works.tarefer.ru/69/
100400/index.html – Дата доступа : 06.05.2012 - Программирование искусственного интеллекта [Электронный ресурс] Режим доступа - http://www.itfru.ru/index.php/
genetic-algorithms – Дата доступа : 08.05.2012

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