org.jgrapht.alg.shortestpath
Class BidirectionalDijkstraShortestPath<V,E>
- java.lang.Object
-
- org.jgrapht.alg.shortestpath.BidirectionalDijkstraShortestPath<V,E>
-
- Type Parameters:
V- the graph vertex typeE- the graph edge type
- All Implemented Interfaces:
- ShortestPathAlgorithm<V,E>
public final class BidirectionalDijkstraShortestPath<V,E> extends java.lang.ObjectA bidirectional version of Dijkstra's algorithm.See the Wikipedia article for details and references about bidirectional search. This technique does not change the worst-case behavior of the algorithm but reduces, in some cases, the number of visited vertices in practice. This implementation alternatively constructs forward and reverse paths from the source and target vertices respectively.
- Since:
- July 2016
- See Also:
DijkstraShortestPath
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jgrapht.alg.interfaces.ShortestPathAlgorithm
ShortestPathAlgorithm.SingleSourcePaths<V,E>
-
-
Constructor Summary
Constructors Constructor and Description BidirectionalDijkstraShortestPath(Graph<V,E> graph)Constructs a new instance for a specified graph.BidirectionalDijkstraShortestPath(Graph<V,E> graph, double radius)Constructs a new instance for a specified graph.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description static <V,E> GraphPath<V,E>findPathBetween(Graph<V,E> graph, V source, V sink)Find a path between two vertices.GraphPath<V,E>getPath(V source, V sink)Get a shortest path from a source vertex to a sink vertex.ShortestPathAlgorithm.SingleSourcePaths<V,E>getPaths(V source)Compute all shortest paths starting from a single source vertex.doublegetPathWeight(V source, V sink)Get the weight of the shortest path from a source vertex to a sink vertex.
-
-
-
Constructor Detail
-
BidirectionalDijkstraShortestPath
public BidirectionalDijkstraShortestPath(Graph<V,E> graph)
Constructs a new instance for a specified graph.- Parameters:
graph- the input graph
-
-
Method Detail
-
getPath
public GraphPath<V,E> getPath(V source, V sink)
Description copied from interface:ShortestPathAlgorithmGet a shortest path from a source vertex to a sink vertex.- Parameters:
source- the source vertexsink- the target vertex- Returns:
- a shortest path or null if no path exists
-
findPathBetween
public static <V,E> GraphPath<V,E> findPathBetween(Graph<V,E> graph, V source, V sink)
Find a path between two vertices. For a more advanced search (e.g. limited by radius), use the constructor instead.- Type Parameters:
V- the graph vertex typeE- the graph edge type- Parameters:
graph- the graph to be searchedsource- the vertex at which the path should startsink- the vertex at which the path should end- Returns:
- a shortest path, or null if no path exists
-
getPaths
public ShortestPathAlgorithm.SingleSourcePaths<V,E> getPaths(V source)
Compute all shortest paths starting from a single source vertex.- Specified by:
getPathsin interfaceShortestPathAlgorithm<V,E>- Parameters:
source- the source vertex- Returns:
- the shortest paths
-
getPathWeight
public double getPathWeight(V source, V sink)Get the weight of the shortest path from a source vertex to a sink vertex. ReturnsDouble.POSITIVE_INFINITYif no path exists.- Specified by:
getPathWeightin interfaceShortestPathAlgorithm<V,E>- Parameters:
source- the source vertexsink- the sink vertex- Returns:
- the weight of the shortest path from a source vertex to a sink vertex, or
Double.POSITIVE_INFINITYif no path exists
-
-
DataMelt 3.0 © DataMelt by jWork.ORG