Использование генетических алгоритмов для поиска решения задач ГЭТ

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УО «БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ ТРАНСПОРТА»

 

ФАКУЛЬТЕТ «МЕХАНИЧЕСКИЙ» 

КАФЕДРА «ЭЛЕКТРИЧЕСКИЙ ПОДВИЖНОЙ СОСТАВ»

 
 
 

КУРСОВАЯ  РАБОТА 

по дисциплине

«Математическое моделирование» 
 

«Использование генетических алгоритмов для поиска решения задач ГЭТ» 
 
 
 
 
 

Выполнил:        Проверил:

студент группы МГ-31      преподаватель

Соболь П.С.       Олешкевич Н.А. 

Гомель, 2011

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

2

КР.МГ-31.14.2011

  Разраб.

Соболь  П.С.

  Провер.

Олешкевич Н.А. 

  Реценз. 

  Н. Контр. 

  Утверд. 

Использование генетических алгоритмов для поиска решения задач по ГЭТ

Лит.

Листов

33

     БелГУТ

     

     Содержание.

Введение………………………………………………………………………...…3

История появления эволюционных алгоритмов……………………….……….5

Решение задачи в формульном виде……………………………………….…...19

Решение задачи в числовом виде………………………………………….……25

Заключение……………………………………………………………………….32

Список литературы………………………………………………………………33 

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

КР.МГ-31.14.2011 

Введение. 

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

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

    Персональная  ЭВМ давно превратилась в предмет  труда. Ни одно предприятие не обходится  без электронной базы данных, без  современных средств коммуникаций, мощных вычислительных средств. Он позволяет  осуществлять не только производственный процесс на дому, но и целый ряд  всевозможных процессов.

    Огромный  вклад в этот рост внесло развитие технологии математического моделирование.

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

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

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

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

4

КР.МГ-31.14.2011 

В курсовой работе я исследую математическую модель  генетического алгоритма.

    Генетический  алгоритм (от англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

      В работе предстоит высчитать выживаемость (fitness) потомства с помощью математической модели генетического алгоритма. Найти более приспособленное к жизни потомство.

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

5

КР.МГ-31.14.2011 

История появления эволюционных алгоритмов

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

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

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

6

КР.МГ-31.14.2011 

История эволюционных вычислений началась с разработки ряда различных независимых моделей. Основными из них были генетические алгоритмы и классификационные  системы Голланда (Holland), опубликованные в начале 60-х годов и получившие всеобщее признание после выхода в свет книги, ставшей классикой в этой области, - "Адаптация в естественных и искусственных системах" ("Adaptation in Natural and Artifical Systems", 1975). В 70-х годах в рамках теории случайного поиска Растригиным Л.А. был предложен ряд алгоритмов, использующих идей бионического поведения особей. Развитие этих идей нашло отражение в цикле работ Букатовой И.Л. по эволюционному моделированию. Развивая идеи Цетлина М.Л. о целесообразном и оптимальном поведении стохастических автоматов, Неймарк Ю.И. предложил осуществлять поиск глобального экстремума на основе коллектива независимых автоматов, моделирующих процессы развития и элиминации особей. Большой вклад в развитие эволюционного программирования внесли Фогел (Fogel) и Уолш (Walsh). Несмотря на разницу в подходах, каждая из этих "школ" взяла за основу ряд принципов, существующих в природе, и упростила их до такой степени, чтобы их можно было реализовать на компьютере.

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

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

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

     2) Системы, которые являются биологически более реалистичными, но которые не оказались особенно полезными в прикладном смысле.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

7

КР.МГ-31.14.2011 

Они больше похожи на биологические системы и менее  направлены (или не направлены вовсе). Они обладают сложным и интересным поведением, и, видимо, вскоре получат практическое применение.

     Конечно, на практике мы не можем разделять  эти вещи так строго. Эти категории - просто два полюса, между которыми лежат различные вычислительные системы. Ближе к первому полюсу - эволюционные алгоритмы, такие как  Эволюционное Программирование (Evolutionary Programming), Генетические Алгоритмы (Genetic Algorithms) и Эволюционные Стратегии (Evolution Strategies). Ближе ко второму полюсу - системы, которые могут быть классифицированы как Искусственная Жизнь (Artificial Life).

     Конечно, эволюция биологических систем не единственный "источник вдохновения" создателей новых методов, моделирующих природные  процессы. Нейронные сети (neural networks), например, основаны на моделировании поведения нейронов в мозге. Они могут использоваться для ряда задач классификации, например, задачи распознавания образов, машинного обучения, обработки изображений и др. Область их приложения частично перекрывается со сферой применения ГА. Моделируемый отжиг (simulated annealing) - другая методика поиска, которая основана скорее на физических, а не биологических процессах.  

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

