Bi-directional Path Computation for Network Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current path computation methods, such as Dijkstra's algorithm, are inefficient in large networks with complex connectivity, particularly when no path exists from the source to the destination, leading to long execution times due to the asymmetric nature of the algorithm and the need to traverse the entire routing graph.
Innovation Solution
A parallelized approach is introduced, where path computation is performed simultaneously from both the source and destination nodes using two threads, allowing for early exit when no connectivity is found, and utilizing Yen's k-shortest paths algorithm with Dijkstra's algorithm to find k-optimal bi-directional paths.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If Dijkstra's algorithm is used for path computation in large networks with complex connectivity, then the algorithm can find the shortest path, but the execution time becomes very long when no path exists from source to destination
Solution Approach 1:
The patent divides the single-source path computation into two simultaneous computations: one from the source node and another from the destination node. This segmentation allows the algorithm to explore the network graph from both directions concurrently, reducing the time required to determine connectivity or find paths in large networks with complex topology.
Solution Approach 2:
The patent merges two Dijkstra algorithm executions (source-to-destination and destination-to-source) into a single computational framework. By combining these bidirectional searches and allowing early termination when either direction determines no path exists, the system achieves faster execution while maintaining path computation accuracy.
2Reliability
If the entire routing graph is traversed to determine path existence, then complete connectivity information is obtained, but computation time increases significantly in large networks
Solution Approach 1:
The patent performs preliminary bidirectional exploration simultaneously, allowing the algorithm to detect non-connectivity conditions earlier in the process. By initiating searches from both source and destination nodes at the same time, the system can determine connectivity status without completing a full graph traversal, thus improving computation speed while maintaining reliable connectivity determination.
Solution Approach 2:
The patent inverts the traditional unidirectional approach by implementing bidirectional search. Instead of only searching from source to destination, the algorithm simultaneously searches from destination to source, allowing early termination when either direction determines no path exists. This inversion significantly reduces computation time while maintaining accurate connectivity determination.
3Device complexity
If unidirectional path computation is performed from source to destination, then the algorithm structure is simple, but execution time varies significantly based on network topology asymmetry
Solution Approach 1:
The patent addresses the inherent asymmetry in network topology by implementing a symmetric bidirectional search approach. Instead of relying on a single unidirectional search whose performance depends on the direction of traversal, the algorithm performs simultaneous searches from both ends, balancing the computational effort and reducing the impact of topological asymmetry on execution time.
Solution Approach 2:
The patent introduces dynamic termination conditions where the algorithm can stop early if either the source-to-destination or destination-to-source search determines no path exists. This dynamic approach allows the system to adapt the computation duration based on the actual network connectivity, improving run-time performance while maintaining structural clarity through the use of two standard Dijkstra algorithm executions.
Data Source
AI summary
Systems and methods include, responsive to defining a routing graph that includes vertices for each node of a plurality of nodes in a network and edges for links interconnecting the plurality of nodes, receiving a request for k shortest paths, where k is an integer>0, between a source node and a destination node of the plurality of nodes; and determining the k shortest paths utilizing a k-shortest path algorithm that utilizes two threads in parallel for each shortest path query, wherein the two threads include i) a shortest path query from the source node to the destination node and ii) a shortest path query from the destination node to the source node. The determining further includes, responsive to a first thread in each shortest path query obtaining a result, utilizing the result from the first thread and terminating a second thread.


