If you are allowed to precompute the linear value in |V| data on the graph, then there is a family of algorithms that have sublinear query times for the shortest paths in the graph.
Some of them are used in Bing Maps for extremely fast calculation of the shortest routes.
The basic idea is to precompute for each vertex leading labels L_f(v) and backward labels L_b(v) , which represent the coverage property. Each label represents a pair of vertices and the distance to it, for example. L_f(v) = { (u, dist(v, u)) } and L_r(v) = { (u, dist(u, v)) } . And the cover property states that for any vertices s and t L_f(s) "Union" L_r(t) contains at least one vertex on the shortest path from s to t.
Is there an open source implementation of one of these algorithms (C ++, C #, F #, D, Go, Java)?
source share