Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

Contraction Hierarchies Algorithm

Graph Algorithm

Contraction hierarchies is a speed-up technique for computing shortest paths in large graphs, developed especially for road networks used by car navigation systems, web based route planners, and logistics software where the same graph is queried for shortest routes over and over again. In a one-time preprocessing phase, the algorithm repeatedly removes, or contracts, vertices from the graph in an order chosen by an importance heuristic, and whenever removing a vertex would break the shortest path between two of its remaining neighbors, it adds a shortcut edge between them that preserves the original shortest distance. A later query for the shortest path between two points then runs a bidirectional search that starts from both endpoints at once and only follows edges leading toward more important vertices, which keeps the search confined to a small fraction of the full graph and answers queries far faster than running an unmodified shortest path algorithm on the whole network. Robert Geisberger, Peter Sanders, Dominik Schultes and Daniel Delling introduced the technique in 2008.

Facts
Classification
Design Technique
Heuristic or Approximation 1
Sources
1. Contraction Hierarchies Algorithm (Wikipedia)
https://en.wikipedia.org/wiki/Contraction_hierarchies
Quote, https://en.wikipedia.org/wiki/Contraction_hierarchies
Contraction hierarchies do not know about which roads humans consider "important", but they are provided with the graph as input and are able to assign importance to vertices using heuristics.
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.