IP Library Granted Patent US 9,222,791
Granted Patent B2
US 9,222,791 · App. 13/649,114 · Granted Dec 29, 2015

Query scenarios for customizable route planning

Inventors: Daniel Delling (Mountain View, CA); Andrew V. Goldberg (Redwood City, CA); Renato F. Werneck (San Francisco, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G01C21/3446
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,222,791
App. No.
13/649,114
Granted
Dec 29, 2015
Kind
B2
Abstract

A point-to-point shortest path technique supports real-time queries and fast metric update or replacement (metric customization). Determining a shortest path between two locations uses three stages: a preprocessing stage, a metric customization stage, and a query stage. Extensions to the customizable route planning (CRP) technique for routing are provided. These extensions include, for example, the computation of alternative routes, faster techniques for unpacking shortcuts, efficient query techniques for batched shortest path (one-to-many, many-to-many, and points of interest) determinations, and determining routes and alternative routes using traffic information.

Claims (25)

1. A route planning method comprising:

receiving as input, at a computing device, a graph comprising a plurality of vertices and edges;

partitioning the graph into a plurality of components of bounded size;

generating an overlay graph by replacing each component of the plurality of components with a clique connecting boundary vertices of the component of the plurality of components, wherein each clique comprises vertices and edges of the plurality of vertices and edges;

for each of the plurality of cliques, determining a weight for each of the edges of the clique using the partitioned graph; and

performing, by the computing device, a customizable route planning (CRP) computation in response to a query, the CRP computation comprising:

determining a path comprising a plurality of shortcuts, each shortcut comprising an improvement in at least one of time and distance;

unpacking a first shortcut in the plurality of shortcuts by accessing a cache to determine if the first shortcut is a frequently used shortcut of a plurality of frequently used shortcuts that is stored in the cache, wherein each frequently used shortcut is associated with a counter; and

when the first shortcut is stored in the cache:

retrieving the first shortcut and using the first shortcut for generating a result to the query;

incrementing the counter associated with the first shortcut; and

removing at least one frequently used shortcut from the cache whose associated counter is below a threshold.

2. The method of claim 1 , wherein the CRP computation comprises a one-to-many shortest path computation.

3. The method of claim 1 , wherein the CRP computation comprises determining a set of isochrones.

4. The method of claim 1 , wherein the CRP computation comprises determining a shortest path using traffic information.

5. The method of claim 1 , wherein the CRP computation comprises determining a plurality of alternative routes.

6. The method of claim 1 , further comprising:

storing data corresponding to the overlay graph as preprocessed graph data in storage associated with the computing device; and

storing data corresponding to the weights of each of the edges of the cliques in storage associated with the computing device.

7. The method of claim 1 , wherein the partitioning the graph and the generating the overlay graph are performed during a metric-independent preprocessing stage, and wherein the weights of each of the edges of the cliques are determined during a metric customization stage, wherein the metric-independent preprocessing stage is based on the graph without taking any of the edge weights into account and wherein the metric customization stage uses the edge weights.

8. The method of claim 1 , wherein the graph represents a network of nodes.

9. The method of claim 1 , wherein the graph represents a road map.

10. The method of claim 1 , wherein when the first shortcut is not stored in the cache, then performing a search, determining a second shortcut, and storing the second shortcut in the cache for later use as another frequently used shortcut.

11. The method of claim 1 , wherein the cache is a least recently used (LRU) cache of a predetermined size based on at least one of storing a limited number of shortcuts that are frequently used shortcuts, or storing a limited number of shortcuts that may be used at a later time as frequently used shortcuts.

12. The method of claim 1 , wherein the cache is a least recently used (LRU) cache that is configured to store a level-i shortcut as a sequence of level-(i-1) shortcuts.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: DELLING, DANIEL; GOLDBERG, ANDREW V.; WERNECK, RENATO F.
To: MICROSOFT CORPORATION
Reel/Frame 029108/0237 →
Continuity (1)
Related Publication 20140107921A1 · Apr 17, 2014