Задача о назначениях. 2
МИНОБРНАУКИ РОССИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ В ГОРОДЕ ТАГАНРОГЕ
кафедра САПР
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
Дисциплина: «Эволюционное моделирование и генетические алгоритмы»
Тема: «Задача о назначениях»
Выполнила:
Студентка гр. А-69
Журавлева В.А.
Проверил:
Запорожец Д. Ю.
Таганрог 2012
Содержание
1 Введение. 3
2 Анализ и постановка задачи 5
3 Разработка алгоритма 7
3.1 Кодирование решения 8
3.2 Генерация начальной популяции 9
3.3 Оператор кроссинговера 9
3.4 Оператор мутации 10
4 Разработка программного продукта 12
5 Экспериментальное исследование результатов 13
6 Заключение. 16
7 Список использованной литературы 17
1 Введение.
Генетические алгоритмы
(ГА) – это новая область
1) поиск оптимального решения основан на оптимизации случайного множества решений с различными оценками, а не одного решения. Эта особенность позволяет синтезировать новые оптимальные решения на основе старых оптимальных решений, т.е. свойства оптимальных решений развиваются;
2) в аспекте преобразования решение рассматривается как некоторая закодированная структура, а не как совокупность параметров. Это позволяет в некоторых случаях увеличить процесс обработки данных, т.е. быстродействие оптимизационного поиска;
3) для оценки пригодности решения наряду с использованием целевой функции дополнительно моделируются правила выживания в исследуемом множестве. Эти правила повышают разнообразие множества решений, которое необходимо для выполнения пункта “1”;
4) при инициализации, преобразовании и других видах обработки решения широко используются вероятностные правила, которые вносят в направленность генетического поиска элементы случайности. Тем самым решается проблема преодоления барьеров локальных оптимумов [2].
ГА работает до тех пор, пока не пройдет заданное число итераций, либо не будет получено решение, удовлетворяющее заданным критериям.
В отличие от остальных оптимизационных методов ГА более приспособлены для нахождения новых решений за счет объединения квазиоптимальных решений из разных популяций и обладают возможностями для выхода из локальных оптимумов.
Таким образом, генетические алгоритмы являются случайно направленными методами перебора множества решений, которые используются для решения NP-полных оптимизационных задач.
В данной работе необходимо решить задачу о назначениях.
Задача о назначениях является частным случаем классической транспортной задачи и, как следствие, является задачей транспортного типа.
Применительно к задаче о назначениях симплексный метод не эффективен, так как любое ее допустимое базисное решение является вырожденным.
В современных условиях развития
каждое предприятие стремится с
наименьшими затратами
При анализе мысли высказанной выше определяется цель работы. Она заключается в разработке программы для решения задачи о назначениях с помощью генетического алгоритма c использованием операторов кроссинговера и мутации и с настройкой параметров генетического алгоритма.
Для практической реализации алгоритма было разработано программное обеспечение на языке программирования JAVA.
2 Анализ и постановка задачи
Имеется m групп людей численностью a1, a2, …, am, которые должны выполнять n видов работ объёмом b1, b2, …, bn.
Известна оплата труда для каждой i-й группы людей при выполнении каждого j-го вида работ cij, i = 1, 2, …, m, j = 1, 2, …, n.
Требуется так распределить людей для выполнения работ, чтобы суммарный объем выплат заработной платы был минимален.
Математическая модель данной задачи выглядит следующим образом:
Где: xij – число людей i – ой группы, занятых j – м видом работ.
Для перехода от нахождения максимума к нахождению минимума нужно умножить коэффициенты целевой функции на (-1). Тогда целевая функция будет иметь вид
В рамках курсовой работы необходимо создать программное обеспечение, реализующее генетический алгоритм, решающий данную задачу. Необходимо исследовать зависимость работы разработанного алгоритма от входных данных, их влияние на быстродействие и качество. Разработанное программное обеспечение должно иметь удобный и дружественный интерфейс.
3 Разработка алгоритма
Блок схема алгоритма представлена на рисунке 1.
Входными параметрами являются: матрица смежности, вероятность применения кроссинговера, вероятность применения мутации, количество генераций, размер начальной популяций.
В данной курсовой работе рассмотрен частный случай транспортной задачи, когда количество групп рабочих равно количеству видов работ. Таким образом, задача сводится к нахождению оптимальных пар. Графически данную задачу можно представить в виде двудольного графа с взвешенными ребрами, каждое ребро которого соединяет одну вершину, отображающую поставщика, с одной вершиной, отображающей потребителя. Веса ребер равны стоимости оплаты труда. Необходимо построить граф таким образом, чтобы сумма весов ребер была минимальна.
3.1 Кодирование решения
Входным данным является матрица размером n×m (n=m).
Рассмотрим пример для наглядности.
Соответственно в строках – группы рабочих, в столбцах – виды работ.
Теперь создаем хромосому:
Она представляет собой числовую хромосому содержащую индексы, длина ее равна размерности матрицы.
А теперь создаем новый массив для расчета целевой функции. Она составляется следующим образом: берем значение из ячейки из CH (1), затем находим в первой строке M столбец 1 и на пересечении находим значение и записываем его в MForCF.
Легко определить, что максимально возможный и целесообразный размер популяции равен: n2
Конечно, возможны и другие способы кодирования хромосомы в рамках данной задачи.
3.2 Генерация начальной популяции
Генерация хромосом, входящих в начальную популяцию, производится путем случайного перемешивания чисел натурального ряда.
Процесс генерации новых
решений является ключевым звеном в
механизме ГА. Выделим два основных
способа генерации новых
1) путем перекомпоновки двух старых (родительских) решений;
2) путем случайной перестройки НИ отдельных индивидов.
Первый способ в механизмах ГА называется оператором кроссинговера (скрещивания), второй - оператором мутации. Рассмотрим подробнее основные генетические операторы.
3.3 Оператор кроссинговера
Оператор кроссинговера - это языковая конструкция, позволяющая на основе преобразования (скрещивания) хромосом родителей (или их частей) создавать хромосомы потомков [1].
В работе было использовано несколько видов кроссинговера – двухточечный и на основе золотого сечения.
При использовании данных операторов могут появиться нереальные решения, в нашем случае это гомологичные хромосомы. В работе была введена функция, предотвращающая данную проблему.
Реализация кроссинговера проста:
1) Выбирается точка разрыва
2) Далее происходит обмен участками до точки разрыва;
3) После точки разрыва
происходит пошаговое
Пример: пусть l= 10, а точка разреза установлена после 5-го элемента
А : {0, 2, 1, 3, 4 | 6, 5, 6, 7, 8, 9} А’: {0, 2, 1, 3, 4 | 0, 2, 7, 9, 8}
B : {3, 4, 1, 6 , 5 | 0, 2, 7, 9, 8} B’: {3, 4, 1, 6 , 5 | 6, 5, 6, 7, 8, 9}
В данном примере
видно, что полученные
После выполнения кроссинговера получается новый вариант распределения рабочих и работ, закодированный в хромосомах потомков.
Учитывая специфику
Также возможно применение упорядоченного кроссинговера отдельно для левой и правой частей хромосом.
3.4 Оператор мутации
Оператор мутации – это языковая конструкция, позволяющая на основе преобразования родительской хромосомы (или ее части) создавать хромосому потомка [1].
Каждый индивид в течение
жизни подвергается воздействиям внешней
среды. Под влиянием этих воздействий
происходит разрыв хромосом. В большинстве
случаев фрагменты снова
То есть мутация – это
генетическое изменение, приводящее к
качественно новому проявлению основных
свойств генетического
- точечные;
- хромосомные перестройки;
- инверсии.
В работы были использованы следующие операторы мутации: инверсная, двухточечная и на основе золотого сечения.
4 Разработка программного продукта
Алгоритм, описанный выше, был реализован на языке Java, в среде NetBeans 6.8.
На рисунке 2 представлен интерфейс программы. Данные работы алгоритма отображены в консоли.
Рисунок 2 Интерфейс программы
На рисунке видны поля для заполнения начальных параметров алгоритма:
- Количество работников и рабочих мест;
- Размер начальной популяции;
- Количество генераций;
- Вероятность кроссинговера и мутации.
Так же в интерфейсе представлена наглядная иллюстрация решения на графе. Вершины графа это группы людей и группы работ. Соответственно соединенные вершины графа представляют собой лучшее решение данной задачи.
Рисунок 3 Графовое решение
5 Экспериментальное исследование результатов
Для анализа работы алгоритма необходимо исполнить несколько серий экспериментов отличающихся размером начальной популяции и количеством генерации.
- Начнем с небольшой размерности матрицы. Допустим, количество групп людей и рабочих мест 20, мощность начальной популяции - 50, количество итераций – 50.
Таблица 1
Результаты экспериментальных исследований
Вероятность |
Результат – ЦФ на итерации |
Лучшее значение ЦФ | |||
Кроссинговера |
Мутации |
10 |
20 |
50 | |
0.5 |
0.5 |
525 |
721 |
515 |
587 |
0.7 |
0.5 |
784 |
758 |
665 |
735,6 |
0.5 |
0.7 |
800 |
764 |
575 |
713 |
0.7 |
0.7 |
778 |
761 |
634 |
724,3 |
0.9 |
0.9 |
641 |
743 |
726 |
703,3 |
Анализируя полученные результаты можно прийти к выводу, что наилучшими значениями вероятностей оказались {0.5, 0.5}.
- Увеличим значения входных данных.
Допустим, количество групп людей и рабочих мест 100, мощность начальной популяции - 100, количество итераций – 50.
Таблица 2
Результаты экспериментальных исследований
Вероятность |
Результат – ЦФ на итерации |
Среднее значение | |||
Кроссинговера |
Мутации |
10 |
20 |
50 | |
0.5 |
0.5 |
754 |
658 |
725 |
712,3333 |
0.7 |
0.5 |
721 |
752 |
712 |
728,3333 |
0.5 |
0.7 |
698 |
525 |
614 |
612,3333 |
0.7 |
0.7 |
745 |
652 |
744 |
713,6667 |
0.9 |
0.9 |
698 |
740 |
721 |
719,6667 |
При таком наборе начальных условий достаточно хороший результат был получен и при вероятностях {0.5,0.7}.
- Теперь возьмем достаточно большой размер начальной популяции
Допустим, количество групп людей и рабочих мест 150, мощность начальной популяции - 2000, количество итераций – 50.
Таблица 3
Результаты экспериментальных исследований
Вероятность |
Результат – ЦФ на итерации |
Среднее значение | |||
Кроссинговера |
Мутации |
10 |
20 |
50 | |
0.5 |
0.5 |
4521 |
4152 |
5424 |
4699 |
0.7 |
0.5 |
3698 |
4165 |
2888 |
3583,667 |
0.5 |
0.7 |
3254 |
2547 |
2145 |
2648,667 |
0.7 |
0.7 |
3989 |
5844 |
2999 |
4277,333 |
0.9 |
0.9 |
3678 |
2989 |
2664 |
3110,333 |
При таком наборе начальных условий достаточно хороший результат был получен и при вероятностях {0.5,0.7}.
После проведения опытов, один из них я представила в виде графика зависимости значения ЦФ от итерации.
Рисунок 4
6 Заключение.
Перед выполнением данной
курсовой работы ставились задачи исследования
генетического алгоритма, подтверждение
рациональности его использования
и решение практической задачи. Рассматриваемая
задача в курсовой работе – задача
о назначениях. Она может быть
решена многими традиционными
В проекте был реализован простой генетический алгоритм, решающий данную задачу и улучшающий ее решение. Работа была основана на выполнении цикла лабораторных работ, и является логически завершенным проектом. Выполнение алгоритма основано на использовании операторов кроссинговера, мутации, селекции для поиска оптимального решения.
Таким образом, основываясь на экспериментальные данные, можно сделать вывод ГА работает оптимально с большим объемом данных, показывает необходимые результаты быстро и точно. И в завершении работы стоит отметить перспективность использования таких алгоритмов. Они могут позволить быстро и качественно оптимизировать решения из-за основных отличий и преимуществ перед традиционными алгоритмами.
7 Список использованной литературы
- Л.А. Гладков, В.М. Курейчик, В.В. Курейчик. Генетические алгоритмы. – Ростов-на-Дону: ООО «Ростиздат», 2004г.
- Курейчик В.М. Генетические алгоритмы и их применение: Монография. – Таганрог: Изд-во ВГТУ, 2002г.
- Хорстман Г, Корнелл Дж. JAVA. Библиотека профессионала. – Москва: Изд-во «Вильямс», 2007г.
- Курейчик В.М . Генетические алгоритмы решения экстремальных задач. – Воронеж: Изд-во ВГТУ, 1995г.

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