Научная статья на тему 'Сравнение путевого и порядкового подходов при решении задачи коммивояжёра модифицированной моделью Голдберга'

Сравнение путевого и порядкового подходов при решении задачи коммивояжёра модифицированной моделью Голдберга Текст научной статьи по специальности «Математика»

CC BY
188
20
Поделиться
Ключевые слова
ЗАДАЧА КОММИВОЯЖЁРА / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ГЕН / ПОРЯДКОВОЕ ПРЕДСТАВЛЕНИЕ / ПУТЕВОЕ ПРЕДСТАВЛЕНИЕ / КРОССОВЕР / УПОРЯДОЧЕННЫЙ КРОССОВЕР / ИЗМЕНЁННЫЙ КРОССОВЕР / МУТАЦИЯ / ЖАДНАЯ МУТАЦИЯ / TRAVELLING SALESMAN PROBLEM / GENETIC ALGORITHM / GENE / ORDINAL REPRESENTATION / TRACK REPRESENTATION / CROSSOVER / ORDERED CROSSOVER / MODIFIED CROSSOVER / MUTATION / GREEDY MUTATION

Аннотация научной статьи по математике, автор научной работы — Кобак Валерий Григорьевич, Жуковский Александр Георгиевич, Пешкевич Алексей Андреевич

Рассмотрено сравнение использования порядкового и путевого подходов при решении задачи коммивояжёра модифицированной моделью Голдберга. Для порядкового представления используются обычный кроссовер и мутация. Для путевого представления используются изменённый кроссовер и обычная мутация и упорядоченный кроссовер и жадная мутация. Для решения задачи коммивояжёра указанными способами реализовано программное средство, с помощью которого получены результаты и сделан вывод о том, что различные подходы при решении позволяют получить оптимальное или субоптимальное решение для графов со средним количеством вершин.

Похожие темы научных работ по математике , автор научной работы — Кобак Валерий Григорьевич, Жуковский Александр Георгиевич, Пешкевич Алексей Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

COMPARING PATH AND ORDINAL APPROACHES TO SOLVING THE TRAVELING SALESMAN PROBLEM A MODIFIED MODEL OF GOLDBERG

In the article the comparison of the use of ordinal and path approaches to solve the traveling salesman problem a modified model of Goldberg. For ordinal representation using conventional crossover and mutation. For path representation is used, the modified crossover and conventional mutation and orderly greedy crossover and mutation. For solving travelling salesman problem by these means is implemented by a software tool by which the results and concluded that different approaches in the solution allow to obtain an optimal or suboptimal solution for graphs with a moderate number of vertices.

Текст научной работы на тему «Сравнение путевого и порядкового подходов при решении задачи коммивояжёра модифицированной моделью Голдберга»

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ INFORMATICS, COMPUTER ENGINEERING AND CONTROL

УДК 519.87:004 DOI: 10.17213/0321-2653-2017-1-3-7

СРАВНЕНИЕ ПУТЕВОГО И ПОРЯДКОВОГО ПОДХОДОВ ПРИ РЕШЕНИИ ЗАДАЧИ КОММИВОЯЖЁРА МОДИФИЦИРОВАННОЙ МОДЕЛЬЮ ГОЛДБЕРГА

COMPARING PATH AND ORDINAL APPROACHES TO SOLVING THE TRAVELING SALESMAN PROBLEM A MODIFIED MODEL OF GOLDBERG

© 2017 г. В.Г. Кобак, А.Г. Жуковский, А.А. Пешкевич

Кобак Валерий Григорьевич - д-р техн. наук, профессор, Донской государственный технический университет, г. Ростов на Дону, Россия. E-mail: valera33305@ mail.ru

Жуковский Александр Георгиевич - д-р полит. наук, профессор, канд. техн. наук, доцент, Донской государственный технический университет, г. Ростов на Дону, Россия. E-mail: zhykovskij@ mail.ru

Kobak Valery Grigorievich - Doctor of Technical Sciences, professor, Don State Technical University, Rostov-on-Don, Russia. E-mail: valera33305@ mail.ru

Zhukovskiy Alexander Georgievich - Doctor of Political Sciences, professor, Candidate of Technical Sciences, assistant professor, Don State Technical University, Rostov-on-Don, Russia. E-mail: zhykovskij@ mail.ru

Пешкевич Алексей Андреевич - магистрант, Донской госу- Peshkevich Alexey Andreevich - Undergraduate student, Don дарственный технический университет, г. Ростов-на-Дону, State Technical University, Rostov-on-Don. Russia. E-mail: Россия. E-mail: alexschume@mail.ru alexschume@mail.ru

