Аннотация 2
ВВЕДЕНИЕ 5
ГЛАВА 1 ОБЗОР СУЩЕСТВУЮЩИХ СПОСОБОВ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА 7
1.1 Транспортные задачи 7
1.2 Общая характеристика задачи коммивояжера 8
1.2.1 Постановка задачи коммивояжера 8
1.2.2 Математическая модель задачи коммивояжера 9
1.3 Современные алгоритмы с помощью которых решается задача коммивояжера 9
1.3.1 Точные алгоритмы 9
1.3.2 Эвристические алгоритмы 10
1.3.3 Поисковые алгоритмы 11
1.4 Положения муравьиного алгоритма для задачи коммивояжера и ее решения 12
ГЛАВА 2 РАЗРАБОТКА ПРИЛОЖЕНИЯ РЕШЕНИЯ ЗАДАЧ КОММИВОЯЖЁРА С ПОМОЩЬЮ МУРАВЬИНОГО АЛГОРИТМА 16
2.1 Постановка требований к приложению 16
2.2 Обоснование выбора технических средств 17
2.3 Разработка архитектуры ПО 21
2.4 Реализация алгоритма 25
2.5 Разработка приложения 27
2.6 Интерфейс приложения 29
2.7 Описание работы приложения 29
2.7.1 Создание графа 29
2.7.2 Работа приложения 31
2.7.3 Получение результатов 34
2.8 Проведение вычислительного эксперимента 34
2.9 Динамика нахождения решений 37
ЗАКЛЮЧЕНИЕ 39
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 40
Приложение А. Relationships-Class Diagram 42
С помощью наглядной демонстрации работы алгоритмов можно обеспечить более высокий уровень методов решения задач оптимизации, чтобы при прохождении вычислительных экспериментов была такая возможность, как не только продемонстрировать работу алгоритма на примере, но и модифицировать алгоритм, позволяя увидеть разницу в решении задачи при использовании различных подходов, а также возможность изменения исходных данных для демонстрации работы одного алгоритма в различных условиях.
Задача коммивояжёра дает возможность получить решение с использованием различных алгоритмов. Одним из наиболее результативных алгоритмов считается алгоритм оптимизации подражанием муравьиной колонии (ant colony optimization) [6].
Задача коммивояжёра считается довольно значимой транспортной задачей, которая занимается планированием транспортных перевозок. Для решения данной задачи требуется определить наиболее лучший маршрут объезда всех городов. Задача коммивояжера может решать проблемы распределения общественного транспорта города, выбор наилучшего пути для проезда курьера и т.п.
Известна одна из программных реализаций муравьиного алгоритма, написанная на языке Java, обеспечивающая наглядное представление о механизме работы алгоритма с возможностью его модификации. Однако это решение не позволяет вносить изменения в исходные данные, а также не обеспечивает достаточного функционала для визуального проектирования графов.
Таким образом, актуальность темы бакалаврской работы обусловлена тем, что даже при наличии большого количества уже реализованных муравьиных алгоритмов необходимо и дальше реализовывать, и улучшать данные алгоритмы для поиска наилучшего результата, т.к. применение автоматизированных систем в области транспортной логистики - один из способов экономии ресурсов.
Данная бакалаврская работа отличается высокой практической значимостью. В ходе его создания была разработана программа, решающая задачу коммивояжера с помощью муравьиного алгоритма, позволяющая сделать процесс выбора оптимального пути наиболее результативным.
Программная реализация и визуализация данного алгоритма позволят проектировать графы и наглядно демонстрировать механизм действия муравьиного алгоритма решения задачи коммивояжёра.
Объект исследования ВКР - задача коммивояжера.
Предмет исследования ВКР - применимость муравьиного алгоритма для решения задачи коммивояжера.
Цель работы - исследование применимости муравьиного алгоритма для решения задачи коммивояжера.
Задачами работы являются:
• реализация алгоритма оптимизации с помощью муравьиного алгоритма;
• разработка муравьиного алгоритма для приложения.
Обзор по главам:
1) Первая глава описывает задачу коммивояжера, ее историю, алгоритмы решения данной задачи, муравьиные алгоритмы, решение задач коммивояжера с помощью муравьиных алгоритмов;
2) Вторая глава - разработка приложения, с помощью которого решается задача коммивояжера с помощью муравьиного алгоритма, описание классов, реализация алгоритма, интерфейс приложения, проведение вычислительного эксперимента.
В рамках бакалаврской работы все цели и задачи выполнены. Было рассмотрены муравьиные алгоритме в задаче коммивояжера, был выделен объект исследования, проанализирована предметная область, определены цели и задачи работы. Проведен анализ существующих алгоритмов для решения задачи коммивояжера и выявлен наиболее подходящий для реализации цели выпускной квалификационной работы.
При анализе задачи коммивояжера было выявлено, что для решения задач бакалаврской работы потребуется написать свою программную реализацию муравьиного алгоритма, а не использовать существующие, так как существующие разработки были сделаны для других конкретных целей, поэтому и наша разработка будет носить такой же характер.
Был спроектирован интерфейс пользователя и использован муравьиный алгоритм.
Алгоритм и интерфейс были реализованы в среде разработки IntelliJ IDEA с использованием языка программирования Java. В ходе выполнения работы реализованы следующие функции:
• ввод пользователем параметров для алгоритма;
• отображение результатов на каждой итерации;
• реализована визуализация муравьиного алгоритма.
Затем, муравьиный алгоритм был применен к задаче коммивояжера, для того что бы найти оптимальный путь прохождения в той или иной задаче.
Итогом бакалаврской работы является разработанный алгоритм и приложение которое решает задачу коммивояжера с помощью муравьиного алгоритма, позволяющая, вручную вводить график, проходить по каждой итерации в задаче. Работа соответствует целям и задачам, которые были поставлены.
1. Майника Э. Алгоритмы оптимизации на сетях и графах // М.: Мир, 1981. - 323 с.
2. Макконнелл, Дж. Основы современных алгоритмов // М.: Техносфера, 2004. - 368 с.
3. Новиков Ф.А. Дискретная математика для программистов // М.: Питер, 2002. - 368 с.
4. Сергеев С.И. Задача коммивояжера. Вопросы теории / И. И. Меламед, И. Х. Сигал // Автомат. и телемех. 1989. - 33 с.
5. Машин Т. JavaFX 2.0. Разработка RIA-приложений // БХБ-Питербург 2012. - 320с.
6. Корте Б. Комбинаторная оптимизация. Теория и алгоритмы // Московский центр непрерывного математического образования 2015. - 720 с.
7. Гуц А.К. Математическая логика и теория алгоритмов // URSS 2016. - 128 с.
8. Штовба С.Д. Муравьиные алгоритмы // [Журнал] Exponenta Pro. 2003. - 49-75с.
9. Панченко Т. В. Генетические алгоритмы: учебно -методическое пособие // Т.В. Панченко. - Астрахань: Изд. дом «Астраханский университет», 2007. - 87 с.
10. Хорстманн К.С. Java. Библиотека профессионала. Том 1. Основы / Гари Корнелл. // Изд-во Addison-Wesley, 2012. - 864 с.
11. Босуэлл Д. Читаемый код, или Программирование как искусство. Полное руководство. // СПб.: Изд-во Питер, 2012. - 208 с.
12. Евтушенко Д.А. Программная реализация муравьиного алгоритма решения задачи коммивояжера. // Тюмень, 2016. - 46-48 с.
13. Муравьиные алгоритмы / Хабр [Электронный ресурс]: Режим доступа: https://habrahabr.ru/post/105302/ - Загл. с экрана - Яз рус., англ - (Дата обращения: 21.05.2018)
14. S. Lin, Computer solutions of the traveling salesman problem [Электронный ресурс] / S. Lin // Bell System Technical Journal. - 1965. - Pages 2245-2269.
15. G.A. Croes, A Method for Solving Traveling-Salesman Problems [Text] / G.A. Croes // Operations Research. - 1958. - Pages 791-812.
...