УДК 004.021
ПРОБЛЕМА ПОИСКА КРАТЧАЙШЕГО ПУТИ В ТРЕХМЕРНОМ ПРОСТРАНСТВЕ НА ТЕРРИТОРИИ ТОРГАШИНСКОГО ХРЕБТА
Д. А. Крутько Научный руководитель - В. В. Буряченко
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
E-mail:krutko.d00@gmail.com
Рассматриваются проблематика и подходы к автоматизированному поиску кратчайшего пути в трехмерном пространстве на территории Торгашинского хребта с использованием данных GPS-навигации.
Ключевые слова: алгоритмы построения маршрута, кратчайший путь, графы, алгоритм Дейкстры, gpx-трек.
THE PROBLEM OF AUTOMATING THE HIKING ROUTES CONSTRUCTION IN THE KRASNOYARSK TERRITORY MOUNTAIN RANGES
D. A. Krutko Scientific supervisor - V. V. Buryachenko
Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation E-mail:krutko.d00@gmail.com
The problems and approaches to the automated search for the shortest path in three-dimensional space on the territory of the Torgashinsky Range using GPS navigation data are considered.
Keyword: route construction algorithms, shortest path, graphs, Dijkstra's algorithm, gpx-track.
В настоящий момент времени, в связи с популярностью поддержания здорового образа жизни, люди стали больше следить за своим здоровьем, заниматься спортом, путешествовать. С целью эффективной организации построения туристических маршрутов необходимо автоматизировать процесс формирования оптимальных треков в соответствии в заданными критериями отбора. В связи с этим обозначилась проблема, что не существует системы, которая бы умела составлять маршруты по пересеченной местности. Для разработки системы, которая бы позволила в автоматизированном режиме строить свои собственные маршруты по выбранным объектам посещения с использованием данных gps-навигации, необходимо выполнить анализ эффективности алгоритмов построения кратчайшего пути, пригодных для решения данной задачи.
Построение маршрута для туризма сводится к задаче поиска кратчайшего пути от одной вершины графа до другой [1]. Данная задача является одной из самых популярных задач в теории графов, следовательно, существует большое количество алгоритмов, позволяющих ее решить. Граф представляет собой абстрактный объект из множества вершин (узлов) и набора ребер - связей между парами вершин. Маршруты, которые состоят из связанных между собой перекрестков являются графом. Рассмотрим наиболее подробно такие алгоритмы, как: алгоритм Дейкстры, алгоритм Левита и алгоритм Флойда-Уоршелла.
Секция «Программные средства и информационные технологии»
Алгоритм Дейкстры - один из самых известных алгоритмов для поиска кратчайшего пути между вершинами графа [2]. Основная идея заключается в том, что алгоритм на каждом шаге «посещает» одну вершину и пытается минимизировать расстояние до соседних вершин. Работа алгоритма завершается, когда все вершины посещены.
У алгоритма Дейкстры имеется ряд достоинств, таких, как высокая скорость работы и высокая точность результата. К недостаткам алгоритма Дейкстры относится высокая вычислительная сложность. Сложность алгоритма Дейкстры зависит от способа нахождения вершины, способа хранения множества непосещённых вершин и способа обновления меток. Отсюда получаем, что реализация в данном методе потребует О(Ы) и 0(1) единиц соответственно. Учитывая, что первая операция выполняется N раз, а вторая в зависимости от построенного графа, получается сложность 0(Ы*Ы+М), где N - количество вершин, а М -константа, зависящая от построенного графа.
Алгоритм Левита - алгоритм на графах, находит кратчайшее расстояние от одной из вершин графа до всех остальных [3]. Он также работает для графов с ребрами отрицательного веса. Алгоритм широко применяется в программировании и технологиях. В сравнении с методом Дейкстры метод Левита проигрывает в том, что некоторые вершины приходится обрабатывать повторно, а выигрывает на более простых алгоритмах включения и исключения вершин из множества М1 (М1 - вершины, расстояние до которых вычисляется на текущем шаге алгоритма).
Установлено, что для графов с «геометрическим» происхождением, т.е. для графов, построенных на основе транспортных сетей и реальных расстояний, метод Левита оказывается наиболее быстрым. Помимо этого, он выигрывает и по простоте реализации.
Сложность алгоритма Левита в худшем случае составляет 0(Ы2 *М). Чтобы достичь такого времени работы необходимо, чтобы в графе ребра располагались в лексикографическом порядке. Более реальной оценкой данного метода является среднее время, а именно сложность 0(Ы * М). Однако, на реальных графах алгоритм Левита не многим уступает алгоритму Дейкстры.
Алгоритм Флойда-Уоршелла используется для нахождения кратчайших расстояний между всеми вершинами взвешенного графа без циклов с отрицательными весами с использованием метода динамического программирования. Недостаток алгоритма Флойда-Уоршелла в том, что он определяет только кратчайшее расстояние между всеми парами вершин, но не сохраняет информации о кратчайших путях, что необходимо в задачах построения маршрута [4].
Сложность алгоритма Флойда-Уоршелла имеет порядок 0(Ы3), поскольку в ней практически нет ничего, крове вложенных друг в друга трех циклов. Алгоритм применим к графам с произвольными, в том числе с отрицательными весами. Таким образом, он является более общим в сравнении с алгоритмом Дейкстры, который не работает с отрицательными весами ребер.
В результате обзора наиболее известных алгоритмов для поиска кратчайшего пути в графе, а также анализу их преимуществ и недостатков, обозначим требования, которые необходимы для реализации поиска кратчайшего пути в трехмерном пространстве на территории Торгашинского хребта:
- низкая временная сложность работы алгоритма;
- высокая простота реализации алгоритма для мобильного приложения;
- работа для графов с положительными весами;
- точность результата;
- сохранение информации о кратчайших путях.
Проведенный анализ показал, что для поиска кратчайшего пути в трехмерном пространстве на территории Торгашинского хребта целесообразно использовать алгоритм Дейкстры, так как он учитывает ряд особенностей рассматриваемого процесса. Основными
достоинствами алгоритма Дейкстры является высокая скорость работы и точность результата.
Библиографические ссылки
1. Проблема автоматизации построения схем маршрутов пешего туризма в горных массивах Красноярского края / Д.А. Крутько // Материалы VII международной научно-практической конференции «Актуальные проблемы авиации и космонавтики». - Красноярск, 2021. - Т. 2. - С. 260 -262.
2. Базовые алгоритмы нахождения кратчайших путей во взвешенных графах [Электронный ресурс]. URL:https://habr.com/ru/post/119158/ (дата обращения: 01.03.2022).
3. Алгоритм Левита - алгоритмы поиска на графах [Электронный ресурс]. URL:https://amp.ww.google-info.org/3957083/1/algoritm-levita.html (дата обращения: 02.03.2022).
4. Алгоритм Флойда-Уоршелла [Электронный ресурс]. URL: https://habr.com/ru/post/105825/ (дата обращения: 13.03.2022)
© Крутько Д. А., 2022