Рассмотрено сравнение использования порядкового и путевого подходов при решении задачи коммивояжёра модифицированной моделью Голдберга. Для порядкового представления используются обычный кроссовер и мутация. Для путевого представления используются изменённый кроссовер и обычная мутация и упорядоченный кроссовер и жадная мутация. Для решения задачи коммивояжёра указанными способами реализовано программное средство, с помощью которого получены результаты и сделан вывод о том, что различные подходы при решении позволяют получить оптимальное или субоптимальное решение для графов со средним количеством вершин.

Ключевые слова: задача коммивояжёра; генетический алгоритм; ген; порядковое представление; путевое представление; кроссовер; упорядоченный кроссовер; изменённый кроссовер; мутация; жадная мутация.

In the article the comparison of the use of ordinal and path approaches to solve the traveling salesman problem a modified model of Goldberg. For ordinal representation using conventional crossover and mutation. For path representation is used, the modified crossover and conventional mutation and orderly greedy crossover and mutation. For solving travelling salesman problem by these means is implemented by a software tool by which the results and concluded that different approaches in the solution allow to obtain an optimal or suboptimal solution for graphs with a moderate number of vertices.

Keywords: travelling salesman problem; genetic algorithm; gene; ordinal representation; track representation; crossover; ordered crossover; modified crossover; mutation; greedy mutation.

Введение

В последнее время с усложнением транспортной системы, увеличением товарооборота и развитием сферы услуг повышается интенсивность перевозки товаров и предоставления услуг. Для увеличения количества клиентов и повышения качества функционирования компаний требуется свести к минимуму затраты на транспор-

тировку товаров или услуг. Кроме того, решение данной задачи необходимо во многих областях, связанных с замкнутыми и при этом жестко связанными по времени системами, такими как: конвейерное производство, многооперационные обрабатывающие комплексы, судовые и железнодорожные погрузочные системы, перевозки грузов по замкнутому маршруту, расчет авиационных линий.

Задача коммивояжера является классической задачей комбинаторной оптимизации [1]. Первое упоминание о ней появляется в 1759 г. Смысл задачи состоит в отыскании самого выгодного маршрута, который проходит через требуемые города единожды и затем возвращается в исходный город, т.е. в нахождении кратчайшего гамильтонова цикла в графе [2].

Оптимизационная постановка задачи относится к классу NP-полных задач [3]. NP-полной является такая задача, для решения которой не разработано алгоритмов с полиномиальным временем работы. Однако нет доказательств отсутствия существования такого алгоритма. NP-полные задачи могут быть проверены в течение полиномиального времени. Для задачи поиска гамильтонова цикла с заданным ориентированным графом G = (V, Е), сертификат проверки имел бы вид последовательности (уь у2, у3,..., ^)

из V вершин. В течение полиномиального времени можно проверить, что (у,у-+1 е Е) для I = 1,2,3,..., V-1 и что ,У1)еЕ.

В качестве меры выгодности маршрута может служить суммарное время в пути, суммарная стоимость дороги, или, в простейшем случае, длина маршрута.

Эта задача может быть решена перебором всех вариантов объезда и выбором оптимального. Но проблема в том, что количество возможных маршрутов очень быстро возрастает с ростом п - количества городов (оно равно п! - количеству способов упорядочения пунктов). К примеру, для 100 пунктов количество вариантов будет представляться 158-значным числом. Мощная ЭВМ, способная перебирать миллион вариантов в секунду, будет решать эту задачу на

протяжении примерно 3*10144 лет. Увеличение производительности ЭВМ в 1000 раз даст хоть и меньшее в 1000 раз, но по-прежнему большое время перебора вариантов. Несмотря на то что для каждого варианта маршрута имеется 2* п равноценных, отличающихся выбором начального пункта (п вариантов) и направлением обхода (2 варианта), перебор с учётом этого наблюдения

п! (п-1)!

сокращается незначительно - до -=-

2* п 2

вариантов. Таким образом, задача коммивояжера относится к числу трансвычислительных [4], так как при количестве городов более 66 её невозможно решить методом перебора вариантов, т. е. она находится за пределом Бремерманна [5].

Постановка задачи

Дан граф G = (X,U), где |X| = n - множество вершин (города), |U| = m - множество рёбер

(возможные пути между городами). Дана симметрическая матрица чисел R(i,j), i,jel,2,...,n , представляющих собой веса рёбер (расстояний между вершинами xi и Х-).

Требуется найти перестановку ф из элементов множества X, такую, что значение целевой функции равно [6]:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Fitness (ф)R^(1), ф(п))+Y, ЩфО), ф0' +1))} ^ min .

