Тип работы:
Предмет:
Язык работы:


Разработка программного обеспечения для решения задачи поиска кратчайшего пути в графе

Работа №115184

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы46
Год сдачи2022
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
102
Не подходит работа?

Узнай цену на написание


Аннотация 2
Введение 5
Глава 1 Анализ исследуемой задачи 7
1.1 Описание и постановка задачи поиска кратчайшего пути в графе 7
1.2 Выбор и обоснование принципа и методов решения задачи 11
1.3 Аналитический обзор состояния проблемы в литературе 13
Глава 2 Разработка и реализация алгоритмов решения задачи 17
2.1 Используемые методы и алгоритмы решения задачи 17
2.2 Сравнение выбранных алгоритмов для решения поставленной задачи 27
2.3 Программная реализация выбранных алгоритмов 29
Глава 3 Проведение вычислительных экспериментов 36
3.1 Выбор методики проведения эксперимента. Подготовка оборудования и программного обеспечения 36
3.2 Проведение эксперимента и анализ результатов 37
Заключение 40
Список используемой литературы 41
Приложение А Программный код генерации графа для тестирования алгоритмов 43

Поиск кратчайшего пути от одной вершины графа до другой на сегодняшний момент является одной из наиболее востребованных математических задач, и имеет обширную зону практического применения: транспортная логистика, начиная от масштабных грузовых перевозок, заканчивая персональными автомобильными навигаторами; системы автопилотов воздушных и морских судов; размещение товаров на складе; сетевые коммуникации; социологические связи между группами людей и многое другое. Проблемы кратчайшего пути важны при изучении сетей. Во- первых, они очень распространены на практике; часто нужно найти лучший маршрут для отправки чего-либо из одного места в другое. Во-вторых, они обеспечивают основу для ряда ключевых идей предметного материала; рассматривая проблемы пути, можно заложить основу для большого количества других, более сложных сетевых моделей.
Если раньше поиск кратчайшего пути в графе мог занимать огромное количество времени в случае масштабных и запутанных графов, то с появлением первых ЭВМ эта задача стала более тривиальной. Вычислительные мощности современных устройств позволяют буквально «на лету» вычислять сложные пути и корректировать их в зависимости от внешних обстоятельств. Таким образом, актуальность бакалаврской работы заключается в реализации практического решения актуальной проблемы. Такое решение представляет практический интерес, поскольку может быть использовано для дальнейшего решения проблемы поиска кратчайшего пути в графе, а также теоретический, поскольку позволяет найти наиболее оптимальный алгоритм для решения каждой задачи.
Объект исследования бакалаврской работы - теория графов.
Предмет исследования - проблема поиска кратчайшего пути графа и конкретные алгоритмы решения данной проблемы.
Целью ВКР является разработка программного обеспечения для решения задачи поиска кратчайшего пути в графе, а также проведение анализа алгоритмов, позволяющего выявить наиболее оптимальный алгоритм решения поставленной проблемы.
Для достижения цели ВКР необходимо выполнить следующие задачи:
• провести анализ предметной области и определить итоговую формулировку решаемой задачи;
• провести аналитический обзор состояния проблемы в работах других исследователей для конкретизации используемых алгоритмов;
• выбрать алгоритмы, используемые для решения поставленной задачи;
• реализовать выбранные алгоритмы в виде программного кода;
• протестировать полученные программы и выбрать наиболее оптимальный алгоритм для решения поставленной задачи.
Структурно ВКР состоит из введения, трёх глав, заключения и приложения.
В первой главе рассматривается теоретическая основа поставленной задачи, её описание и решение в работах других авторов, а также математическое описание задачи для дальнейшего поиска решения.
Вторая глава ВКР посвящена алгоритмам решения задачи поиска кратчайшего пути в графе. В ней подробным образом описываются алгоритмы, их достоинства и недостатки в контексте решаемой задачи, а затем описывается реализация выбранных алгоритмов в виде программ.
В третьей главе бакалаврской работы полученные программы проходят тестирование, их работа профилируется, полученные данные подвергаются анализу и на основании данных о работе каждого алгоритма принимается решение о возможности использования его для решения искомой задачи. Кроме этого, выявляется наиболее оптимальный алгоритм для решения задачи поиска кратчайшего пути в графе.

Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В ходе работы над бакалаврской работой был проведён анализ предметной области, а также исследований отечественных и зарубежных учёных в целях выяснения уровня проработанности проблемы и её готовых решений. После постановки задачи, из числа алгоритмов поиска кратчайшего пути в графе были выбраны несколько наиболее популярных и зарекомендовавших себя алгоритмов для дальнейшей работы - волновой алгоритм, жадный алгоритм, алгоритм Дейкстры и алгоритм А*.
Для каждого выбранного алгоритма было подготовлено детальное описание принципа работы в целях упрощения перевода в программный код. Алгоритмы были проанализированы на предмет соответствия решаемой задачи, были выявлены их достоинства, недостатки и ограничения, присущие некоторым алгоритмам. Поскольку все перечисленные алгоритмы подходят для решения поставленной задачи, были реализованы программы на языке программирования Python для каждого выбранного алгоритма.
Далее была осуществлена проверка разработанных программ на одинаковых графах с целью выяснения особенностей работы и определения наиболее подходящего для решения поставленной задачи алгоритма. Тестирование осуществлялось в специальной программно-аппаратной среде, для фиксации времени работы программ и объёма используемой ими памяти применялись профайлеры cProfile и memory_profiler. По результатам исследования, наиболее оптимальным для решения проблемы стал алгоритм А* за счёт скорости его работы.
Результаты, полученные в ходе работы над ВКР могут быть использованы в дальнейших исследованиях задачи поиска кратчайшего пути и других похожих задачах теории графов. Программы, разработанные в данной бакалаврской работе, могут быть использованы для практического решения задачи поиска кратчайшего пути в графе.


