Package org.jgrapht.alg.shortestpath
Class BaseBidirectionalShortestPathAlgorithm<V,E>
- java.lang.Object
-
- org.jgrapht.alg.shortestpath.BaseBidirectionalShortestPathAlgorithm<V,E>
-
- Type Parameters:
V- vertices typeE- edges type
- All Implemented Interfaces:
ShortestPathAlgorithm<V,E>
- Direct Known Subclasses:
BidirectionalAStarShortestPath,BidirectionalDijkstraShortestPath
public abstract class BaseBidirectionalShortestPathAlgorithm<V,E> extends java.lang.ObjectBase class for the bidirectional shortest path algorithms. Currently known extensions areBidirectionalDijkstraShortestPathandBidirectionalAStarShortestPath.- Author:
- Dimitrios Michail
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jgrapht.alg.interfaces.ShortestPathAlgorithm
ShortestPathAlgorithm.SingleSourcePaths<V,E>
-
-
Field Summary
Fields Modifier and Type Field Description protected Graph<V,E>graphThe underlying graph.protected static java.lang.StringGRAPH_CONTAINS_A_NEGATIVE_WEIGHT_CYCLEError message for reporting the existence of a negative-weight cycle.protected static java.lang.StringGRAPH_MUST_CONTAIN_THE_SINK_VERTEXError message for reporting that a sink vertex is missing.protected static java.lang.StringGRAPH_MUST_CONTAIN_THE_SOURCE_VERTEXError message for reporting that a source vertex is missing.
-
Constructor Summary
Constructors Constructor Description BaseBidirectionalShortestPathAlgorithm(Graph<V,E> graph)Constructs a new instance of the algorithm for a given graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected GraphPath<V,E>createEmptyPath(V source, V sink)Create an empty path.protected GraphPath<V,E>createPath(org.jgrapht.alg.shortestpath.BaseBidirectionalShortestPathAlgorithm.BaseSearchFrontier<V,E> forwardFrontier, org.jgrapht.alg.shortestpath.BaseBidirectionalShortestPathAlgorithm.BaseSearchFrontier<V,E> backwardFrontier, double weight, V source, V commonVertex, V sink)Builds shortest path betweensourceandsinkbased on the information provided by search frontiers and common 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.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jgrapht.alg.interfaces.ShortestPathAlgorithm
getPath
-
-
-
-
Field Detail
-
GRAPH_CONTAINS_A_NEGATIVE_WEIGHT_CYCLE
protected static final java.lang.String GRAPH_CONTAINS_A_NEGATIVE_WEIGHT_CYCLE
Error message for reporting the existence of a negative-weight cycle.- See Also:
- Constant Field Values
-
GRAPH_MUST_CONTAIN_THE_SOURCE_VERTEX
protected static final java.lang.String GRAPH_MUST_CONTAIN_THE_SOURCE_VERTEX
Error message for reporting that a source vertex is missing.- See Also:
- Constant Field Values
-
GRAPH_MUST_CONTAIN_THE_SINK_VERTEX
protected static final java.lang.String GRAPH_MUST_CONTAIN_THE_SINK_VERTEX
Error message for reporting that a sink vertex is missing.- See Also:
- Constant Field Values
-
graph
protected final Graph<V,E> graph
The underlying graph.
-
-
Method Detail
-
createPath
protected GraphPath<V,E> createPath(org.jgrapht.alg.shortestpath.BaseBidirectionalShortestPathAlgorithm.BaseSearchFrontier<V,E> forwardFrontier, org.jgrapht.alg.shortestpath.BaseBidirectionalShortestPathAlgorithm.BaseSearchFrontier<V,E> backwardFrontier, double weight, V source, V commonVertex, V sink)
Builds shortest path betweensourceandsinkbased on the information provided by search frontiers and common vertex.- Parameters:
forwardFrontier- forward direction frontierbackwardFrontier- backward direction frontierweight- weight of the shortest pathsource- path sourcecommonVertex- path common vertexsink- path sink- Returns:
- shortest path between source and sink
-
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
-
createEmptyPath
protected final GraphPath<V,E> createEmptyPath(V source, V sink)
Create an empty path. Returns null if the source vertex is different than the target vertex.- Parameters:
source- the source vertexsink- the sink vertex- Returns:
- an empty path or null null if the source vertex is different than the target vertex
-
-