Генетические алгоритмы и их практическое применение
Курсовая работа
По дисциплине: «Моделирование систем»
По теме: «Генетические алгоритмы и их практическое применение»
Содержание:
Введение:
1. Теория алгоритмов. Задача коммивояжера.
2. Генетические алгоритмы. Общее описание. Математический аппарат
3. Непрерывные генетические алгоритмы. Математический аппарат.
4. Заключение.
5. Список использованной
литературы.
Введение
В нашей
жизни мы регулярно
оптимизационных и прогностических задач. Так, например, доход любой
компании определяется качеством этих решений - точностью прогнозов и
оптимальностью выбранных стратегий.
Примерами таких задач могут являться:
* Прогнозирование курсов валют;
* Прогнозирование спроса;
*
Прогнозирование дохода
*
Прогнозирование уровня
* Оптимизация расписаний;
* Оптимизация плана закупок, плана инвестиций;
*
Оптимизация стратегии
Как правило,
для реальных задач бизнеса
не существует четких
решения.
Раньше руководители и
основе
личного опыта. С помощью
позволяющие
существенно повысить
Рассмотрим
пример реальной задачи об
оптимальном распределении
Имеется
инвестиционный капитал,
проектов. Для каждого проекта задана функция зависимости прибыли от объема
вложения.
Требуется найти наиболее
капитала,
при условии, что заданы
инвестиций для каждого проекта.
Традиционное решение: Чаще всего решение в данном случае принимает
руководитель, основываясь только на личных впечатлениях о проектах.
Размеры упущенной выгоды при этом не подсчитывают, и неоптимальность
решения может остаться незамеченной.
Если же руководитель поручает аналитикам выбрать наиболее прибыльный
вариант,
применяются математические
функции
линейны, то можно применить
методы линейного
(симплекс-метод). Если хотя бы одна из функций нелинейна, то можно
использовать метод градиентного спуска или полного перебора.
К сожалению,
классические методики
практических
задачах. Это связано с тем,
что невозможно достаточно
описать реальность с помощью небольшого числа параметров модели, либо
расчет
модели требует слишком много
времени и вычислительных
В частности, рассмотрим проблемы, возникающие при решении этой задачи:
1. В реальной задаче ни одна из функций не известна точно - известны лишь
приблизительные или ожидаемые значения прибыли. Для того, чтобы
избавиться от
теряя при этом в точности описания задачи.
2. Детерминированный алгоритм для поиска оптимального решения
(симплекс-метод) применим
линейны. В реальных задачах
бизнеса это условие не
данные функции можно
будет далеким от оптимального.
3. Если одна из функций нелинейна, то симплекс-метод неприменим, и
остается два традиционных
a. Первый путь - использовать метод градиентного спуска для поиска
максимума прибыли. В данном случае область определения функции
прибыли имеет сложную форму, а сама функция - несколько локальных
максимумов, поэтому градиентный метод может привести к
неоптимальному решению.
b. Второй путь - провести полный перебор вариантов инвестирования.
Если каждая из 10 функций задана в 100 точках, то придется
проверить около 1020 вариантов,
что потребует не менее
месяцев работы современного компьютера.
Из-за
описанных выше недостатков
идет
активное развитие
технологии искусственного интеллекта, имитирующие природные процессы,
такие как деятельность нейронов мозга или процесс естественного отбора.
Наиболее
популярными и проверенными из
этих технологий являются
сети
и генетические алгоритмы.
появились
в 80-х годах и получили широко
странах.
1. Теория алгоритмов. Задача коммивояжера.
В настоящее
время теория алгоритмов
направлениям.
* Классическая теория алгоритмов изучает проблемы формулировки задач в
терминах формальных языков, вводит понятие задачи разрешения, проводит
классификацию задач по
*
Теория асимптотического
получения асимптотических
алгоритмов, в частности, для рекурсивных алгоритмов. Асимптотический
анализ позволяет оценить рост
потребности алгоритма в
(например, времени выполнения) с увеличением объема входных данных.
*
Теория практического анализа
вычислительных алгоритмов
получения явных функции
поиска практических критериев качества алгоритмов, разработки методики
выбора рациональных
В рамках
классической теории
сложности (P-сложные, NP-сложные, экспоненциально сложные и др.).
К классу P относятся задачи, которые могут быть решены за время,
полиномиально зависящее от объёма исходных данных, с помощью
детерминированной вычислительной машины (например, машины Тьюринга).
К классу NP - задачи, которые могут быть решены за полиномиально
выраженное время с помощью недетерминированной вычислительной машины, т.е.
машины,
следующее состояние которой
не всегда однозначно
предыдущими.
Работу такой машины можно
представить как
каждой
неоднозначности процесс:
одна
ветвь процесса пришла к
Другое определение класса NP: классом NP (от англ. non-deterministic
polynomial) называют множество алгоритмов, время работы которых сильно
зависит от размера входных данных, но если предоставить алгоритму
некоторые дополнительные сведения (так называемых свидетелей решения), то
он сможет достаточно быстро (за время, не превосходящее многочлена от
размера
данных) решить задачу. Проблема
в том, что найти таких
бывает сложно, поэтому многие алгоритмы из класса NP считаются долгими.
Классическим примером NP-задачи является задача коммивояжёра.
Задача коммивояжёра (коммивояжёр — бродячий торговец) заключается в
отыскании самого выгодного маршрута, проходящего через указанные города
хотя бы по одному разу. В условиях задачи указываются критерий выгодности
маршрута (кратчайший, самый дешёвый, совокупный критерий и т. п.) и
соответствующие матрицы расстояний, стоимости и т. п. Как правило,
указывается, что маршрут должен проходить через каждый город только один
раз,
в таком случае выбор
Существует
масса разновидностей
геометрическая задача коммивояжёра (когда матрица расстояний отражает
расстояния между точками на плоскости), треугольная задача коммивояжёра
(когда
на матрице стоимостей
симметричная
и асимметричная задачи
Простейшие методы решения задачи коммивояжёра: полный лексический перебор,
жадные
алгоритмы (метод ближайшего
города,
метод самого дешёвого
дерева.
На практике применяются
методов: метод ветвей и границ и метод генетических алгоритмов.
Задача коммивояжёра есть NP-полная задача. Часто на ней проводят обкатку
новых
подходов к эвристическому
В основе метода ветвей и границ лежит простое наблюдение, что если нижняя
граница для подобласти A дерева поиска больше, чем верхняя граница
какой-либо ранее просмотренной подобласти B, то A может быть исключена из
дальнейшего рассмотрения. Это обычно выполняется с помощью глобальной
переменной
m, в которой запоминается
полученная для всех просмотренных до настоящего времени вариантах; любая
вершина дерева поиска, нижняя граница которой больше m, может быть
исключена из дальнейшего рассмотрения.
В следующем разделе рассмотрим генетические алгоритмы.
2. Генетические алгоритмы. Общее описание. Математический аппарат.
Генетические алгоритмы предназначены для решения задач оптимизации.
Примером подобной задачи может служить обучение нейросети, то есть подбора
таких
значений весов, при которых
достигается минимальная
в основе генетического алгоритма лежит метод случайного поиска. Основным
недостатком случайного поиска является то, что нам неизвестно, сколько
понадобится времени для решения задачи. Для того чтобы избежать таких
расходов времени при решении задачи, применяются методы, проявившиеся в
биологии. При этом используются методы открытые при изучении эволюции и
происхождения видов. Как известно, в процессе эволюции выживают наиболее
приспособленные особи. Это приводит к тому, что приспособленность
популяции
возрастает, позволяя ей лучше
выживать в изменяющихся
Впервые подобный алгоритм был предложен в 1975 году Джоном Холландом (John
Holland) в Мичиганском университете. Он получил название «репродуктивный
план
Холланда» и лег в основу
практически всех вариантов
алгоритмов. Однако, перед тем как мы его рассмотрим подробнее, необходимо
остановится на том, каким образом объекты реального мира могут быть
закодированы
для использования в
Из биологии мы знаем, что любой организм может быть представлен своим
фенотипом, который фактически определяет, чем является объект в реальном
мире, и
генотипом, который содержит
хромосомного набора. При этом каждый ген, то есть элемент информации
генотипа,
имеет свое отражение в
задач
нам необходимо представить
подходящей
для использования в
функционирование механизмов генетического алгоритма производится на уровне
генотипа,
позволяя обойтись без
что и
обуславливает его широкое
В наиболее
часто встречающейся
представления генотипа объекта применяются битовые строки. При этом
каждому
атрибуту объекта в фенотипе
соответствует один ген в
объекта.
Ген представляет собой
длины, которая представляет собой значение этого признака.
Кодирование признаков, представленных целыми числами
Для кодирования
таких признаков можно
битовое значение этого признака. Тогда нам будет весьма просто
использовать
ген определенной длины,
возможных значений такого признака. Но, к сожалению, такое кодирование не
лишено
недостатков. Основной
числа отличаются в значениях нескольких битов, так например числа 7 и 8 в
битовом представлении различаются в 4-х позициях, что затрудняет
функционирование
генетического алгоритма и
для его сходимости. Для того, чтобы избежать эту проблему лучше
использовать кодирование, при котором соседние числа отличаются меньшим
количеством позиций, в идеале значением одного бита. Таким кодом является
код Грея, который целесообразно использовать в реализации генетического
алгоритма. Значения кодов Грея рассмотрены в таблице ниже:
+-----------------------------
|
Двоичное кодирование
|-----------------------------
| Десятичный | Двоичное | Шестнадцатеричное | Десятичный | Двоичное | Шестнадцатеричное |
| код | значение | значение | код | значение | значение |
|------------+----------+-----
| 0 | 0000 | 0h | 0 | 0000 | 0h |
|------------+----------+-----
| 1 | 0001 | 1h | 1 | 0001 | 1h |
|------------+----------+-----
| 2 | 0010 | 2h | 3 | 0011 | 3h |
|------------+----------+-----
| 3 | 0011 | 3h | 2 | 0010 | 2h |
|------------+----------+-----
| 4 | 0100 | 4h | 6 | 0110 | 6h |
|------------+----------+-----
| 5 | 0101 | 5h | 7 | 0111 | 7h |
|------------+----------+-----
| 6 | 0110 | 6h | 5 | 0101 | 5h |
|------------+----------+-----
| 7 | 0111 | 7h | 4 | 0100 | 4h |
|------------+----------+-----
| 8 | 1000 | 8h | 12 | 1100 | Ch |
|------------+----------+-----
| 9 | 1001 | 9h | 13 | 1101 | Dh |
|------------+----------+-----
| 10 | 1010 | Ah | 15 | 1111 | Fh |
|------------+----------+-----
| 11 | 1011 | Bh | 14 | 1110 | Eh |
|------------+----------+-----
| 12 | 1100 | Ch | 10 | 1010 | Ah |
|------------+----------+-----
| 13 | 1101 | Dh | 11 | 1011 | Bh |
|------------+----------+-----
| 14 | 1110 | Eh | 9 | 1001 | 9h |
|------------+----------+-----
| 15 | 1111 | Fh | 8 | 1000 | 8h |
+-----------------------------
Таблица 1. Соответствие десятичных кодов и кодов Грея.
Таким
образом, при кодировании
тетрады и каждую тетраду преобразуем по коду Грея.
В практических
реализациях генетических
необходимости преобразовывать значения признака в значение гена. На
практике имеет место обратная задача, когда по значению гена необходимо
определить значение соответствующего ему признака.
Таким образом, задача декодирования значения генов, которым соответствуют
целочисленные признаки, тривиальна.
Кодирование признаков, которым соответствуют числа с плавающей точкой
Самый простой
способ кодирования, который
использовать битовое представление. Хотя такой вариант имеет те же
недостатки, что и для целых чисел. Поэтому на практике обычно применяют
следующую последовательность действий:
1. Разбивают весь интервал допустимых значений признака на участки с
требуемой точностью.
2. Принимают
значение гена как
интервала (используя код Грея)
3. В
качестве значения параметра
принимают число, являющиеся
этого интервала.
Рассмотрим
вышеописанную
Допустим, что значения признака лежат в интервале [0,1]. При кодировании
использовалось разбиение участка на 256 интервалов. Для кодирования их
номера нам потребуется таким образом 8 бит. Допустим значение гена:
00100101bG (заглавная буква G показывает, что используется кодирование по
коду Грея). Для начала, используя код Грея, найдем соответствующий ему
номер интервала: 0x01 graphic
. Теперь посмотрим, какой интервал ему соответствует… После несложных
подсчетов получаем интервал 0x01 graphic
. Значит
значение нашего параметра
.
Основные генетические операторы
Как известно в теории эволюции важную роль играет то, каким образом
признаки родителей передаются потомкам. В генетических алгоритмах за
передачу признаков родителей потомкам отвечает оператор, который
называется
скрещивание (его также
Этот оператор определяет передачу признаков родителей потомкам. Действует
он следующим образом:
1. из
популяции выбираются две
2. определяется
(обычно случайным образом)
3. потомок определяется как конкатенация части первого и второго
родителя.
Рассмотрим функционирование этого оператора:
+---------------------------+
| Хромосома_1: | 0000000000 |
|--------------+------------|
| Хромосома_2: | 1111111111 |
+---------------------------+
Допустим разрыв происходит после 3-го бита хромосомы, тогда
+-----------------------------
| Хромосома_1: | 0000000000 | >> | 000 | 1111111 | Результирующая_хромосома_1 |
|--------------+------------+-
| Хромосома_2: | 1111111111 | >> | 111 | 0000000 | Результирующая_хромосома_2 |
+-----------------------------
Затем с вероятностью 0,5 определяется одна из результирующих хромосом в
качестве потомка.
Следующий генетический оператор предназначен для того, чтобы поддерживать
разнообразие
особей с популяции. Он
использовании данного оператора каждый бит в хромосоме с определенной
вероятностью инвертируется.
Кроме того, используется еще и так называемый оператор инверсии, который
заключается в том, что хромосома делится на две части, и затем они
меняются местами.
Схематически это можно
+-----------------------------
| 000 | 1111111 | >> | 1111111 | 000 |
+-----------------------------
В принципе
для функционирования
двух
генетических операторов, но на
практике применяют еще и
дополнительные операторы или модификации этих двух операторов. Например,
кроссовер может быть не одноточечный (как было описано выше), а
многоточечный,
когда формируется несколько
точек разрыва (чаще всего две)
Кроме того, в некоторых реализациях алгоритма оператор мутации
представляет собой инверсию только одного случайно выбранного бита
хромосомы.
Схема
функционирования
Теперь,
зная как интерпретировать
функционирования генетического алгоритма. Рассмотрим схему
функционирования генетического алгоритма в его классическом варианте.
1. Инициировать начальный момент времени 0x01 graphic
. Случайным
образом сформировать
особей.
0x01 graphic
2. Вычислить
приспособленность каждой
и популяции в целом 0x01 graphic
(также иногда называемую
определяет насколько хорошо
подходит особь, описанная
хромосомой, для решения задачи.
3. Выбрать особь 0x01 graphic
из популяции. 0x01 graphic
4. С определенной вероятностью (вероятностью кроссовера 0x01 graphic
) выбрать вторую особь из
и произвести оператор кроссовера 0x01 graphic
.
5. С определенной вероятностью (вероятностью мутации 0x01 graphic
) выполнить оператор мутации. 0x01 graphic
.
6. С определенной вероятностью (вероятностью инверсии 0x01 graphic
) выполнить оператор инверсии 0x01 graphic
.
7. Поместить полученную хромосому в новую популяцию 0x01 graphic
.
8. Выполнить операции, начиная с пункта 3, k раз.
9. Увеличить номер текущей эпохи 0x01 graphic
.
10. Если выполнилось условие останова, то завершить работу, иначе переход
на шаг 2.
Теперь рассмотрим
подробнее отдельные этапы
Наибольшую роль в успешном функционировании алгоритма играет этап отбора
родительских хромосом на шагах 3 и 4. При этом возможны различные
варианты. Наиболее
часто используется метод
При использовании
такого метода вероятность
ее приспособленностью, то есть 0x01 graphic
. Использование этого метода приводит к тому, что вероятность передачи
признаков
более приспособленными
используемый
метод - турнирный отбор. Он
заключается в том, что
выбирается несколько особей из популяции (обычно 2) и победителем
выбирается
особь с наибольшей
реализациях
алгоритма применяется так
которая
заключается в том, что особи
с наибольшей
гарантировано переходят в новую популяцию. Использование элитизма обычно
позволяет
ускорить сходимость
использования стратегии элитизма в том, что повышается вероятность
попадания алгоритма в локальный минимум.
Другой важный момент - определение критериев останова. Обычно в качестве
них применяются
или ограничение на
функционирования
алгоритма, или определение
сравнивания приспособленности популяции на нескольких эпохах и остановки
при стабилизации этого параметра.
3. Непрерывные генетические алгоритмы.
Фиксированная длина хромосомы и кодирование строк двоичным алфавитом
преобладали
в теории генетических
когда были получены теоретические результаты о целесообразности
использования именно двоичного алфавита. К тому же, реализация такого
генетического алгоритма на ЭВМ была сравнительно легкой. Все же, небольшая

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