IP Library › Granted Patent US 12,639,305
Granted Patent B2
US 12,639,305 · App. 16/734,035 · Granted May 26, 2026

Method for sharing landmarks for fast processing of top k cheapest path queries

Inventors: Vlad Haprian (Zurich, CH); Oskar Van Rest (Mountain View, CA); Sungpack Hong (Palo Alto, CA); Hassan Chafi (San Mateo, CA); Bence Czipo (Schlieren, CH)
Assignee: Oracle International Corporation
G06F16/24542G06F16/2264
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 12,639,305
App. No.
16/734,035
Granted
May 26, 2026
Kind
B2
Abstract

Herein are techniques to accelerate finding a top few shortest paths between two vertices of a graph. In an embodiment, a computer calculates, for a graph that contains vertices that include landmark vertices, distances between each vertex and each landmark vertex. Based on the distances from each vertex to each landmark vertex, a top few shortest paths from a source vertex to a target vertex are calculated. In an embodiment, triangulation establishes a lower bound on a distance from a neighbor vertex of a current vertex to a target vertex of a query. In an embodiment, distance predictions based on the distance lower bounds are used to accelerate a K-A star search for the top few shortest paths.

Claims (67)

1 . A method comprising:

storing, in a graph database, a graph that contains a plurality of graph vertices that include a plurality of landmark vertices;

calculating, for the graph, a plurality of distances between each vertex of the plurality of graph vertices and each vertex of the plurality of landmark vertices, including respective distances between a particular landmark vertex and each vertex of the plurality of graph vertices;

performing, after said calculating and storing, a first K-A star search that is based on the plurality of distances from each vertex of the plurality of graph vertices to each vertex of the plurality of landmark vertices, wherein the first K-A star search detects a first plurality of paths of shortest distance from a first source vertex of the plurality of graph vertices to a first target vertex of the plurality of graph vertices; and

performing after said performing said first K-A star search:

including an additional vertex of the plurality of graph vertices into the plurality of landmark vertices, and

executing, based on the plurality of distances from each vertex of the plurality of graph vertices to each vertex of the plurality of landmark vertices, including the additional vertex, a path query on the graph in the graph database to detect a second plurality of paths of shortest distance from a second source vertex of the plurality of graph vertices to a second target vertex of the plurality of graph vertices;

wherein:

a count of the first plurality of paths of shortest distance and a count of the second plurality of paths of shortest distance do not exceed a threshold;

the method is performed by one or more computers.

2 . The method of claim 1 wherein said storing the plurality of distances from each vertex of the plurality of graph vertices to each vertex of the plurality of landmark vertices comprises storing distances of the plurality of distances that originate or terminate at the vertex of the plurality of graph vertices as property(s) of the vertex.

3 . The method of claim 1 further comprising executing, based on said plurality of distances between each vertex of the plurality of graph vertices and each vertex of the plurality of landmark vertices, a plurality of queries of same said graph.

4 . The method of claim 3 wherein:

the plurality of queries of same said graph include a first query and a second query;

at least one selected from the group consisting of:

the first query has a different source vertex than the second query, and

the first query has a different target vertex than the second query.

5 . The method of claim 1 further comprising at least one of:

selecting the plurality of landmark vertices from a particular region of the graph, and

increasing the plurality of landmark vertices based on latency of query(s) of the graph.

6 . The method of claim 1 further comprising:

adding, to a subset of said plurality of graph vertices that is initially empty, a vertex from said plurality of graph vertices;

iteratively selecting said plurality of landmark vertices from said plurality of graph vertices by adding, to said subset of said plurality of graph vertices and to said plurality of landmark vertices, a vertex of said plurality of graph vertices that is furthest from said subset of said plurality of graph vertices.

7 . The method of claim 1 wherein:

the plurality of landmark vertices consists of: a) a first landmark vertex that is furthest from a seed vertex of said plurality of graph vertices, b) a second landmark vertex that is furthest from the first landmark vertex and the seed vertex, and c) a subset of said plurality of landmark vertices without the first landmark vertex and the second landmark vertex;

