Аннотация 3 Введение 4 1 Формирование перечня функциональных возможностей приложения 8 1.1 Обзор задачи коммивояжера 8 1.2 Краткое описание постановки задачи 21 1.3 Вывод по разделу 1 23 2 Проектирование веб-приложения визуализации задачи коммивояжера 24 2.1 Постановка задачи. 24 2.2 Выбор инструментария программирования 37 2.3 Описание процессов веб-приложения 44 2.4 Проектирование базы данных 47 2– студент 48 2.1. Вывод по главе 2 49 3 Практическая реализация и результаты работы 51 3.1 Описание алгоритмов работы приложения 51 3.2 Обобщенная блок-схема работы приложения 52 3.3 Алгоритм реализации задачи коммивояжера методом ветвей и границ 54 3.4 Демонстрация функционирования приложения 56 3.5 Анализ полученных результатов 60 3.6 Описание применения программного продукта 63 3.7 Возможности дальнейшего развития решения 64 3.1. Вывод по главе 3 65 Заключение 66 Список литературы 70 Приложение А 76 Приложение Б 80
Томский политехнический университет

Web-приложение для решения и визуализации задачи коммивояжера

дипломная работа
Программирование
75 страниц
78% уникальность
2024 год
26 просмотров
Лолита В.
Эксперт по предмету «Программирование»
Узнать стоимость консультации
Это бесплатно и займет 1 минуту
Введение
Глава 1
Глава 2
Глава 3
Заключение
Список литературы
Большинство людей даже не подозревают, что решают задачу линейного программирования, когда ищут короткий путь из одного места в другое интуитивно. Большинство людей в своей жизни, интуитивно, решает проблему – как, обладая недостаточными средствами, решить задачу с наибольшей эффективностью. Действительно, ресурсы и средства у человека обычно ограничены. Если бы это было не так, наша жизнь, скорее всего, была бы не такой интересной. Задача построения оптимального маршрута, впервые поднятая в 1832 году в книге «Коммивояжер – как он должен вести себя и что должен делать для того, чтобы доставлять товар и иметь успех в своих делах – советы старого курьера», является актуальной и на сегодняшний день. До сих пор продолжаются работы по поиску новых методов, которые могут решать задачи оптимизации с большими данными. Задача коммивояжера применяется в различных областях, таких как планирование, логистика, доставка. Алгоритмы оптимизации применяются в решении других задач, например, таких как: оптимизации производственных процессов, секвенировании ДНК, определении степени схожести двух строк, улучшении дизайна автомобиля, выбора маршрута для обхода нескольких точек с целью поиска рыбы или снятия рыбопродукции. Цель работы – создание web-приложения, которое предоставляет разным типам пользователей простые, но результативные способы визуализации (интерактивную карту и визуализатор алгоритма) в построении оптимально маршрута между точками на карте. Объектом исследования является методы решения задачи коммивояжера. Предмет работы – процесс разработки web-сервиса, реализующий решение и визуализации задачи коммивояжера. В процессе исследования проводились анализ и сравнение способов решения задачи коммивояжера, методы структурного и объектно-ориентированного анализа и проектирования, исследования принципов построения интерактивных карт, изучение способов визуализации и их эффективности, экспериментальные исследования. В результате исследования выяснилось, что самый эффективный алгоритм решения задачи коммивояжера – метод Литтла. Самостоятельно запрограммировать этот метод непросто, но интересно. Визуализация этого метода имеет теоретическое и практическое значение. Сервисы Openrouteservice JavaScript API, OpenLayers – хороший инструмент для реализации интерактивной карты (Достоинства: открытый кодом, обеспечение закрытости информации о действиях пользователей, гибкость для устройств и операционных систем). Алгоритм ветвей и границ сложно визуализировать, сделать «прозрачным» его структуру и последовательность действий. Разработанный сервис может быть интересен путешественниками, пользующимся сервисами сети Интернет, мотивированным студентам, которые хотят детально разобраться в методе Литтла и применить его на практике. Преподаватели различных предметов, изучающие вопросы оптимизации, буду рады воспользоваться данным Интернет-ресурсом для повышения интереса к своему предмету. Для достижения поставленной цели необходимо сформулировать и решить следующие задачи. а) Провести анализ существующих решений. б) Спроектировать функциональные требования, архитектуру, базу данных, интерфейс. в) Выбрать технологии для реализации. г) Выполнить работу по созданию сервиса. д) Протестировать web-приложение. е) Проанализировать полученный результат.
Читать дальше
1.1 Обзор задачи коммивояжера Задача коммивояжера (Travelling salesman problem, сокращённо TSP) относится к комбинаторным задачам оптимизации. Задача состоит в том, чтобы найти маршрут, отвечающий некоторым критериям эффективности. Маршрут проходит через города раз и завершается в начальной точке [1]. В современном мире с помощью алгоритмов решения задачи коммивояжера оптимизируется работа отделов логистики, решаются вопросы доставки. Торговые представители IX, XX веков объезжали года и продавали разные товары. Ходи они пешком, тратили много времени и сил. Выручка зависела от усилий представителя, его смекалки, его выносливости. Чем больше населенных пунктов он обойдет, тем больше заработает и компания, и сам сотрудник. Время, издержки – ключевые факторы успеха торгового представителя. Надо было придумать, как их уменьшить. В 1832 году была издана книга, в которой впервые была опубликована эта задача, давались полезные советы. Но математически эта задача решена не была. Современные навигаторы построены на алгоритмах решения задачи коммивояжера [2]. Алгоритмы оптимизации применяются во многих компаниях, решают вопросы эффективности в различных областях: - в грузоперевозках с оптимизацией ресурсов; - в принятии управленческих решений, когда необходимо сформулировать оптимальную цепочку действий; - на производстве с минимизацией простоя и повышением эффективности; - при планировании туристических маршрутов; - для экономического анализа.
Читать дальше
2.1 Постановка задачи. Первым этапом разработки web-приложения является формулировка постановки задачи, конкретизация функций сервиса, выбор способов визуализации для каждого типа пользователя. Необходимо учесть ограничения, которые могут возникнуть. Например, при большом количестве городов, вводимых пользователем, может быть потеря наглядности при применении визуализатора алгоритма. Выбранные инструменты программирования могут сужать возможности пользователя. Далее подробнее изложена постановка задачи так, чтобы наилучшим образом реализовать задуманное и лучше учесть интересы пользователей. 2.1.1 Наименование системы «Visual Letter» – удобный сервис для визуализации решения задачи коммивояжера методом ветвей и границ. 2.1.2 Цели создания и назначение системы Целью данной работы является создание такого web-приложения, которое предоставляет разным типам пользователей простые, но эффективные способы визуализации в построении оптимально маршрута между точками на карте. Наглядность повышает скорость работы потребителя, улучшает восприятие сложной информации, новые понятия лучше запоминаются. Назначение системы: удобный сервис для визуализации решения задачи коммивояжера, который реализует две основные возможности: интерактивную карту и визуализацию алгоритма Литтла.
Читать дальше
3.1 Описание алгоритмов работы приложения Алгоритм − набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. У незарегистрированных и зарегистрированных потребителей, туристов и студентов разные возможности на сайте. Ниже размещены алгоритмы работы разных потребителей. Алгоритм действий незарегистрированного пользователя: а) Перейти на страницу с интерактивной картой. б) Ввести точки маршрута одним из способов: 1) найти по карте конкретные адреса (поиск); 2) сделать щелчок на карте. в) Оптимизировать путь, который отображается на карте. г) Сохранить данные маршрута в текстовый документ. д) Просмотреть отзывы пользователей сайта. Алгоритм действий зарегистрированного пользователя – туриста: а) Новый пользователь регистрируется. б) Пользователь авторизуется. в) Перейти на страницу с интерактивной картой. г) Ввести точки маршрута одним из способов: 1) найти по карте конкретные адреса (поиск); 2) сделать щелчок на карте. д) Просмотреть отзывы пользователей сайта. е) Оставить отзыв о сервисе. ж) В личном кабинете посмотреть историю действий, краткую информацию о маршрутах.
Читать дальше
В первой главе были проанализированы уже существующие аналоги картографических сервисов и визуализаторов алгоритмов. Приведены сравнительные характеристики разных методов решения задачи коммивояжера. В результате анализа был выбран для реализации метод ветвей и границ, как наиболее результативный и быстрый. В качестве основных визуальных инструментов – интерактивная карта и визуализатор алгоритма. Во второй главе были созданы модели системы. Описаны постановка задачи, инструменты для программирования, нарисованы информационно-функциональные модели приложения. В процессе проектирования системы важно уделить внимание конкретным деталям: сформулировать не только основные функции, но и дополнительные с учетом целевой аудитории и ее интересов. Исследования показывают достоинства визуальных средств для сжатия, фильтрации большого объема данных, которые обрабатывает практически каждый день современный человек. Поэтому для осуществления поставленных задач были выбраны: интерактивная карта, визуализатор пошагового исполнения алгоритма, анимация, демонстрация метода ветвей и границ на конкретном примере (в текстовом документе – подробно, в презентации – наглядно, сжато). Ограничения, накладываемые на сервис, возникли из стремления к наглядности и учета возможностей используемых инструментов программирования. Требования к разным аспектам приложения основаны на теоретическом и практическом опыте разработчиков. Это базовая подготовка к программированию, которая повышает качество продукта. В третьей главе рассказано, как было реализовано задуманное на языке C# с применением HTML, CSS, Java Script. Для работы СУБД был выбран Microsoft SQL и технология Entity Framework. Для развертывания веб-сервера было использовано программное обеспечение IIS, ASP.NET. Особой находкой являются сервисы Openrouteservice JavaScript API, OpenLayers для построения интерактивной карты. Эти сервисы с открытым кодом, что дает дополнительных бонусов. Такое программное обеспечение имеет высокое качество, обладает гибкостью, доступностью на разных устройствах и операционных системах. Недочет быстро устраняются сообществом заинтересованных программистов. Алгоритмы реализации, функционал программы, демонстрация работоспособности системы – содержание этой части диплома. Метод Литтла сложен для программирования, непрозрачен для понимания новичкам, труден для визуализации. Выполнение целей данной работы – амбициозная задача. Разработанный сервис может быть использован обычными людьми, отправляющимися в путешествие и желающими сэкономить свои ресурсы. Другой пример применения сервиса – студент, изучающий метод ветвей и границ, может с помощью анимации понять суть метода, на примере разобраться, как работает алгоритм, ввести количество городов и расстояния между ними и получить пошаговое объяснение алгоритма с помощью созданного визуализатора. Преподаватели также могут применять продукт как наглядное средство. Тестирование web-приложения проводилось на примере построения оптимальных маршрутов демонстрационного пользователя tourist (пароль: 100). Tourist собирается посетить достопримечательности г. Томска, затем г. Москвы, ввел точки на карте, нажал кнопку, получил минимальный по длине путь. Сохранить созданный маршрут в текстовый документ. В пункте личного кабинета под названием «История» накапливаются все созданные потребителем маршруты. На примере демонстрационного пользователя student (пароль: 100), осуществив вход, можно ввести исходную информацию в визуализатор и получить «расшифровку» исполнения алгоритма по этим данным. «История» этого студента отображает все задания, которые выполнял он с помощью приложения «Visual Letter», кроме того, там обозначено и время исполнения метода для конкретных значений. Спроектированное и запрограммированное приложение успешно прошло тестирование. Выводы. Запрограммированное приложение реализует задуманный функционал. Целевая аудитория: путешественники и мотивированные студенты, стремящиеся вникнуть, как алгоритм Литтла. Но есть, куда развивать приложение, улучшать его. Направления развития решения «Visual Letter»: - расширение функционала личных кабинетов пользователей; - добавление графики и управляемой анимации в модуль визуализации шагов алгоритма; - вставка дополнительных возможностей управление сайтом на панель администратора. Метод ветвей и границ – сложный, визуализировать его было трудно, но тем интереснее была работа. Проделана большая работы. Метод ветвей и границ представляет не столько метод, сколько подход к решению задач оптимизации. Применение и изучение этого метода, особенно для молодых людей, имеет и практическое и теоретическое значение. Визуализация алгоритмов позволяет сделать процесс обучения более интересным, наглядным. Соединение разных сервисов с достижениями искусственного интеллекта – перспективное направление. Улучшение картографических сервисов за счет более ювелирной обработки запросов пользователя уже реальность. Машинное обучение и методы оптимизации позволяют решать проблемы и в ценообразовании, и в обучении людей, и в решении управленческих вопросов, и даже в творчестве.
Читать дальше
1. Задача коммивояжера. [Электронный ресурс]. – URL: https://4brain.ru/blog/задача-коммивояжера/ (дата обращения: 5.12.2023) 2. Что такое «задача коммивояжёра». [Электронный ресурс]. – URL: https://thecode.media/komm/ (дата обращения: 1.12.2023) 3. Галяутдинов Р.Р. Задача коммивояжера — метод ветвей и границ // Сайт преподавателя экономики. [2023]. URL: https://galyautdinov.ru/post/zadacha-kommivoyazhera (дата обращения: 15.01.2024). 4. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Р., Штайн К. Алгоритмы. Построение и анализ. 2 изд. М.: Вильямс, 2012. 1296 с. 5. Левитин А. В. Алгоритмы: введение в разработку и анализ. М.: Вильямс, 2006. 576 с. 6. Вишняков П.О. Планирование маршрутов с использованием модифицированного метода «ближайшего соседа» //Математические методы в технике и технологиях - ММТТ. 2014. № 6 (65). С. 63-67. 7. Bang-Jensen J., Gutin G., Yeo A. When the greedy algorithm fails // Discrete Optimization. 2004 Vol. 1, No 2. P. 121-127. 8. Abdulkarim H.A., Alshammari I. F. Comparison of Algorithms for Solving Traveling Salesman Problem. // International Journal of Engineering and Advanced Technology, 2015. Vol.4, Issue 6. P. 76–79 9. Муксимова Р. Р., Гергель Г.Ю., Кострицкая А.В. Сравнительный анализ генетических алгоритмов и методов теории графов при моделировании транспортных задач. Санкт-Петербургский государственный университет гражданской авиации. [Электронный ресурс]. – URL: http://itids.ugatu.su/index.php/itids/itids2016/paper/viewFile/338/297 (дата обращения: 20.12.2023) 10. Файловый архив студентов Studfile. 1.2 Формулировка и некоторые свойства решений задачи коммивояжера. [Электронный ресурс]. – URL: https://studfile.net/preview/952561/page:2/ (дата обращения: 20.01.2024) 11. Костюк Ю. Л. Эффективная реализация алгоритма решения задачи коммивояжера методом ветвей и границ // Прикладная дискретная математика. Вычислительные методы в дискретной математике, 2010. №2 (20). С. 78-90. 12. Как путешествовать легко: 20 сервисов, которые помогут спланировать отдых. [Электронный ресурс]. – URL: https://dzen.ru/a/YIqN6XeUFgJHfP5Q (дата обращения: 20.12.2023) 13. Маршрут по нескольким точкам. [Электронный ресурс]. – URL: https://yandex.ru/support/navigator/route-additional-points.html (дата обращения: 8.12.2023) 14. Путеводитель и планировщик отпусков. [Электронный ресурс]. – URL: https://travel.sygic.com/ru (дата обращения: 8.12.2023) 15. Построение оптимального маршрута по нескольким точкам. [Электронный ресурс]. – URL: https://dzen.ru/a/ZRvydbv6dGG_xHR3 (дата обращения: 25.12.2023) 16. 8 сервисов для визуализации алгоритмов. [Электронный ресурс]. – URL: https://tproger.ru/digest/8-algorithm-visualizers (дата обращения: 10.12.2023) 17. Программирование на каждый день. Сервисы для визуализации алгоритмов. [Электронный ресурс]. – URL: https://dzen.ru/a/Y_Hy5UtrmigsM7aT (дата обращения: 12.12.2023) 18. Решение задачи коммивояжера онлайн. [Электронный ресурс]. – URL: https://galyautdinov.ru/task/tsp (дата обращения: 27.01.2024) 19. Что такое визуализация данных? [Электронный ресурс]. – URL: https://www.microsoft.com/ru-ru/microsoft-365/visio/data-visualization#:~:text=Визуализация%20данных%20—%20это%20наглядное,человеку%20быстрее%20и%20проще%20понять (дата обращения: 27.01.2024) 20. Reaching the Visual Learner: Teaching Property Through Art. The Law Teacher Vol. 11, 2004 21. Five Pages Posted: 10 Sep 2004 Last revised 7 Dec 2012. [Электронный ресурс]. – URL: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=587201 (дата обращения: 28.01.2024). 22. Speed of processing in the human visual system. S Thorpe 1, D Fize, C Marlot 23. Создание пользовательских интерактивных карт. [Электронный ресурс]. – URL: https://appmaster.io/ru/blog/sozdavat-pol-zovatel-skie-interaktivnye-karty (дата обращения: 12.01.2024). 24. М.Р. Манёров, А.А. Сюзюмов, С.В. Тюрин. Методические принципы разработки интерактивных веб-карт на примере объекта всемирного наследия Юнеско «геодезическая дуга Струве» 241 стр. PDF. [Электронный ресурс]. – URL: https://docs.yandex.ru/docs/view?tm=1706608500&tld=ru&lang=ru&name=2020.4.228-241.pdf&text=построение%20интерактивной%20карты%20методы%20исследования&url=https%3A%2F%2Fgeocartography.ru%2Fsites%2Fdefault%2Ffiles%2Fintercarto%2Farticle_pdf%2F2020.4.228-241.pdf&lr=14&mime=pdf&l10n=ru&sign=87f8b292419c15789bfcbf493836ee5d&keyno=0&nosw=1&serpParams=tm%3D1706608500%26tld%3Dru%26lang%3Dru%26name%3D2020.4.228-241.pdf%26text%3D%25D0%25BF%25D0%25BE%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5%2B%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B5%25D1%2580%25D0%25B0%25D0%25BA%25D1%2582%25D0%25B8%25D0%25B2%25D0%25BD%25D0%25BE%25D0%25B9%2B%25D0%25BA%25D0%25B0%25D1%2580%25D1%2582%25D1%258B%2B%25D0%25BC%25D0%25B5%25D1%2582%25D0%25BE%25D0%25B4%25D1%258B%2B%25D0%25B8%25D1%2581%25D1%2581%25D0%25BB%25D0%25B5%25D0%25B4%25D0%25BE%25D0%25B2%25D0%25B0%25D0%25BD%25D0%25B8%25D1%258F%26url%3Dhttps%253A%2F%2Fgeocartography.ru%2Fsites%2Fdefault%2Ffiles%2Fintercarto%2Farticle_pdf%2F2020.4.228-241.pdf%26lr%3D14%26mime%3Dpdf%26l10n%3Dru%26sign%3D87f8b292419c15789bfcbf493836ee5d%26keyno%3D0%26nosw%3D1 (дата обращения: 28.01.2024)) 25. Богданов А.С., Капцюг В.Б. Международная акция на геодезической дуге Струве. Геопрофи, 2007 № 3 С. 65–66. 26. Лисицкий Д.В., Кикин П.М. Методические основы веб-картографии. Известия высших учебных заведений. Геодезия и аэрофотосъёмка, 2014 №. S4. С. 85–91. 27. Crampton J.W. Interactivity types in geographic visualization. Cartography and Geographic. Information Science, 2002 V. 29 No 2 P. 85–98. DOI: 10.1559/152304002782053314. 28. Davidson B.D. Cartographic design for mobile devices: A case study using the UW-Madison interactive campus map. Thesis. Master of science (Cartography and geographic information sys-tems). Department of Geography, University of Wisconsin, Madison, 2014 69 p. 29. Визуализация в презентации: красиво и информативно. [Электронный ресурс]. – URL: https://4brain.ru/blog/vizualizacija-v-prezentacii-krasivo-i-informativno/ (дата обращения: 20.12.2023) 30. A Beginner's Guide to HTML, CSS, Javascript, and Web Graphics. Jennifer Robbins, Learning Web Design: Publisher: ‎O'Reilly Media; 5th edition ,June 19, 2018 – 808 pages 31. Learning PHP, MySQL & Javascript; with jQuery, CSS & HTML5. Robin Nixon. Publisher: ‎O'Reilly Media; 5th edition (June 19, 2018) – 832 pages 32. Архипенков С. Лекции по управлению программными проектами. – М.: Б.и., 2009. – 128 с. 33. Миньков С. Л. Программная инженерия: курсовая работа. Методические указания по выполнению курсовой работы по дисциплине «Программная инженерия» для направления подготовки бакалавров 09.03.03 – Прикладная информатика в экономике. – Томск, 2016. – 14 стр. 34. Соммервил И. Инженерия программного обеспечения. Изд. 6-е. – М.: Изд. дом Вильямс, 2002. – 624 с. 35. ASP.NET. [Электронный ресурс] – URL: https://dotnet.microsoft.com/en-us/apps/aspnet (дата обращения: 15.12.2023). 36. C Sharp (programming language). WikipediA. [Электронный ресурс] – URL: https://en.wikipedia.org/wiki/C_Sharp_(programming_language) (дата обращения: 18.12.2023). 37. Visual Studio. [Электронный ресурс] – URL: https://visualstudio.microsoft.com (дата обращения: 19.12.2023). 38. Карманная книга по TypeScript. Часть 1. Основы. [Электронный ресурс] – Режим доступа: https://habr.com/ru/companies/macloud/articles/559902/ (дата обращения: 15.12.2023). 39. Понятный ли у вас интерфейс: 8 правил как создать удобный сайт/ [Электронный ресурс]. – URL: https://lpgenerator.ru/blog/ponyatnyj-li-u-vas-interfejs-8-pravil-kak-sozdat-udobnyj-sajt/ (дата обращения: 28.09.2023) 40. Портрет покупателя. [Электронный ресурс]. – URL: https://raec.ru/live/analytics/9904/ (дата обращения: 23.01.2023) 41. Профессиональная ИТ-площадка habr. [Электронный ресурс]. – URL: https://habr.com/ (дата обращения: 2.01.2024) 42. Openrouteservice JavaScript API. [Электронный ресурс]. – URL: https://openrouteservice.org/ (дата обращения: 29.01.2024) 43. Google добавит ИИ в свой картографический сервис. [Электронный ресурс]. – URL: https://dzen.ru/a/ZbygrQGYlBgiGgYa (дата обращения: 2.02.2024) 44. В МТУСИ разработали алгоритм для генерации изображений нейросетями. [Электронный ресурс]. – URL: https://www.cnews.ru/news/line/2024-01-29_v_mtusi_razrabotali_algoritm (дата обращения: 29.01.2024)
Читать дальше
Поможем с написанием такой-же работы от 500 р.
Лучшие эксперты сервиса ждут твоего задания

Похожие работы

курсовая работа
Социальная власть и нормы догосударственного периода
Количество страниц:
38
Оригинальность:
44%
Год сдачи:
2024
Предмет:
Теория государства и права
дипломная работа
Профилактика хронической обструктивной болезни легких
Количество страниц:
47
Оригинальность:
90%
Год сдачи:
2024
Предмет:
Сестринское дело
курсовая работа
Формирование и развитие традиционного права на примере истории народа - Эстонцев
Количество страниц:
29
Оригинальность:
96%
Год сдачи:
2024
Предмет:
Право
дипломная работа
"Радио России": история становления, редакционная политика, аудитория. (Имеется в виду радиостанция "Радио России")
Количество страниц:
70
Оригинальность:
61%
Год сдачи:
2015
Предмет:
История журналистики
курсовая работа
26. Центральное (всесоюзное) радиовещание: история создания и развития.
Количество страниц:
25
Оригинальность:
84%
Год сдачи:
2016
Предмет:
История журналистики

Поможем с работой
любого уровня сложности!

Это бесплатно и займет 1 минуту
image