Автор работы: Пользователь скрыл имя, 24 Мая 2013 в 17:43, курсовая работа
Идея применения генетических алгоритмов была позаимствована из природы. Именно природе удалось создать самоорганизующуюся и самобалансирующуюся сложную систему, работающую на основе механизма эволюции. Но каким образом природа выбирает нужное направление эволюции? Почему и каким образом природа экономно использует свои ресурсы? Как ей удается создавать устойчивые форму жизни? Как природе удалось создать порядок из хаоса?[1] Эти вопросы интересовали не только биологов, но и других ученых и инженеров, которые занимаются моделированием сложных интеллектуальных систем, так как понимание механизма эволюции, возможно, поможет совершить прорыв в создании сложных устойчивых структур, позволяющих решать многие проблемы.
Введение 3
Часть 1 5
Основные понятия 5
Основные этапы работы генетического алгоритма 7
Область применения генетических алгоритмов 10
Часть 2 12
Постановка задачи 12
Структура данных 12
Генерация первоначальной популяции 13
Кроссинговер 14
Селекция 14
Технические характеристики программы 17
Список литературы 18
РОССИЙСКАЯ ФЕДЕРАЦИЯ
МИНЕСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
ФЕДЕРАЛЬНОЕ
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Институт математики, естественных наук
и информационных технологий
Кафедра программного обеспечения
КУРСОВАЯ РАБОТА
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА
Выполнил:
Студент 114 группы
Егоров Ю. А.
Проверил:
Научный руководитель
к. т. н., доцент
Воробьева Марина Сергеевна
Тюмень
- 2012
Оглавление
Введение 3
Часть 1 5
Основные понятия 5
Основные этапы работы генетического алгоритма 7
Область применения генетических алгоритмов 10
Часть 2 12
Постановка задачи 12
Структура данных 12
Генерация первоначальной популяции 13
Кроссинговер 14
Селекция 14
Технические характеристики программы 17
Список литературы 18
Идея применения генетических алгоритмов была позаимствована из природы. Именно природе удалось создать самоорганизующуюся и самобалансирующуюся сложную систему, работающую на основе механизма эволюции. Но каким образом природа выбирает нужное направление эволюции? Почему и каким образом природа экономно использует свои ресурсы? Как ей удается создавать устойчивые форму жизни? Как природе удалось создать порядок из хаоса? [1] Эти вопросы интересовали не только биологов, но и других ученых и инженеров, которые занимаются моделированием сложных интеллектуальных систем, так как понимание механизма эволюции, возможно, поможет совершить прорыв в создании сложных устойчивых структур, позволяющих решать многие проблемы. Впоследствии из этого интереса сформировалась целая теория эволюционного моделирования и методов его реализации. Одним из таких методов являются генетические алгоритмы.
Считается, что первые работы над генетическими алгоритмами начали проводится в 1954 г. Нильсом Баричелли в Институте Продвинутых Исследований Принстонского университета. В последующие два десятилетия работы над генетическими алгоритмами носили чисто экспериментальный характер. Интерес к генетическим алгоритмам резво возрос в 70-х гг. XX в. после того как группе инженеров под руководством Инго Рехенберга удалось решить сложные инженерные задачи, опираясь на эволюционные методы. Несколькими годами позже вышел один из первых серьезны трудов по генетическим алгоритмам, написанный Джоном Холландом («Адаптация в естественных и искусственных системах», 1975 г.). В 1980-х. гг. стали продаваться первые коммерческие программные продукты (набор вычислительных средств), использующие генетические алгоритмы. [3]
На сегодняшний день генетический
алгоритмы изучены достаточно хорошо,
и с их помощью можно успешно
решить большое число задач, связанных
с поиском, оптимизацией и моделированием.
Но не смотря на это, работа над их изучением
и улучшением проводится до сих пор, так
как полностью потенциал генетических
алгоритмов до сих пор не раскрыт.
Эволюционные алгоритмы – направление в искусственном интеллекте, которое использует и моделирует биологическую эволюцию. Оно включает в себя три главных направления фундаментальных исследований: генетические алгоритмы, эволюционное моделирование и эволюционное программирование.[2]
Генетический алгоритм (ГА) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Другими словами, генетический алгоритм представляет собой адаптивный поисковый метод, который основан на селекции лучших элементов в популяции, подобно эволюционной теории Ч. Дарвина.[2]
ГА осуществляют так называемый эволюционный поиск – преобразование одного конечного нечеткого множества в другое. Такой поиск не является случайным, так как использует информацию, накопленную в процессе эволюции.
Цель генетических алгоритмов состоит в том, чтобы:
Генетические алгоритмы имеют следующие отличия от других методов поиска и оптимизации:
Все генетические алгоритмы работают на основе начальной информации, в качестве которой выступает популяция альтернативных решений P.[2]
Популяция есть множество элементов . Каждый элемент этой популяции , как правило, представляет собой одну или несколько хромосом или особей.
Хромосома – некоторый конечный вектор размерности , состоящий из генов – элементов хромосом.[2]
Каждый ген в хромосоме имеет свою позицию – локус. Функциональное назначение гена называется аллель.
Гены могут иметь числовые или функциональные значения. Обычно используют числовые значения, которые берутся из некоторого алфавита (как правило, двоичного, хотя можно использовать буквенные алфавиты или, например, вещественные числа).
Элементы в генетических алгоритмах часто называют родителями. Они выбираются из популяции на основе заданных правил, а затем между ними происходит кроссинговер – скрещивание особей, в результате которого появляются новые потомки, образующие новое поколение.
Поколение – генерация, или процесс реализация одной итерации алгоритма.[1]
Генотип (набор хромосом)
каждой особи популяции описывает
фенотип – его внешнее
При помощи генерации новых поколений, оценивании особей в поколении и их отбора осуществляется эволюция популяции – чередование поколений, в которых хромосомы изменяют свои значения так, чтобы каждое новое поколение наилучшим способом приспосабливалось к внешней среде.
Задание целевой функции. Целевая функция задается в зависимости от поставленной задачи так, чтобы она могла наиболее эффективно оценить приспособленность особи.
Создание начального множества решений. Перед первым шагом нужно случайным образом создать начальную популяцию. Создание начального множества решений происходит на основе четырех основных принципов:
При создании популяции не нужно стараться сделать хорошо приспособленных особей. Главное, чтобы элементы начального множества соответствовали формату особей популяции.[2]
Размножение (скрещивание). Генетический алгоритм предполагает два способа размножения: половое и бесполое. Бесполое размножение – самокопирование особи, которое может применяться, например, при недостаточном количестве элементов в множестве особей. Половое размножение в ГА обычно происходит между двумя особями, но допустимо использование большего количества объектов. Главное требование к размножению – чтобы потоки имели возможность унаследовать признаки от своих родителей. Основные методы кроссинговера:
Мутации. Проведение преобразований над генотипом одной особи. К основным операторам мутации относят:
Отбор и формирование новой популяции. На этапе отбора необходимо выбрать определенную долю особей популяции, которые составят следующее поколение и будут использованы для дальнейшего решения поставленной задачи. Особи выбираются в зависимости от значения их функции приспособленности в соответствии с определенной стратегией отбора:
Отбор считается эффективным, если он создает возможность перехода от одной области поиска у другой, что повышает вероятность нахождения глобального оптимума целевой функции.[2]
Генетические алгоритмы достаточно универсальны и используются для решения большого числа задач, связанных с оптимизацией. Не смотря на то, что многие из таких задач имеют другие, возможно более быстрые и точные, способы решения применение генетических алгоритмов не теряет свой смысл. Это связано с тем, что в некоторых случаях, особенно при правильном применении различных технологий программирования (параллельное программирование), ГА могут быть более эффективны при решении поставленных задач.
Генетические алгоритмы широко применяются для решения следующих задач:
Информация о работе Применение генетического алгоритма для решения задачи коммивояжера