Abstract

Computing driving directions in road networks is a fundamental problem. Although it can be solved in essentially linear time by Dijkstra's algorithm, this is not fast enough to enable interactive queries on large-scale inputs. Instead, modern algorithms typically work in two stages: first an offline preprocessing routine computes some auxiliary data, which is then used to answer exact queries in real time. The past decade has seen a surprisingly diverse set of techniques that follow this approach, mostly relying on the fact that road networks tend to have a strong hierarchy. These methods work very well when minimizing driving times, but are much less efficient with other cost functions. We present a practical algorithm that has no such drawbacks, and can compute shortest paths on continental road networks with arbitrary metrics (cost functions). Our customizable route planning approach works in three stages. The first, metric-independent preprocessing, uses graph partitioning to define the topology of a multilevel overlay graph, which is the same regardless of the cost function. The second stage, customization, uses the metric to compute the actual costs of the overlay arcs. Finally, the query stage uses the output of the first two stages to compute shortest paths in real time (milliseconds). The first stage uses a recent partitioning algorithm based on the notion of natural cuts, which are sparse regions separating much denser areas. It may take a few minutes (or even hours), but only needs to be run (or updated) when new road segments are built. Metric changes (which are much more frequent) require running only customization, which takes a second or less even on continental road networks. Since it does not rely on strong hierarchies, CRP is robust to metric changes. Unlike most other methods, it can also handle turn costs (and restrictions) quite naturally, with little effect on performance and space usage. It is thus ideal for a real-world routing engine, and is indeed in use by Bing Maps. This extended abstract includes results first published at SEA 2011 and SEA 2013.