the method further comprises iteratively selecting said subset of the plurality of landmark vertices from said plurality of graph vertices by adding, to said subset of the plurality of landmark vertices, a vertex of said plurality of graph vertices that maximizes an arithmetic difference between: a) a sum of distances between all pairs of landmark vertices of the plurality of landmark vertices along paths that include said vertex, and b) a sum of distances between all pairs of landmark vertices of the plurality of landmark vertices.

8 . The method of claim 1 wherein a size of the plurality of landmark vertices is based on a logarithm of a size of the plurality of graph vertices.

9 . The method of claim 1 wherein said first K-A star search comprises triangulation based on said plurality of landmark vertices.

10 . The method of claim 9 wherein:

the method further comprises receiving a query that specifies said first source vertex and said first target vertex;

said triangulation based on said plurality of landmark vertices occurs either:

before said first K-A star search, or

after receiving said query that specifies said first source vertex and said first target vertex.

11 . The method of claim 9 wherein the first K-A star search comprises costing a partial path from said first source vertex to an intermediate vertex based on a distance from the intermediate vertex to said first target vertex through a landmark vertex of the plurality of landmark vertices.

12 . The method of claim 1 further comprises:

operating a queue that contains a plurality of intermediate paths of the graph;

generating a new path that contains an intermediate path of the plurality of intermediate paths;

before the queue becomes empty, detecting that a last vertex of said intermediate path was expanded a threshold amount of times.

13 . The method of claim 1 further comprising detecting financial fraud based on said first plurality of paths of shortest distance from the first source vertex of the plurality of graph vertices to the first target vertex of the plurality of graph vertices.

14 . One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause:

storing, in a graph database, a graph that contains a plurality of graph vertices that include a plurality of landmark vertices;

calculating, for the graph, a plurality of distances between each vertex of the plurality of graph vertices and each vertex of the plurality of landmark vertices, including respective distances between a particular landmark vertex and each vertex of the plurality of graph vertices;

performing, after said calculating and storing, a first K-A star search that is based on the plurality of distances from each vertex of the plurality of graph vertices to each vertex of the plurality of landmark vertices, wherein the first K-A star search detects a first plurality of paths of shortest distance from a first source vertex of the plurality of graph vertices to a first target vertex of the plurality of graph vertices; and

performing after said performing said first K-A star search:

including an additional vertex of the plurality of graph vertices into the plurality of landmark vertices, and

executing, based on the plurality of distances from each vertex of the plurality of graph vertices to each vertex of the plurality of landmark vertices, including the additional vertex, a path query on the graph in the graph database to detect a second plurality of paths of shortest distance from a second source vertex of the plurality of graph vertices to a second target vertex of the plurality of graph vertices;

wherein a count of the first plurality of paths of shortest distance and a count of the second plurality of paths of shortest distance do not exceed a threshold.

15 . The one or more non-transitory computer-readable media of claim 14 wherein the instructions further cause at least one of:

selecting the plurality of landmark vertices from a particular region of the graph, and

increasing the plurality of landmark vertices based on latency of query(s) of the graph.

16 . The one or more non-transitory computer-readable media of claim 14 wherein the instructions further cause:

adding, to a subset of said plurality of graph vertices that is initially empty, a vertex from said plurality of graph vertices;

iteratively selecting said plurality of landmark vertices from said plurality of graph vertices by adding, to said subset of said plurality of graph vertices and to said plurality of landmark vertices, a vertex of said plurality of graph vertices that is furthest from said subset of said plurality of graph vertices.

17 . The one or more non-transitory computer-readable media of claim 14 wherein:

the plurality of landmark vertices consists of: a) a first landmark vertex that is furthest from a seed vertex of said plurality of graph vertices, b) a second landmark vertex that is furthest from the first landmark vertex and the seed vertex, and c) a subset of said plurality of landmark vertices without the first landmark vertex and the second landmark vertex;

the instructions further cause iteratively selecting said subset of the plurality of landmark vertices from said plurality of graph vertices by adding, to said subset of the plurality of landmark vertices, a vertex of said plurality of graph vertices that maximizes an arithmetic difference between: a) a sum of distances between all pairs of landmark vertices of the plurality of landmark vertices along paths that include said vertex, and b) a sum of distances between all pairs of landmark vertices of the plurality of landmark vertices.