Генетические  Алгоритмы - адаптивные методы поиска, которые в последнее время часто используются для решения задач функциональной оптимизации. Они основаны на генетических процессах биологических организмов: биологические популяции развиваются в течении нескольких поколений, подчиняясь законам естественного отбора и по принципу "выживает наиболее приспособленный" (survival of the fittest), открытому Чарльзом Дарвином. Подражая этому процессу генетические алгоритмы способны "развивать" решения реальных задач, если те соответствующим образом закодированы. Например, ГА могут использоваться, чтобы проектировать структуры моста, для поиска максимального отношения прочности/веса, или определять наименее расточительное размещение для нарезки форм из ткани. Они могут также использоваться для интерактивного управления процессом, например на химическом заводе, или балансировании загрузки на многопроцессорном компьютере. Вполне реальный пример: Изм.

Лист

№ докум.

Подпись

Дата

Лист

8

КР.МГ-31.14.2011 

израильская компания Schema разработала программный продукт Channeling для оптимизации работы сотовой связи путем выбора оптимальной частоты, на которой будет вестись разговор. В основе этого программного продукта и используются генетические алгоритмы.

     Основные  принципы ГА были сформулированы Голландом (Holland, 1975), и хорошо описаны во многих работах. В отличие от эволюции, происходящей в природе, ГА только моделируют те процессы в популяциях, которые являются существенными для развития. Точный ответ на вопрос, какие биологические процессы существенны для развития, и какие нет? - все еще открыт для исследователей.

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

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

Лист

№ докум.

Подпись

Дата

Лист

9

КР.МГ-31.14.2011 

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

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

     Имеются много способов реализации идеи биологической  эволюции в рамках ГА. Традиционным считается ГА, представленный на схеме.

НАЧАЛО /* генетический алгоритм */

      Создать начальную популяцию

      Оценить приспособленность  каждой особи

      останов := FALSE

      ПОКА  НЕ останов ВЫПОЛНЯТЬ

      НАЧАЛО /* создать популяцию  нового поколения */

          ПОВТОРИТЬ (размер_популяции/2) РАЗ

          НАЧАЛО /* цикл воспроизводства */

              Выбрать две особи с  высокой приспособленностью из предыдущего поколения  для скрещивания

              Скрестить выбранные особи  и получить двух потомков

              Оценить приспособленности  потомков

              Поместить потомков в новое  поколение 

          КОНЕЦ

          ЕСЛИ  популяция сошлась  ТО останов:= TRUE

      КОНЕЦ

КОНЕЦ

             Рисунок 1- генетический алгоритм

Изм.

Лист

№ докум.

Подпись

Дата

Лист

10

КР.МГ-31.14.2011 

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

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

         Когда следует применять  генетический алгоритм?

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

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

Лист

№ докум.

Подпись

Дата

Лист

11

КР.МГ-31.14.2011 

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

     Однако  нередки случаи, когда ГА работает, не так эффективно, как ожидалось.

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

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

Лист

№ докум.

Подпись

Дата

Лист

12

КР.МГ-31.14.2011 

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

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

             Символьная  модель простого ГА

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

     Структура данных генетического алгоритма  состоит из одной или большее количество хромосом (обычно из одной). Как правило, хромосома - это битовая строка, так что термин строка часто заменяет понятие "хромосома". В принципе, ГА не ограничено бинарным представление. Известны другие реализации, построенные исключительно на векторах вещественных чисел L. Davis, 1991b; Eshelman и Schaffer, 1993; Goldberg, 1991a, 1991b.Несмотря на то, что для многих реальных задач, видимо, больше подходят строки переменной длины, в настоящее время структуры фиксированной длины наиболее распространены и изучены. Пока и мы ограничимся только структурам, которые являются одиночными строками по l бит.

Использование генетических алгоритмов для поиска решения задач ГЭТ