
- •Введение
- •1.1 Постановка задачи минимизации пересечений в графе
- •1. 2 Методы решения задачи минимизации пересечений в графе без использования генетических алгоритмов
- •1.3. Методы решения задачи минимизации пересечений в графе с использованием генетических алгоритмов
- •2.Описание программы.
- •2.2. Руководство пользователя
- •3. Экспериментальная часть.
- •3.1 Разработка генетического алгоритма
- •4. Вычислительный эксперимент.
- •4.1. Эксперименты и графики
- •4.2 Оценка вса:
- •5. Заключение
- •6. Литература
2.Описание программы.
2.1 Разработка структурной схемы алгоритма. Блок-схема.
Модифицированная структура генетических алгоритмов выглядит следующим образом:
Создание первоначальной популяции, оценка и перенос ее в текущую популяцию;
Селекция текущей популяции;
Кроссинговер пар, выбранных оператором селекции из текущей популяции;
Мутация особей текущей популяции;
Оценка текущей популяции;
Отбор из полученной новой популяции заданного числа особей;
Если не прошло заданное число поколений, то возврат на 2;
Вывод индивида с лучшим значением ЦФ.
С учетом всех последующих модификаций схему работы ГА можно представить в виде структурной схемы:
МОДИФИЦИРОВАННАЯ СХЕМА РАБОТЫ ГЕНЕТИЧЕСКОГО АЛГОРИТМА
Для нормальной работы ГА, как правило, устанавливают следующие параметры:
1) количество поколений - влияет на продолжительность генетического поиска субоптимального решения (обычно от 100 до 1000);
2) размер популяции - влияет на разнообразие решений (размер генофонда).
3) вероятность скрещивания - задает количество скрещиваемых пар решений в одном поколении (60-80 % общего количества пар);
4) вероятность мутации - определяет частоту генерации новой информации (1-5 % генов на одно поколение решений);
5) схему эволюционирования, микроэволюцию - развитие одной популяции или макроэволюцию - развитие нескольких популяций;
Генетические алгоритмы предназначены для поиска субоптимального решения в NP-полных задачах.
2.2. Руководство пользователя
При загрузке имеем:
Рисунок 1
Затем нажимаем на кнопку « Генерация связей » и выбираем «вероятность кроссинговера», «вероятность мутации», «редукция» и т.д и результат видим на рисунке 2:
Рисунок 2
Нажав на кнопку «Старт ген. Алгоритма» мы получаем лучший индивид и лучшую ЦФ. Результат видим на рисунке 3:
Рисунок 3
Чтобы посмотреть график, используем кнопку «График», рис 4:
Рисунок 4
3. Экспериментальная часть.
3.1 Разработка генетического алгоритма
Первый способ в механизмах ГА называется оператором кроссинговера (скрещивания), второй - оператором мутации. Рассмотрим подробнее оператор кроссинговера, т.к. он представляет наибольший интерес.
Оператор кроссинговера — это языковая конструкция, позволяющая на основе преобразования (скрещивания) хромосом родителей (или их частей) создавать хромосомы потомков.
Как указано выше, хромосома представляет собой упорядоченный список вершин. Использование стандартных операторов кроссинговера приводит к появлению нереальных решений, т.е. в хромосомах, как правило, повторяются вершины (одноточечный, двухточечный и т.п. кроссинговеры).
Жадный оператор кроссинговера был предложен в 1988 году Грифенстеттом в соавторстве с другими учеными для решения задачи коммивояжера. Это эвристический оператор кроссинговера, ориентированный на использование знаний об объекте.
Идея построения “жадного” алгоритма заключается в следующем. На каждом шаге последовательно выбираются лучшие элементы из множества имеющихся, т.е. решения, улучшающие целевую функцию, причем таким образом, чтобы не нарушать действующих ограничений. Генерация потомков происходит за счет выбора лучших участков родительских хромосом и их последующего сопряжения.
В то же время схема работы “жадного” ОК может изменяться в зависимости от характера решаемых задач.
Например, для задачи минимизации пересечений схема выполнения “жадного” ОК может быть следующей. В каждой родительской хромосоме, кодирующей взаиморасположение ребер на полуплоскостях, выбирают по одному ребру, имеющему наибольшее число пересечений в данной полуплоскости и производят обмен. После этого среди оставшихся ребер снова выбираются два ребра, имеющие наибольшее число пересечений, и меняются местами и так далее, до тех пор, пока не будут просмотрены все ребра.
Практика показывает, что применение жадного ОК повышает скорость сходимости решения, но в то же время это способствует уменьшению разнообразия популяции.
Оператор мутации служит одним из способов выхода из локального оптимума. Поэтому оператором мутации выбрана мутация обмена. Выбор ген для обмена происходит абсолютно случайно.
Пример:
P1 = {1, 2, 3, 4, 5}
P2 = {1, 4, 3, 2, 5}
Оператор редукции — это языковая конструкция, позволяющая на основе анализа популяции после одной или нескольких поколений генетического алгоритма уменьшать ее размер до заданной величины. Рассмотрим способы реализации оператора редукции. Он выполняется для устранения неудачных решений. В некоторых генетических алгоритмах, этот оператор применяется для сохранения постоянного размера начальной популяции. Основная проблема здесь — это нахождение компромисса между разнообразием генетического материала и качеством решений.
С помощью операторов редукции на ранних стадиях работы ГА происходит выбор хромосом без учета значений их ЦФ (Рк), т.е. случайный отбор. На заключительной стадии — определяющий фактор при отборе значения ЦФ(Рк). Чем выше ЦФ(Рк), тем выше вероятность отбора Рк в следующую популяцию. На заключительной стадии проводится уменьшение случайных операций и увеличивается процент направленных.
Оператор репродукции (селекция) (ОР) — это процесс, посредством которого хромосомы (альтернативные решения), имеющие более высокое значение ЦФ (с «лучшими» признаками), получают большую возможность для воспроизводства (репродукции) потомков, чем «худшие» хромосомы.