Method of Accelerating the Shortest Path Problem

Information

  • Patent Application
  • 20070177512
  • Publication Number
    20070177512
  • Date Filed
    February 02, 2007
    17 years ago
  • Date Published
    August 02, 2007
    17 years ago
Abstract
The solution to the shortest path between a source node and multiple destination nodes is accelerated using a grouping of nodes, where the nodes are grouped based on distance from the source node, and a corresponding set of memory locations that indicate when a group includes one or more nodes. The memory locations can be quickly searched to determine the group that represents the shortest distance from the source node and that includes one or more nodes. Nodes may be grouped into additional groupings that do not correspond to the set of memory locations, when the distance from the source node to the nodes exceeds the range of memory locations. Advantageously, the disclosed system and method provide the ability to reach asymptotically optimal performance.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an illustrative graph including a number of nodes.



FIG. 2 illustrates schematically an embodiment of the Minimum Value Accelerator in accordance with an embodiment of the present invention.



FIG. 3 shows a schematic view of one implementation of a lookup circuit used in the Minimum Value Accelerator.



FIG. 4 illustrates a lookup operation of the Minimum Value Accelerator with retrieval of the next vertex from Active Queue Array.



FIG. 5 schematically illustrates a Candidate Queue Array and associated data structures.



FIG. 6 is a flow chart of the general process of determining the shortest path between a single source vertex and multiple vertices that may be implemented in accordance with an embodiment of the present invention.



FIGS. 7A, 7B, and 7C are detailed flow charts of the process shown in FIG. 6.



FIG. 8 is a detailed flow chart of part of the process shown in FIG. 7C.



FIG. 9 illustrates a computer that may be used to implement the present invention.


Claims
  • 1. A method of finding the shortest path between a source node and multiple destination nodes, said method comprising: evaluating nodes that neighbor a first node based on the distance from the source node to the neighboring nodes;grouping the neighboring nodes into a plurality of groups based on the distance from the source node to the neighboring nodes;initializing a set of memory locations, which contains one location for each group, by setting at least one bit in a memory location if the corresponding group contains at least one node;selecting a group having at least one node, said group representing the shortest distance from the source node;retrieving the next node from said selected group and deleting said node from said selected group.
  • 2. The method of claim 1, further comprising: repeating the acts of evaluating, grouping, and initializing nodes using said next node as said first node.
  • 3. The method of claim 1, wherein grouping the neighboring nodes into a plurality of groups based on the distance from the source node to the neighboring nodes comprises: storing a neighboring node in a first set of plurality of groups if the distance from said source node to said neighboring node is within a range;storing a neighboring node in a second set of plurality of groups if the distance from said source node to said neighboring node is greater than said range;wherein said set of memory locations contains one location for each group in said first set of plurality of groups.
  • 4. The method of claim 1, wherein said set of memory locations represents said range, said range being based on the number of locations in said set of memory locations.
  • 5. The method of claim 4, further comprising: increasing the range represented by said set of memory locations; andmoving nodes from said second set of plurality of groups to said first set of plurality of groups when said nodes have an attribute that is within said increased range.
  • 6. The method of claim 5, wherein said increasing the range and moving nodes is performed when there are no nodes in said first set of plurality of groups.
Divisions (1)
Number Date Country
Parent 10404970 Mar 2003 US
Child 11670873 US