Pruned Landmark Trees for Efficient Shortest Path Queries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing landmark-based algorithms for finding shortest paths in large networks are inefficient in terms of memory usage and query time, especially when dealing with graphs of hundreds of millions of vertices, as they require significant resources to maintain accuracy and speed.
Innovation Solution
The proposed solution involves pruning the size of shortest path trees by limiting each node to appear in no more than a fixed number of path trees, using a modified Breadth-First-Search algorithm to precompute pruned landmark trees, and employing a data structure that stores distances and paths between landmarks to reduce memory usage and improve query efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If landmark-based algorithms use more landmarks to increase accuracy, then measurement precision improves, but device complexity and memory usage increase linearly
Solution Approach 1:
The patent extracts and stores only the most critical information needed for accurate shortest path estimation - specifically, for each node, only the distance to its nearest landmark is stored rather than complete shortest path trees. This extraction of essential data reduces memory requirements from O(kn) to O(n) while preserving accuracy by maintaining the most important distance metric for each node.
Solution Approach 2:
The patent performs preliminary computation to identify and store the nearest landmark for each node before queries are executed. During the precomputation phase, shortest path trees are built from each landmark and each node records its nearest landmark. This preliminary action enables O(1) query time while using only O(n) space, as the heavy computation is done once beforehand.
2Measurement precision
If exact methods like Dijkstra's traversal are used, then measurement precision improves, but productivity decreases due to prohibitively slow performance
Solution Approach 1:
The patent performs preliminary computation during an offline phase where shortest path trees are constructed from each landmark and each node stores its nearest landmark. This precomputation transforms the online query problem into a simple O(1) lookup operation, achieving exact shortest path calculations at query time without the O(n log n) overhead of running Dijkstra's algorithm for each query.
Solution Approach 2:
The patent creates a compressed copy of the network structure in the form of nearest-landmark assignments for each node. Instead of storing complete shortest path trees or running full pathfinding algorithms, it stores a simplified representation that captures the essential routing information, enabling fast queries while maintaining accuracy.
3Measurement precision
If landmark-based algorithms precompute distances to all landmarks, then measurement precision improves, but device complexity increases with O(kn) space requirements
Solution Approach 1:
The patent extracts only the essential distance information needed for accurate estimation - specifically, each node stores only its distance to the nearest landmark rather than distances to all k landmarks. This extraction reduces the space complexity from O(kn) to O(n) while maintaining the accuracy needed for effective shortest path computation using the triangle inequality.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The disclosure relates to of generating a data structure stored in a computer memory for use in performing a search query to determine a separation between nodes in a network of interconnected nodes, wherein the method comprises: selecting a set of landmark nodes from the network; and for at least two of the landmark nodes in the set; generating a path tree for each landmark node that indicates a separation between the landmark node and each of a plurality of nodes; wherein the generating is configured to limit the number of path trees each of said plurality of nodes may appear in to no more than a predetermined number of path trees. A method of processing a data structure is also disclosed.