i

Подходы решения

В работе используются порядковое и путевое представления маршрута в виде хромосомы

[7].

При порядковом представлении маршрут определяется как список из n городов, где i-й элемент списка - номер от 1 до n - i -1. Например, есть упорядоченный список городов, являющийся связью маршрутов и их порядковых представлений. Пусть упорядоченный список такой: C = [1,2,3,4,5]. Маршрут 5 ^ 3 ^ 2 ^ 4 будет представлен как список L = [1,4,2,1,1]. Интерпретация подхода такова:

- Первый номер списка L равен 1, берём первый город из списка C как первый город маршрута (город № 1) и исключаем его из списка. Маршрут на данном этапе это 1.

- Следующий номер в списке L равен 4, поэтому берём четвёртый элемент из оставшегося списка C = [2,3,4,5] и исключаем его из списка. Маршрут на данном этапе это 1 ^ 5 .

- Следующий номер в списке L равен 2, поэтому берём второй элемент из оставшегося списка C = [2,3,4] и исключаем его из списка. Маршрут на данном этапе это 1 ^ 5 ^ 3 .

- Следующий номер в списке L равен 1, поэтому берём первый элемент из оставшегося списка C = [2,4] и исключаем его из списка. Маршрут на данном этапе это 1 ^ 5 ^ 3 ^ 2 .

- Следующий номер в списке L равен 1, поэтому берём первый элемент из оставшегося списка C=[4] и исключаем его из списка. Окончательный маршрут это 1 ^ 5 ^ 3 ^ 2 ^ 4.

Для порядкового представления применяется классический кроссовер генетического алгоритма. В данном кроссовере сначала выбирается точка кроссовера, а затем элементы хромосомы

первого родителя до точки кроссовера перемещаются в хромосому первого потомка, а второго родителя - в хромосому второго потомка. Элементы хромосомы первого родителя после точки кроссовера перемещаются в хромосому второго потомка, а второго родителя - в хромосому первого потомка. Таким образом, формируются хромосомы потомков, содержащие части хромосом каждого из родителей. Например, два родителя P1 = [1,4| 2,1,1] и P2 = [1,113,2,1], обозначающие соответствующие маршруты 1—5 —3 —2 —4 и 1—2 —5 —4 —^3, с точкой кроссовера, обозначенной «|» породят таких потомков: С1 = [1,4,3,2,1] и C 2 = [1,1,2,1,1]. Потомки представляют следующие маршруты: 1 — 5 — 4 — 3 — 2 и 1 — 2 — 4 — 3 — 5 .

Мутация состоит в том, что происходит изменение с вероятностью pm 7-го элемента порядкового представления на случайный номер от 1 до п - 7 -1. Например, в особи Р = [1,4,2,1,1] элемент с 7 = 2 может поменяться на номер от 1 до 2.

Путевое представление определяет маршрут как список городов в порядке следования. Упорядоченный кроссовер берет часть пути одного родителя и сохраняет родственный порядок городов из другого родителя. Первые две точки сечения кроссовера выбираются случайно. Например, Р1 = [1|5,3|2,4] и Р2 = [1|2,5|4,3]. Каждый элемент центральной секции первого родителя копируется в потомка -С1 = [_|5,3|_,_]. Затем элементы второго родителя собираются в список, начиная со второй точки кроссовера - [4,3,1,2,5]. Наконец, города, уже представленные в потомках, удаляются - [4,1,2], и оставшиеся элементы копируются вместо пустых пробелов потомка, начиная со второй точки сечения кроссовера - С1 = [2,5,3,4,1].

При изменённом кроссовере на начальном этапе выбирается точка сечения. Например, Р1 = [1,513,2,4] и Р2 = [1,2| 5,4,3]. Затем первая часть одного родителя копируется в первого потомка - С1 = [1,5,_,_,_], во вторую часть потомка копируются гены второго родителя -С1 = [1,5,4,3,_]. Если какие-то гены уже встречаются в потомке, то они пропускаются, а оставшуюся часть потомка дополняют гены первого родителя - С1 = [1,5,4,3,2]. Для второго потомка алгоритм аналогичен.

Мутация выполняется следующим образом: случайным образом выбираются два города в хромосоме и меняются местами -

P1 = [1,5,3,2,4], второй и четвёртый элементы меняются местами - P1' = [1,2,3,5,4].

