Skip to Main Content
The shortest path problem is to find a path between two vertices (nodes) on a given graph, such that the sum of the weights on its constituent edges is minimized. This problem has been intensively investigated over years, due to its extensive applications in graph theory, artificial intelligence, computer network and the design of transportation systems. The classic Dijkstra's algorithm was designed to solve the single-source shortest path problem for a static graph. It works starting from the source node and calculating the shortest path on the whole network. Noting that an upper bound of the distance between two nodes can be evaluated in advance on the given transportation network, we proposes a practical algorithm in this paper to calculate the shortest path. The proposed algorithm works on a sub-graph limited by the given upper bound of the distance between the two nodes, rather than on the whole network as did in Dijkstra's algorithm. Experimental results on real dataset with 150 nodes and 176 edges, which is a subnet of the road-map in the Maryland State in US, show that the proposed algorithm reduce the calculations by about 8% on average in comparison to the traditional Dijkstra's algorithm.