1. Богомолов А.М. Алгебраические основы теории дискретных систем.— М.: Наука, 1997. — 368 с
2. Гришков Данила Юрьевич, Аусилова Назерке Мырзабековна. ЯЗЫК ВЫСОКОГО УРОВНЯ ПРОГРАММИРОВАНИЯ PYTHON // НИР/З&К 2022. №1 (9). [Электронный ресурс] URL: https://cyberleninka.ru/article/nZyazyk-vysokogo-urovnya-programmirovaniya- python
3. Евстигнеев В. А. Глава 3. Итеративные алгоритмы глобального анализа графов. Пути и покрытия // Применение теории графов в программировании / Под ред. А. П. Ершова. — Москва: Наука. Главная редакция физико-математической литературы, 1985. — С. 138—150. — 352 с.
4. Емеличев, В. А. Лекции по теории графов / В. А. Емеличев [и др]. • М. : Наука, 1990. - 384 с.
5. Изотова Т.Ю. Обзор алгоритмов поиска кратчайшего пути в графе // Новые информационные технологии в автоматизированных системах. 2016. №19. URL: https://cyberleninka.ru/article/n/obzor-algoritmov-poiska-kratchayshego-puti-v-grafe.
6. Изотова Т.Ю. Обзор алгоритмов поиска кратчайшего пути в графе // Новые информационные технологии в автоматизированных системах. 2016. №19.
7. Кормен, Т. Алгоритмы: построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест — М. : МЦНМО, 2009. - 960с.
8. Оре, О. Теория графов М. : Наука, 1980. - 336 с.
9. Плотников, Подвальный Е. С. Решение задачи поиска оптимального пути между двумя точками на графе с нерегулярным весом ребер // Вестник ВГТУ. 2012. №6. С. 22-26.
10. Свами, М. Графы, сети и алгоритмы / М. Свами, К. Тхуласираман • М. : Мир, 1984. - 455 с.
11. Хайнеман, Д. Алгоритмы. Справочник с примерами на C, C++, Java и Python / Д Хайнеман, Г. Поллис, С. Селков; пер. И. В. Красикова. - 2-е изд. — М. : Диалектика, 2017. - 427 с.
12. Харари, Ф. Теория графов — М. : УРСС, 2003. - 300 с.
13. D. Di Caprio, A. Ebrahimnejad, H. Alrezaamiri, and F. J. Santos- Arteaga, A novel ant colony algorithm for solving shortest path problems with fuzzy arc weights - Alexandria Engineering Journal - Vol. 61, no. 5, P. 3403-3415
14. Dijkstra E. W. A note on two problems in connexion with graphs // Numer. Math / F. Brezzi — Springer Science+Business Media, 1959. — Vol. 1, Iss. 1. — P. 269-271
15. Konig, Denes. Theorie der endlichen und unendlichen Graphen. — Leipzig: Akademische Verlagsgesellschaf, 1936.
...


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