«Жадная мутация» состоит в упорядочивании последовательности городов. Такая мутация позволяет искать локальные оптимумы. Сначала случайным образом выбираются две точки сечения в хромосоме так, чтобы между ними было по крайней мере 2 города. Затем последовательность городов между точками сечения упорядочивается: они переставляются в зависимости от близости друг к другу. Например, в хромосоме P1 = [1,5,3,2,4] точками сечения выделяются города 5, 3 и 2. Среди этих городов проводится поиск города, ближайшего к городу 1. Пусть, например, это город 2. Он добавляется в хромосому за городом 1. Потом среди городов 5 и 3 определяется ближайший к городу 2. Пусть, например, это город 5. Добавляем его в хромосому за городом 2. На оставшееся место ставим город 3. Результат мутации - P1' = [1,2,3,5,4].

Алгоритмы решения

Кроме точного метода полного перебора существуют эвристические методы [9], с помощью которых находят не самый эффективный маршрут, а приближённое значение. В их числе следующие методы:

- метод ближайшего соседа;

- метод имитации отжига;

- метод ветвей и границ;

- метод эластичной сети;

- метод генетических алгоритмов;

- алгоритм муравьиной колонии.

По причине того, что задача коммивояжёра с количеством городов больше 66 при использовании метода полного перебора относится к трансвычислительным, принято решение использовать генетический алгоритм (модифицированная модель Голдберга), позволяющий найти субоптимальный путь за полиномиальное время [8].

Вычислительный эксперимент

В рамках сравнения порядкового и путевого подходов при решении задачи коммивояжёра модифицированной моделью Голдберга поставлены вычислительные эксперименты, позволяющие получить статистику решений и оценить эффективность работы алгоритма при разных значениях параметров. Такими параметрами являются: n - количество городов, m - количество особей, vk - вероятность кроссовера, vm - вероятность мутации, first - номер начального пункта, S - количество запусков, term - условие

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

останова, [a,b] - диапазон генерации расстояний для случайной матрицы расстояний. Для решения поставленной задачи реализованы три вариации генетического алгоритма: порядковое представление с единственными кроссовером и мутацией, путевое представление с изменённым кроссовером и обычной мутацией и путевое представление с упорядоченным кроссовером и жадной мутацией.

Для реализации алгоритма использовалась среда разработки Microsoft Visual Studio 2015 и язык программирования C#. Эксперименты проводились на ЭВМ с операционной системой Microsoft Windows 8.1, процессором Intel i7 4790 3.6 ГГц и оперативной памятью DDR3 16 Гб.

Эксперименты проводились на тестовых графах из пакета TSP_LIB [9] Гейдельбергского университета, Гейдельберг, Германия. Первый тестовый граф представляет 29 городов Баварии. Расстояния между городами представлены в виде матрицы расстояний [10], где ai j = aji - расстояние между городами i и j. Также указан кратчайший маршрут с началом в первом городе длиной 2020, который удалось определить разработчикам пакета.

Варьируя значения параметров в программном средстве, находим маршрут длиной 2020, начинающийся в первом городе. Маршрут является корректным. Значения параметров, при которых получен этот маршрут, следующие: количество особей - 500, условие останова - 50, вероятность кроссовера - 0,95, вероятность мутации - 0,95, количество запусков - 100. Маршрут длиной 2020 был получен при использовании вариации генетического алгоритма с путевым представлением, упорядоченным кроссовером и жадной мутацией (среднее время выполнения 0,5 с), а также с изменённым кроссовером и обычной мутацией (среднее время выполнения 1 с). Порядковое представление позволило найти маршрут длиной лишь 2150 со средним временем 1 с. Маршрут из пакета TSP_LIB показан на рис. 1, а лучший маршрут, полученный в результате вычислительного эксперимента, - на рис. 2.

Второй тестовый граф представляет 26 городов, названный fri26. Расстояния между городами представлены в виде матрицы расстояний, где ai j = üj i - расстояние между городами i и j.

Также указан кратчайший маршрут с началом в первом городе, который удалось определить разработчикам пакета. Также указан кратчайший маршрут с началом в первом городе длиной 937, который удалось определить разработчикам пакета.

Рис. 1. Маршрут из пакета TSP_LIB

Рис. 2. Маршрут из эксперимента

Основываясь на полученных результатах для первого графа, используем те же самые параметры алгоритма для второго графа. Маршрут длиной 937 был получен при использовании вариации генетического алгоритма с путевым представлением, упорядоченным кроссовером и жадной мутацией (среднее время решения составило 0,52 с), а также с изменённым кроссовером и обычной мутацией (среднее время решения составило 0,7 с). Маршрут является корректным. Порядковое представление также позволило найти маршрут длиной 937 со средним временем 0,9 с. Маршрут из пакета TSP_LIB показан на рис. 3, а лучший маршрут, полученный в результате вычислительного эксперимента, представлен на рис. 4.

