Курсовая работа: Непрерывные генетические алгоритмы
Рассмотрим функционирование этого оператора:
Хромосома_1: | 0000000000 |
Хромосома_2: | 1111111111 |
Допустим разрыв происходит после 3-го бита хромосомы, тогда
Хромосома_1: | 0000000000 | >> | 000 | 1111111 | Результирующая_хромосома_1 |
Хромосома_2: | 1111111111 | >> | 111 | 0000000 | Результирующая_хромосома_2 |
Затем с вероятностью 0,5 определяется одна из результирующих хромосом в качестве потомка.
Следующий генетический оператор предназначен для того, чтобы поддерживать разнообразие особей с популяции. Он называется оператором мутации. При использовании данного оператора каждый бит в хромосоме с определенной вероятностью инвертируется.
Кроме того, используется еще и так называемый оператор инверсии, который заключается в том, что хромосома делится на две части, и затем они меняются местами. Схематически это можно представить следующим образом:
000 | 1111111 | >> | 1111111 | 000 |
В принципе для функционирования генетического алгоритма достаточно этих двух генетических операторов, но на практике применяют еще и некоторые дополнительные операторы или модификации этих двух операторов. Например, кроссовер может быть не одноточечный (как было описано выше), а многоточечный, когда формируется несколько точек разрыва (чаще всего две). Кроме того, в некоторых реализациях алгоритма оператор мутации представляет собой инверсию только одного случайно выбранного бита хромосомы.
Схема функционирования генетического алгоритма
Теперь, зная как интерпретировать значения генов, перейдем к описанию функционирования генетического алгоритма. Рассмотрим схему функционирования генетического алгоритма в его классическом варианте.
Инициировать начальный момент времени . Случайным образом сформировать начальную популяцию, состоящую из k особей.
Вычислить приспособленность каждой особи и популяции в целом (также иногда называемую термином фиттнес). Значение этой функции определяет насколько хорошо подходит особь, описанная данной хромосомой, для решения задачи.
Выбрать особь из популяции.
С определенной вероятностью (вероятностью кроссовера ) выбрать вторую особь из популяции и произвести оператор кроссовера .
С определенной вероятностью (вероятностью мутации ) выполнить оператор мутации. .
С определенной вероятностью (вероятностью инверсии ) выполнить оператор инверсии .
Поместить полученную хромосому в новую популяцию .
Выполнить операции, начиная с пункта 3, k раз.
Увеличить номер текущей эпохи .
Если выполнилось условие останова, то завершить работу, иначе переход на шаг 2.
Теперь рассмотрим подробнее отдельные этапы алгоритма.
Наибольшую роль в успешном функционировании алгоритма играет этап отбора родительских хромосом на шагах 3 и 4. При этом возможны различные варианты. Наиболее часто используется метод отбора, называемый рулеткой. При использовании такого метода вероятность выбора хромосомы определяется ее приспособленностью, то есть . Использование этого метода приводит к тому, что вероятность передачи признаков более приспособленными особями потомкам возрастает. Другой часто используемый метод – турнирный отбор. Он заключается в том, что случайно выбирается несколько особей из популяции (обычно 2) и победителем выбирается особь с наибольшей приспособленностью. Кроме того, в некоторых реализациях алгоритма применяется так называемая стратегия элитизма, которая заключается в том, что особи с наибольшей приспособленностью гарантировано переходят в новую популяцию. Использование элитизма обычно позволяет ускорить сходимость генетического алгоритма. Недостаток использования стратегии элитизма в том, что повышается вероятность попадания алгоритма в локальный минимум.
Другой важный момент – определение критериев останова. Обычно в качестве них применяются или ограничение на максимальное число эпох функционирования алгоритма, или определение его сходимости, обычно путем сравнивания приспособленности популяции на нескольких эпохах и остановки при стабилизации этого параметра.
3. Непрерывные генетические алгоритмы.
Фиксированная длина хромосомы и кодирование строк двоичным алфавитом преобладали в теории генетических алгоритмов с момента начала ее развития, когда были получены теоретические результаты о целесообразности использования именно двоичного алфавита. К тому же, реализация такого генетического алгоритма на ЭВМ была сравнительно легкой. Все же, небольшая группа исследователей шла по пути применения в генетических алгоритмах отличных от двоичных алфавитов для решения частных прикладных задач. Одной из таких задач является нахождение решений, представленных в форме вещественных чисел, что называется не иначе как «поисковая оптимизация в непрерывных пространствах». Возникла следующая идея: решение в хромосоме представлять напрямую в виде набора вещественных чисел. Естественно, что потребовались специальные реализации биологических операторов. Такой тип генетического алгоритма получил название непрерывного генетического алгоритма (RGA, или real-coded genetic algorithm), или генетического алгоритма с вещественным кодированием.
Первоначально непрерывные гены стали использоваться в специфических приложениях (например, хемометрика, оптимальный подбор параметров операторов стандартных генетических алгоритмов и др.). Позднее они начинают применяться для решения других задач оптимизации в непрерывных пространствах (работы исследователей Wright, Davis, Michalewicz, Eshelman, Herrera в 1991-1995 гг). Поскольку до 1991 теоретических обоснований работы непрерывных генетических алгоритмов не существовало, использование этого нового подвида было спорным; ученые, знакомые с фундаментальной теорией эволюционных вычислений, в которой было доказано превосходство двоичного алфавита перед другими, критически воспринимали успехи алгоритмов с вещественным кодированием. После того, как спустя некоторое время теоретическое обоснование появилось, непрерывные генетические алгоритмы полностью вытеснили двоичные хромосомы при поиске в непрерывных пространствах.
Преимущества и недостатки двоичного кодирования
Прежде чем излагать особенности математического аппарата непрерывных генетических алгоритмов, остановимся на анализе достоинств и недостатков двоичной схем кодирования.
Как известно, высокая эффективность отыскания глобального минимума или максимума генетическим алгоритмом с двоичным кодированием теоретически обоснована в фундаментальной теореме генетических алгоритмов («теореме о шаблоне»), доказанной Холландом. Ее суть в том, что двоичный алфавит позволяет обрабатывать максимальное количество информации по сравнению с другими схемами кодирования.
Однако двоичное представление хромосом влечет за собой определенные трудности при поиске в непрерывных пространствах большой размерности, и когда требуется высокая точность найденного решения. В генетических алгоритмах с двоичным кодированием для преобразования генотипа в фенотип используется специальный прием, основанный на том, что весь интервал допустимых значений признака объекта разбивается на участки с требуемой точностью. Заданная точность p определяется выражением