18 . The one or more non-transitory computer-readable media of claim 14 wherein said first K-A star search comprises triangulation based on said plurality of landmark vertices.

19 . The one or more non-transitory computer-readable media of claim 18 . wherein:

the instructions further cause receiving a query that specifies said first source vertex and said first target vertex;

said triangulation based on said plurality of landmark vertices occurs either:

before said first K-A star search, or

after receiving said query that specifies said first source vertex and said first target vertex.

20 . The one or more non-transitory computer-readable media of claim 14 . wherein the instructions further cause:

operating a queue that contains a plurality of intermediate paths of the graph;

generating a new path that contains an intermediate path of the plurality of intermediate paths;

before the queue becomes empty, detecting that a last vertex of said intermediate path was expanded a threshold amount of times.

21 . The one or more non-transitory computer-readable media of claim 18 . wherein the first K-A star search comprises costing a partial path from said first source vertex to an intermediate vertex based on a distance from the intermediate vertex to said first target vertex through a landmark vertex of the plurality of landmark vertices.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR PREVIOUSLY RECORDED AT REEL: 051422 FRAME: 0460. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 8, 2020
From: HAPRIAN, VLAD; REST, OSKAR VAN; HONG, SUNGPACK; CHAFI, HASSAN; CZIPO, BENCE
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 051514/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: HAPRIAN, VLAD; REST, OSKAR VAN; HONG, SUNPACK; CHAFI, HASSAN; CZIPO, BENCE
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 051422/0460 →
Continuity (1)
Related Publication 20210209108A1 · Jul 8, 2021
References Cited (50)
US 7069530B1 · Teig · 2006 [cited by examiner]
US 9135565B1 · Khalefa · 2015 [cited by examiner]
US 20030070153A1 · Stevens · 2003 [cited by examiner]
US 20060047421A1 · Goldberg · 2006 [cited by examiner]
US 20080155119A1 · Imamura · 2008 [cited by examiner]
US 20090040931A1 · Bast · 2009 [cited by examiner]
US 20100262574A1 · Zhou · 2010 [cited by applicant]
US 20100268447A1 · Griffiths · 2010 [cited by examiner]
US 20100306216A1 · Andersen · 2010 [cited by examiner]
US 20110173189A1 · Singh · 2011 [cited by applicant]
US 20120158639A1 · Moore · 2012 [cited by examiner]
US 20140137130A1 · Jacob · 2014 [cited by applicant]
US 20140172914A1 · Elnikety · 2014 [cited by applicant]
US 20140244687A1 · Shmueli · 2014 [cited by applicant]
US 20150006316A1 · Zhou · 2015 [cited by applicant]
US 20150112986A1 · Jin · 2015 [cited by applicant]
US 20160313133A1 · Zeng · 2016 [cited by examiner]
US 20160364794A1 · Chari · 2016 [cited by examiner]
US 20170060958A1 · Van Rest · 2017 [cited by examiner]
CN 111611442 · 2020 [cited by applicant]
Aljazzar et al., “K*: A heuristic search algorithm for finding the k shortest paths,” Aug. 5, 2011, Artificial Intelligence 175 (2011), pp. 2129-2154. [cited by examiner]
Goldberg et al., “Reach for A*: Efficient point-to-point shortest path algorithms”. In: 2006 Proceedings of the Eighth Workshop on Algorithm Engineering and Experiments (ALENEX), pp. 129-143, 2006. [cited by examiner]
Liu et al, Finding Top-k shortest Paths with Diversity, IEEE Transactions on Knowledge and Data Engineering, pp. 488-502, vol. 30, Issue: 3, Mar. 1, 2018 (hereinafter Liu). [cited by examiner]
Goldberg et al., Computing the Shortest Path: A* Search Meets Graph Theory, Mar. 2003, Microsoft Research, MSR-TR-2004-24. [cited by examiner]
Maue et al., Goal-Directed Shortest-Path Queries Using Precompted Cluster Distances, AMC Journal of Experimental Algorithms, vol. 14, Article No. 3.2, Jul. 2009. [cited by examiner]
Rest, U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Adviosry Action, Oct. 16, 2018. [cited by applicant]
Rest, U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Office Action, Oct. 18, 2017. [cited by applicant]
Rest, U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Office Action, Apr. 4, 2019. [cited by applicant]
Rest, U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Final Office Action, Oct. 21, 2019. [cited by applicant]
Rest U.S. Appl. No. 14/837,696, filed Aug. 27, 2018, Final Office Action, Jun. 13, 2018. [cited by applicant]
Shaffer, Clifford, “CS 5114: Theory of Algorithms”, dated 2014, 9 pages. [cited by applicant]
Yildirim et al., “GRAIL: Scalable Reachability Index for Large Graphs”, Proceedings of the VLDB Endowment, vol. 3, No. 1 Copyright 2010 VLDB Endowment 21508097, 9 pages. [cited by applicant]
Tretyakov et al., “Fast Fully Dynamic Landmark-based Estimation of Shortest Path Distances in Very Large Graphs”, CIKM dated Oct. 24-28, 2011, 10 pages. [cited by applicant]
Sommer, Christian, Shortest-Path Queries in Static Networks, ACM Computing Surveys, vol. V No. N, dated Sep. 2013, 35 pages. [cited by applicant]
Queiros et al., “A New Shortest Paths Ranking Algorithm”, dated Jul. 1999, 15 pages. [cited by applicant]
Potamias et al., “Fast Shortest Path Distance Estimation in Large Networks”, dated Mar. 9, 2009, 13 pages. [cited by applicant]
Jimenez et al., “Computing the K Shortest Paths: A New Algorithm and Experimental Comparision”, WAE dated 1999, 15 pages. [cited by applicant]
Jimenez et al., “A Lazy Version of Eppstein's K Shortest Paths Algorithm”, dated 2003, 13 pages. [cited by applicant]
Grant et al., “LPI Approximating Shortest Paths Using Landmarks”, dated 2008, 5 pages. [cited by applicant]
Goldberg et al., “Computing the Shortest Path: A Search Meets Graph Theory”, dated Mar. 2004, 26 pages. [cited by applicant]
Fushs, Fabian, “On Preprocessing the ALT-Algorithm”, dated Mar. 22, 2010, 48 pages. [cited by applicant]
Floreskul et al., “Memory-Efficient Fast Shortest Path Estimation in Large Social Networks”, Eighth International AAAI Conference on Weblogs and Social Media, dated 2014, 10 pages. [cited by applicant]
Eppstein, David, “Finding the K Shortest Paths”, Tech Report 94-26, dated May 31, 1994, 23 pages. [cited by applicant]
Rest, U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Notice of Allowance, Jul. 23, 2020. [cited by applicant]
Rest U.S. Appl. No. 14/837,696, filed Aug. 27, 2015, Office Action, Apr. 17, 2020. [cited by applicant]
The International Searching Authority, “Search Report” in Application No. PCT/US2020/067325, dated Apr. 16, 2021, 16 pages. [cited by applicant]
Liu, Huiping, et al., “Finding Top-K Shortest Paths with Diversity”, IEEE Trans. On Knowledge and Data Engineering, vol. 30, issue No. 3, Mar. 1, 2018, 16pgs. [cited by applicant]
Goldberg, Andrew, V., et al., “Computing Point-to-Point Shortest Paths from External Memory”, Proceedings of the 7th Workshop on Algorithm Engineering and Experiments and the 2nd workshop on Analytic Algorithms and Comb… [cited by applicant]
Chang, Lijun, et al., “Efficiently Computing Top-K Shortest Path”, Proc. 18th Intl Conf on EDBT, Mar. 23, 2015, 12pgs. [cited by applicant]
Alijazzar, Husain, et al., “K*: A Heuristic Algorithm for finding the k shortest paths”, Artificial Intell, Elsevier Science, vol. 175, issue No. 18, pp. 2129-2154, Jul. 14, 2011, 26pgs. [cited by applicant]