2009
ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА_________________
Математика. Механика. Информатика Вып. 3(29)
УДК 534.870
Сравнение генетических алгоритмов на примере задачи коммивояжера
Е. Ю. Данилова, А. Ю. Городилов
Пермский государственный университет, 614990, Пермь, ул. Букирева, 15
Описаны схемы кодирования и операторы для двух конкретных генетических алгоритмов. Представлены результаты их сравнения на примере задачи коммивояжера. Для этих алгоритмов собраны статистические данные по решению генерируемых случайным образом графов. На основе полученных данных подобраны оптимальные параметры генетических алго-
ритмов.
1. Введение
Данная статья посвящена сравнению двух генетических алгоритмов (ГА) на примере задачи коммивояжера - задачи нахождения минимального гамильтонова цикла в графе.
Задача коммивояжера является NP-полной, т.е. ее точное решение можно получить в общем случае только полным перебором. Такие алгоритмы требуют больших вычислительных ресурсов. Можно оценить количество операций, необходимое для полного перебора всех возможных решений п-вершинного полного графа. Гамильтонов цикл однозначно описывается перестановкой из п элементов. Поэтому полный перебор подразумевает перебор всех возможных перестановок. Но при этом следует учесть, что при изменении начальной вершины (при сдвиге перестановки) решение остается одним и тем же, т.е. нужно перебирать все перестановки, начинающиеся с одного числа, например с 1. Отсюда очевидно, что количество всевозможных перестановок составляет (п-1)!.
Для быстрого получения ответа используются стохастические и эвристические методы. Эти методы не являются точными, при их
© Е. Ю. Данилова, А. Ю. Городилов, 2009
использовании, как правило, получаются приближенные ответы. Насколько точным будет решение задачи, зависит от самого метода, от графа, на котором строится решение, и от различных случайных факторов.
При стохастических методах решение задачи генерируется случайным образом. При благоприятном исходе генерации получается достаточно точный ответ.
Примером эвристического метода могут служить генетические алгоритмы.
2. Постановка задачи
Генетические алгоритмы, построенные для одной задачи, различаются, прежде всего, способами кодирования. Из способа кодирования, т.е. вида генотипа, проистекают виды скрещивания и мутации.
Естественно, ГА применяются только в тех случаях, когда нахождение точного решения затруднено или даже невозможно. Поэтому при получении некоторого ответа в результате работы ГА, как правило, сложно сказать, насколько он приближен к правильному ответу. Отсюда возникает вопрос, при каких параметрах генетический алгоритм работает наилучшим образом. И если есть несколько генетических алгоритмов, решающих одну и
ту же задачу, то какой из них решает эту задачу лучше.
Основной целью статьи будет сравнение двух генетических алгоритмов на разных видах графов с различными наборами параметров. Поскольку генетические алгоритмы -достаточно молодое направление и такое сравнение алгоритмов не проводилось ранее, подобное исследование является актуальным.
Для достижения поставленной цели нужно решить несколько алгоритмических задач:
- Генерация тестов - графов, на которых будут испытываться ГА.
- Реализация классического ГА для задачи коммивояжера.
- Реализация альтернативного ГА для задачи коммивояжера.
- Реализация поиска точного решения для проверки результатов.
3. Описание и реализация алгоритмов
Не будем подробно останавливаться на генерации тестов и алгоритме поиска точного решения, хотя они и имеют свои особенности.
Кратко опишем схему кодирования решений в классическом ГА.
3.1. Классический генетический алгоритм
Пусть дана некоторая перестановка
( 1 2
s =
Л
є £ из п элементов,
чРі Р2 ^ Рп )
обозначающая последовательность прохождения вершин графа размерности п. Очевидно, что ее можно представить в виде р1, р2, ..., рп. Для получения кода перестановки выписывается последовательность чисел от 1 до п. Обозначим ее К. Далее закодированный цикл будет составляться следующим образом: выбирается очередной элемент подстановки 5, находится его номер в последовательности К и записывается в закодированный цикл.
Из последовательности К число подстановки 5 вычеркивается. Так продолжается до тех пор, пока не будут вычеркнуты все числа или, что то же самое, не будут пройдены все числа в перестановке.
Обратное преобразование проводится аналогично: выписывается последователь-
ность чисел от 1 до п. Очередной элемент за-
кодированного цикла - это номер числа в этой последовательности.
Найденное число записывается в гамильтонов цикл и вычеркивается из последовательности. Такое кодирование позволяет ввести стандартные операторы скрещивания и мутации.
Оператор выбора основывается на принципе рулетки.
Оператор скрещивания. Выбираются две родительские особи и точка (точки) разрыва. Точки разрыва делят родителей на 2 и более частей. Первый потомок получает первую часть от первой родительской особи, вторую - от второй, третью - от первой и т.д. Второй - наоборот: первую часть - от второй родительской особи, вторую - от первой, третью - от второй и т.д.
Оператор мутации. Выбирается особь, над которой будет проводиться мутация. В ней случайным образом выбирается мутирующий ген и новое значение гена после мутации. Пусть мутирует /-й ген и новое значение гена равно Ь/, тогда должно выполняться неравенство: Ь/ < п - / + 1. В этом случае при раскодировании получится перестановка из п элементов.
3.2. Альтернативный генетический алгоритм
В альтернативном ГА используется промежуточное представление [2].
Промежуточное представление основано на квадратной матрице порядка п. Эта матрица является матрицей ценностей для полного двудольного графа, в каждой доле которого находится по п вершин (Кпп). Каждый элемент матрицы обозначает вес ребра, соединяющего соответствующие вершины. В таком графе обязательно присутствует совершенное паросочетание.
Паросочетание - это набор независимых, т.е. попарно несмежных, ребер [5]. Максимальное паросочетание - это паросочета-ние, мощность которого нельзя увеличить. Совершенным паросочетанием для п-вершинного графа называется максимальное паросочетание, содержащее все вершины графа. Для графа Кпп это 2п вершин.
Любое паросочетание легко переводится в подстановку: если упорядочить паросочета-ние по вершинам левой доли, то номера вер-
шин правой доли составят перестановку из п элементов.
Но в полном двудольном графе присутствует п! совершенных паросочетаний. Если брать их произвольно, то результат перехода от промежуточного представления к перестановке будет недетерминированным. Поэтому в качестве перестановки, описывающей гамильтонов цикл, используется совершенное паросочетание минимальной стоимости. Задача нахождения совершенного паросочета-ния минимальной стоимости - это задача о назначениях. Ее можно решить с помощью венгерского алгоритма [1], находящего правильный ответ за полиномиальное время.
Пример преобразования промежуточного представления в перестановку.
М Пусть дана матрица ценностей 4x4:
' 1 4 4 3Л
2 7 6 8 .
4 7 5 6
V 2511,
В результате работы венгерского алгоритма будет получен следующий результат: (1, 2), (2, 1), (3, 3), (4, 4). То есть перестановка будет иметь вид 2 1 3 4 ►
В качестве отдельных генов промежуточного представления можно рассматривать строки матрицы.
Очевидно, что матрица, задающая граф, является числовой матрицей и к ней можно применить все стандартные генетические операторы.
Оператор выбора основывается на принципе рулетки.
Оператор скрещивания. В рассматриваемом случае можно применить любой стандартный оператор. Рассмотрим подробнее, как будет работать одноточечный оператор скрещивания. Пусть в качестве родителей выступают две матрицы, точкой разрыва является р. Тогда первый потомок получит строки первого родителя с первой по р-ю, второго родителя - с р+1 по п-ю. Второй потомок -наоборот.
Оператор мутации. В качестве оператора мутации можно использовать стандартный оператор обмена. Вначале определяются два случайных числа р1 и р2 в диапазоне [1...Л], где N - это размерность матрицы. За-
тем в матрице, которая подвергается мутации, меняются местами строки с номерами р1 и р2 [2].
4. Анализ результатов
Для сравнения двух генетических алгоритмов была собрана статистика работы алгоритмов на группе графов с использованием нескольких различных комбинаций параметров ГА. Комбинация параметров ГА в дальнейшем будет называться "тестом".
Исследование были проведены на группе из 10 графов с применением 60 тестов. Параметры генератора графов:
о количество вершин - 10;
о максимальная длина дуги - 10;
о гамильтонов цикл есть обязательно;
о граф - ненаправленный;
Из сводных таблиц результатов можно сделать некоторые выводы об оптимальности параметров для данных ГА:
1. Малые величины мутации (0 или 1) приводят, как правило, к плохим результатам. Вероятности мутации, дающие наилучший результат, - 3, 4 или 5.
2. Последняя смена лучшей особи может происходить даже в последней популяции.
3. Размер популяции в 30-40 особей более предпочтителен, чем меньший размер.
4. Влияние количества скрещиваемых пар на эффективность ГА выделено не было.
5. Влияние уникальности особи на эффективность ГА выделено не было.
6. Мутация лучшей особи отражается на конечном результате крайне негативно.
7. На 6 графах из 10 для альтернативного генетического алгоритма и на 4 из 10 для классического были достигнуты точные результаты.
Кроме данных результатов о параметрах ГА можно сделать следующие заключения:
1. На 8 графах из 10 наихудшее значение для альтернативного ГА ниже, чем наихудшее значение для классического ГА.
2. На 2 графах и классический, и альтернативный ГА достигли точного решения. Еще на 2 графах классический ГА нашел более точное решение задачи коммивояжера, чем альтернативный, в остальных случаях альтернативный ГА получил меньшее значение гамильтонова цикла, чем классический.
3. Альтернативный генетический алго- Запишем отклонения трех лучших ре-
ритм работает значительно медленнее класси- зультатов от точного решения для классиче-ческого. ского и альтернативного ГА на всех графах:
Отклонения результатов работы алгоритмов от точного решения
№ Т КГА КГА КГА АГА 1(% ) АГА 2(% ) АГА
Р 1(%) 2(%) 3(%) 3(%)
1 20 15.00 20.00 25.00 5.00 15.0 0 20.00
2 23 13.04 17.39 21.74 0.00 8.70 13.04
3 17 0.00 17.65 29.41 17.6 5 29.4 1 35.29
4 24 4.17 8.33 12.50 0.00 4.17 8.33
5 29 3.45 6.90 10.34 0.00 3.45 6.90
6 21 9.52 14.29 19.05 4.76 14.2 9 19.05
7 28 0.00 3.57 7.14 3.57 7.14 10.71
8 35 0.00 2.86 8.57 0.00 2.86 8.57
9 31 0.00 3.23 9.68 0.00 3.23 6.45
10 26 3.85 7.69 11.54 0.00 3.85 7.69
Примечание: тический алгоритм. шение.
ГА - классический генетический алгоритм, АГА - альтернативный гене-1 - наилучший результат, 2 - второй результат, 3 - третий. ТР - точное ре-
Ниже приведены некоторые графики, иллюстрирующие развитие популяций.
Пример 1. Граф 2, тест 29, альтернативный ГА.
Рис. 1. Изменение средней длины цикла в зависимости от номера популяции. АГА, граф 2, тест 29
Рис. 2. Изменение длины цикла лучшей особи в зависимости от номера популяции. АГА, граф 2, тест 29
Пример 2. Граф 3, тест 18, классический ГА
мости от номера популяции. КГА, граф 3, тест 18
Рис. 4. Изменение длины цикла лучшей особи в зависимости от номера популяции. КГА, граф 3, тест 18
Из графиков можно сделать вывод, что средняя длина цикла по популяции уменьшается, хотя происходит это достаточно медленно. Скачки вверх объясняются происходящими мутациями, которые ухудшают особи.
Список литературы
1. Асанов М.О. Дискретная математика: графы, матроиды, алгоритмы / М.Ю.Асанов, В.А.Баранский, В.В.Расин. Екатеринбург, 2001. 408 с.
2. Городилов А.Ю. Применение генетических алгоритмов к задаче криптоанализа перестановочного шифра: дис. ... магистр прикладной математики и информатики / А.Ю.Городилов. Пермь, 2007. 72 с.
3. Исаев С. Популярно о генетических алгоритмах. [ИТМЬ]
(http://algolist.manual.ru/ai/ga/ga1.php).
4. Кормен Т. Алгоритмы. Построение и анализ / Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн. М.: Вильямс, 2005. 1290 с.
5. Харари Ф. Теория графов / Ф.Харари. М.: Мир, 1973. 300 с.
6. Цой Ю. Генетические алгоритмы. Введение. [ИТМЬ]
(http://www.qai.narod.ru/GA/intro.html)
7. Яминов Б. Генетические алгоритмы. [ИТМЬ]
(http://rain.ifmo.ru/cat/view.php/theory/un
Comparing two genetic algorithms by example of traveling salesman problem
E. Yu. Danilova, A. Yu. Gorodilov
Perm State University, 614990, Perm, Bukirev st., 15
In this article representation schemes and genetic operators are described for two genetic algorithms. These algorithms are compared by example of traveling salesman problem. Statistics are collected on basis of randomly generated graphs. Optimal parameters for genetic algorithms are suggested on basis of received statistics.