Abstract
This paper proposes a modified algorithm that improves on Dijkstra's algorithm by applying it to purely two-way traffic paths, given that a road where bi-directional traffic is made possible shall be considered as an undirected graph. Dijkstra's algorithm is the most generally utilized form of shortest-path search mechanism in GPS navigation system. However, it requires a large amount of memory for execution for it selects the shortest path by calculating distance between the starting node and every other node in a given directed graph. Dijkstra's algorithm, therefore, may occasionally fail to provide real-time information on the shortest path. To rectify the aforementioned shortcomings of Dijkstra's algorithm, the proposed algorithm creates conditions favorable to the undirected graph. It firstly selects the shortest path from all path vertices except for the starting and destination vertices. It later chooses all vertex-outgoing edges that coincide with the shortest path setting edges so as to simultaneously explore various vertices. When tested on 9 different undirected graphs, the proposed algorithm has not only successfully found the shortest path in all, but did so by reducing the time by 60% and requiring less memory.
본 논문은 실시간 GPS 항법시스템에서 최단경로 탐색에 일반적으로 적용되고 있는 Dijkstra 알고리즘을 양방향 통행로(무방향그래프)로만 구성된 도로에 적용하고 문제점을 개선한 알고리즘을 제안하였다. Dijkstra 알고리즘은 방향 그래프에서 출발 노드부터 시작하여 그래프의 모든 노드에 대한 최단경로를 결정하기 때문에 알고리즘 수행에 많은 메모리가 요구되어 실시간으로 정보를 제공하지 못할 수도 있다. 이러한 문제점을 해결하고자, 본 논문에서는 무방향 그래프에 적합하도록 출발과 목적지 정점을 제외한 경로 정점들에 대해 최단경로를 설정하고, 출발 정점부터 시작하여 정점 유출 간선들에 대해 최단경로 설정 간선들과 일치하는 간선들을 모두 선택하는 방식으로 한 번에 다수의 정점들을 탐색하는 방법을 택하였다. 9개의 다양한 무방향 그래프에 제안된 알고리즘을 적용한 결과 모두 최단경로를 탐색하는데 성공하였다. 또한, 수행 속도 측면에서 Dijkstra 알고리즘보다 약 60%를 단축시키는 효과를 얻었으며, 알고리즘 수행에 필요한 메모리도 월등히 적게 요구되었다.