Hardware accelerated shortest path computation
First Claim
1. A method for graph preprocessing, comprising:
- receiving as input, at a computing device, a graph comprising a plurality of vertices and arcs;
performing contraction hierarchies on the graph, by the computing device, to generate shortcuts between at least some of the vertices;
assigning levels to each of the vertices, by the computing device; and
storing data corresponding to the vertices, the shortcuts, and the levels, as preprocessed graph data in storage associated with the computing device.
2 Assignments
0 Petitions
Accused Products
Abstract
The non-negative single-source shortest path (NSSP) problem is solved on a graph by using a preprocessing phase and then, in a query phase, computing the distances from a given source in the graph with a linear sweep over all the vertices. Contraction hierarchies may be used in the preprocessing phase and in the query phase. Optimizations may include reordering the vertices in advance to exploit locality, performing multiple NSSP computations simultaneously, marking vertices during initialization, and using parallelism. Techniques may be performed on a graphics processing unit (GPU). This makes applications based on all-pairs shortest-paths practical for continental-sized road networks. The applications include, for example, computing graph diameter, exact arc flags, and centrality measures such as exact reaches or betweenness.
30 Citations
20 Claims
-
1. A method for graph preprocessing, comprising:
-
receiving as input, at a computing device, a graph comprising a plurality of vertices and arcs; performing contraction hierarchies on the graph, by the computing device, to generate shortcuts between at least some of the vertices; assigning levels to each of the vertices, by the computing device; and storing data corresponding to the vertices, the shortcuts, and the levels, as preprocessed graph data in storage associated with the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for determining distances on a graph, comprising:
-
preprocessing, at a computing device, a graph comprising a plurality of vertices to generate data corresponding to the vertices, a plurality of shortcuts between at least a portion of the vertices, a plurality of levels associated with the vertices, and an order of the vertices to generate preprocessed graph data; receiving a query at the computing device; determining a source vertex based on the query, by the computing device; performing, by the computing device, a plurality of non-negative single-source shortest path computations on the preprocessed data with respect to the source vertex to determine the distances between the source vertex and a plurality of other vertices in the graph; and outputting the distances, by the computing device. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for determining distances on a graph, comprising:
-
receiving as input, at a computing device, preprocessed graph data representing a graph comprising a plurality of vertices, wherein the preprocessed data corresponds to the vertices, a plurality of shortcuts between at least a portion of the vertices, a plurality of levels associated with the vertices, and an order of the vertices, wherein the preprocessed graph data is generated using contraction hierarchies on the graph; performing, by the computing device, a plurality of shortest path computations on the preprocessed graph data with respect to a source vertex to determine the distances between the source vertex and a plurality of other vertices in the graph, wherein the plurality of shortest path computations use a contraction hierarchies search; and outputting the distances, by the computing device. - View Dependent Claims (17, 18, 19, 20)
-
Specification