Введение 3
Глава 1. Обзор транспортных задач. Актуальность задачи
коммивояжера 5
1.1. Транспортные задачи 5
1.2. Постановка задачи коммивояжера 7
Глава 2. Алгоритмы решения задачи коммивояжера 8
2.1. Метод полного перебора 8
2.2. Метод ближайшего соседа 11
2.3. Усовершенствованный метод ближайшего соседа 15
2.4. Метод ветвей и границ 18
Глава 3. Моделирование загруженности транспортной сети .. 25
3.1. Дорожные заторы (пробки) 25
Глава 4. Сравнительный анализ эвристических методов решения задачи коммивояжера 29
4.1. Разработка скрипта для параллельных генерации и вычислений
алгоритмов 29
4.2. Способ генерации матриц времен для задачи коммивояжера в
условиях городского цикла 31
4.3. Сравнительный анализ эвристических методов решения задачи
коммивояжера 32
Выводы 37
Заключение 38
Список литературы 40
Приложение
В жизни современных предприятий самого разного рода существенное место занимают транспортные потоки: для каждой компании актуален вопрос о своевременной доставке товара потребителям в кратчайшие сроки. Для осуществления этого руководство компании, по сути, занимается решением так называемой задачи коммивояжера.
Представим себе ситуацию, в том или ином виде возникающую на любом предприятии, которое специализируется на доставке товаров и грузов. Допустим, курьеру компании необходимо развезти продукцию в определенное число мест и вернуться в офис. Задача формулируется следующим образом: определить в каком порядке курьер должен посещать клиентов, чтобы дорога заняла наименьшее время (все пункты посещаются один раз).
Задача коммивояжера в такой постановке является NP-трудной. Это означает, что не существует алгоритма, который находил бы точное решение задачи коммивояжера за полиномиальное время. Единственным же алгоритмом, который в принципе может гарантировать нахождение точного решения, является метод полного перебора. Однако работа программы, реализующей этот алгоритм, занимает адекватное время только при очень малой размерности входных данных (при числе пунктов < 20).
В связи с отсутствием эффективных точных методов решения задачи коммивояжера, становится необходимым использование методов эвристических. Эвристическими называют методы, которые будучи основанными на некой эвристике (правиле), не всегда следующей из строгих математических принципов, в подавляющем большинстве случаев дают решение, близкое к точному.
Таким образом, ставится следующая цель: исследовать различные эвристические методы решения задачи коммивояжера и оценить качество полученного решения для задач с различным числом посещаемых пунктов.
Для реализации поставленной в работе цели ставятся следующие задачи:
• изучить единственный точный метод решения задачи коммивояжера - метод полного перебора,
• исследовать некоторые эвристические алгоритмы,
• программно реализовать их,
• проанализировать время и результаты работы программных реализаций алгоритмов,
• улучшить алгоритмы, если это возможно,
• разработать способ учета изменяющейся дорожной обстановки в методах,
• разработать способ генерации входных данных для задачи коммивояжера с учетом специфики постановки задачи,
• организовать возможность параллельной работы методов на разных экземплярах задач,
• сравнить время и результаты работы программных реализаций усовершенствованных алгоритмов с исходными.
Поставленные в данной работе цели и задачи были успешно выполнены:
• изучена литература, посвященная задаче, отмечены основные направления современных исследований в данной области;
• изучен метод полного перебора; показано, что он не может успешно применяться на практике ввиду быстрого роста времени работы его программной реализации при увеличении количества посещаемых пунктов;
• подробно описаны метод ближайшего соседа и метод ветвей и границ, проиллюстрированы шаги работы алгоритмов, приведены их логические схемы, оба метода успешно реализованы на языке C++;
• на основе широкой выборки сгенерированных матриц построены сравнительные таблицы и графики, на основании которых были сделаны выводы о полезности применения алгоритмов на практике;
• произведено усовершенствование метода ближайшего соседа путем введения в рассмотрение фиктивных стартовых пунктов; на основании применения усовершенствованного метода к различным экземплярам задачи, сделан вывод о том, что эффективность метода повысилась;
• разработана модель учета изменения дорожной ситуации, проведена демонстрация работы модели на примере;
• разработан удобный способ генерации входных данных, обоснована его
адекватность специфике рассматриваемой постановки задачи;
разработан скрипт, позволяющий генерировать входные данные и осуществлять программное решение задачи одновременно для нескольких экземпляров задачи.
Результаты проделанной работы докладывались и публиковались на конференциях с международным участием, проводимых Санкт-Петербургским государственным университетом и Санкт-Петербургским политехническим университетом Петра Великого, а так же на международной научно-исследовательской конференции «INFO-эксперт»- 2016. Статья «Один из способов моделирования дорожной ситуации для решения задачи коммивояжера в условиях города» была отмечена дипломом победителя II-ой степени в номинации «Computer science - IT- эксперт» на международной научно-исследовательской конференции «ЮТО-эксперт»-2016.
1. Большакова Е. И., Мальковский М. Г., Пильщиков В. Н. Искусственный
интеллект. Алгоритмы эвристического поиска [Электронный ресурс] // Учебная литература факультета ВМК МГУ. URL:
http://recyclebin.ru/BMK/II/ii.html(дата обращения: 08.10.2015).
2. Бронштейн Е. М., Заико Т. А. Детерменированные оптимизационные задачи транспортной логистики // Автоматика и телемеханика, 2010. №10. С. 133-147.
3. Вишняков П.О. Планирование маршрутов с использованием модифицированного метода «ближайшего соседа» //Математические методы в технике и технологиях - ММТТ. 2014. № 6 (65). С. 63-67.
4. Гладков Л.А., Баринов С.В., Разработка новых подходов к решению
транспортной задачи с использованием геоинформационных технологий // Известия ТРТУ. Тематический выпуск
«Интеллектуальные САПР», 2009. №2. С. 141-144.
5. Гладков Л.А., Гладкова Н.В. Особенности использования нечетких генетических алгоритмов для решения задач оптимизации и управления // Известия ЮФУ. Технические науки. 2009. № 4 (93). С. 130-136.
6. Гончарова А.Б., Поборчий И.В. Исследование методов решения задачи коммивояжера при управлении транспортными потоками предприятия // Процессы глобальной экономики: Сборник научных трудов XX Всероссийской научно-практической конференции с международным участием. СПб.: Издательство Политехнического университета, 2015. С. 318-324.
7. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Р., Штайн К. Алгоритмы. Построение и анализ. 2 изд. М.: Вильямс, 2012. 1296 с.
8. Костюк Ю. Л. Эффективная реализация алгоритма решения задачи коммивояжера методом ветвей и границ // Прикладная дискретная математика. Вычислительные методы в дискретной математике, 2010.
№2 (20). С. 78-90.
9. Курейчик В.В., Курейчик В.М. Генетический алгоритм определения пути коммивояжера // Известия Российской академии наук. Теория и системы управления. 2006. № 1. С. 94-100.
10. Курейчик В.М., Кажаров А.А. Муравьиные алгоритмы для решения транспортных задач. // Известия РАН. Теория и системы управления. - 2010. № 1. С. 32-45.
11. Левитин А. В. Алгоритмы: введение в разработку и анализ. М.: Вильямс, 2006. 576 с.
12. Маций О.Б. Повышение точности симметричной задачи класса коммивояжера большой размерности // Вестник Харьковского национального автомобильно-дорожного университета. 2011. № 55. С. 100-102.
13. Мудров В. И. Задача о коммивояжёре. М.: Знание, 1969. 62 с.
14. Пекарская С.С. Расчёт весовых коэффициентов для нахождения кратчайшего по времени пути // Сборник докладов Всероссийской научно-практической конференции «Современные техника и технологии», Томск, 2012.
15. Пекарская С.С. Построение рационального маршрута при решении задач транспортной логистики с учетом нагрузки в дорожной сети // Сборник «Перспективы развития информационных технологий» Труды Всероссийской молодежной научно-практической конференции. Кузбасский государственный технический университет имени Т.Ф. Горбачева, Международный научно-образовательный центр КузГТУ- Arena Multimedia. 2014. С. 382-383.
16. Седжвик Р. Фундаментальные алгоритмы на C++. Части 1-4. Анализ. Структуры данных. Сортировка. Поиск = Algorithms in C++, СПб: ДиаСофт, 2002. 688 с.
17. Ураков А.Р., Михтанюк А.А. Оценка количества вариантов обхода в задаче коммивояжера с дополнительными условиями //Глобальный
научный потенциал, 2012. № 21. С. 82-86.
18. Хухрянская Е.С., Юдина Н.Ю., Ющенко Е.В. Анализ возможностей
применения методов теории расписаний к задачам
деревообрабатывающих производств и их формализация //
Лесотехнический журнал. 2011. № 3. С. 37-40.
19. Bang-Jensen J., Gutin G., Yeo A. When the greedy algorithm fails // Discrete Optimization. 2004 Vol. 1, No 2. P. 121-127.
20. Berbeglia G., Cordeau J.F., Gribkovskaia I., Laporte G. Static pickup and delivery problems: A classification scheme and survey // TOP. 2007. V. 15. No 1. P. 1-31.
21. M. Dorigo, V. Maniezzo & A. Colorni. Ant System: optimization by a colony of cooperating agents // IEEE transactions on systems, man, and cybernetics-part B. 1996 No. 26 (1). P. 29-41.
22. Gutin G., Jakubowicz H., Ronen, Sh., Zverovitch A. Seismic vessel problem, Communications in DQM, 2005 No. 8. P. 13-20.
23. Hahsler M., Hornik K. TSP - Infrastructure for the traveling salesperson problem // Journal of statistical software, 2007 No. 23 (2). P. 1-21.
24. Kellerer H., Pferschy U., Pisinger D. Knapsack problems. // Springer-Verlag, 2003. 548 с.
25. Land A. H., Doig A. G. An automatic method of solving discrete programming problems // Econometrica. 1960 Vol. 28. P. 497-520.
26. Little J. D. C., Murty K. G., Sweeney D. W., Karel C. An algorithm for the traveling salesman problem // Operations Research. 1963 Vol. 11, No 6. P. 972-989.
27. Paar C., Pelzl J. Understanding cryptography: a textbook for students and practitioners. Berlin: Springer, 2010. 372 c.
28. Parragh S., Doerner K., Hartl R. A survey on pickup and delivery problems. Part II: Transportations between customers and depot // J. Betriebswirtschaft. 2008. V. 58. No 2. P. 81-117.