Рис. 3. Маршрут из пакета TSP_LIB

Рис. 4. Маршрут из эксперимента

Выводы

Результаты вычислительного эксперимента демонстрируют эффективность использования модифицированной модели Голдберга для решения задачи коммивояжёра. Различные подходы при решении позволяют получить оптимальное или субоптимальное решение для графов со средним количеством вершин. В ходе исследования было определено, что наиболее эффективным подходом для решения поставленной задачи в случае среднего количества вершин в графе является путевое представление с упорядоченным

кроссовером и жадной мутацией и с изменённым

кроссовером и обычной мутацией.

Литература

1. Задача коммивояжёра // [Википедия] URL: https://ru. wikipedia.org/Задача _коммивояжёра (дата обращения 10.10.2016).

2. Гладков, Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы: учеб. пособие / под ред. В.М. Курейчи-ка. Ростов н/Д.: Ростиздат, 2004. 400 с;

3. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ / под ред. Л.Н. Красножан. М., Вильямс, 2013. 1328 с.

4. Трансвычислительная задача // [Википедия] URL: https://ra.wikipedia.org/wiki/ТрансвьIчислигельная_задача (дата обращения 10.10.2016).

5. Предел Бремерманна // [Википедия] URL: https://ru. wikipedia.org/wiki/Предел_Бремерманна (дата обращения 10.10.2016).

6. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. М.: ФИЗМАТ-ЛИТ, 2003. 432с. ISBN 5-9221-0337-7.

7. Каширина, И.Л. Введение в эволюционное моделирование: учебное пособие / под ред. Е.С. Котляровой. Воронеж: Изд-во ВГУ, 2007. 40 с.

8. Полиномиальное время // [СГУ] URL: http://rain.ifmo. ru/ cat/view.php/theory/algorithm-analysis/np-completeness-2004 (дата обращения 12.10.2016).

9. TSP_LIB. URL: http://comopt.ifi.uni-heidelberg. de/softwa re / TSPLIB95/ (дата обращения 11.10.2016);

10. Матрица расстояний // [Википедия] URL: https://ru. wikipedia.org/wiki/Матрица_расстояний (дата обращения 11.10.2016);

11. Борознов В.О. Исследование решения задачи коммивояжёра. Астрахань: Вестн. АГТУ, 2009.

References

1. Zadacha kommivoyazhera [The travelling salesman problem]. Vikipediya. Available at: https://ru.wikipedia.org/Zadacha _kommivoyazhera (accessed 10.10.2016).

2. Gladkov L.A., Kureichik V.V., Kureichik V.M. Geneticheskie algoritmy [Genetic algorithms]. Rostov-na-Donu, Rostizdat, 2004, 400 p.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Kormen T., Leizerson Ch., Rivest R., Shtain K. Algoritmy: postroenie i analiz [Algorithms: construction and analysis]. Moscow, Vil'yams Publ., 2013, 1328 p.

4. Transvychislitel'naya zadacha [Transcomputational problem]. Vikipediya. Available at: https://ru.wikipedia.org/wiki/Transvychi slitel'naya_ zadacha (accessed 10.10.2016).

5. Predel Bremermanna [Bremermann's limit]. Vikipediya. Available at: https://ru.wikipedia.org/wiki/Predel_Bremermanna (accessed 10.10.2016).

6. Emel'yanov V.V., Kureichik V.V., Kureichik V.M. Teoriya i praktika evolyutsionnogo modelirovaniya [Theory and practice of evolutionary modeling]. Moscow, FIZMATLIT, 2003, 432 p.

7. Kashirina I.L. Vvedenie v evolyutsionnoe modelirovanie [An Introduction to evolutionary simulation: a tutorial]. Voronezh, Izd-vo VGU, 2007, 40 p.

8. Polinomial'noe vremya [Polynomial time]. SGU. Available at: http://rain.ifmo.ru/cat/view.php/theory/algorithm-analysis/np-completeness-2004 (accessed 12.10.2016).

9. TSP_LIB. Available at: http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/ (accessed 11.10.2016).

10. Matritsa rasstoyanii [Distance matrix]. Vikipediya. Available at: https://ru.wikipedia.org/wiki/Matritsa_rasstoyanii (accessed 11.10.2016).

11. Boroznov V.O. Issledovanie resheniya zadachi kommivoyazhera [Investigation of solving the travelling salesman problem]. Astrakhan, Vestnik AGTU, 2009.

Поступила в редакцию 8 декабря 2016 г.