java.lang.Object
org.jgrapht.alg.shortestpath.AllDirectedPaths<V,E>
 Type Parameters:
V
 the graph vertex typeE
 the graph edge type
A Dijkstralike algorithm to find all paths between two sets of nodes in a directed graph, with
options to search only simple paths and to limit the path length.
 Author:
 Andrew GainerDewar, Google LLC

Constructor Summary
ConstructorDescriptionAllDirectedPaths
(Graph<V, E> graph) Create a new instance.AllDirectedPaths
(Graph<V, E> graph, PathValidator<V, E> pathValidator) Create a new instance with givenpathValidator
. 
Method Summary
Modifier and TypeMethodDescriptiongetAllPaths
(Set<V> sourceVertices, Set<V> targetVertices, boolean simplePathsOnly, Integer maxPathLength) Calculate (and return) all paths from the source vertices to the target vertices.getAllPaths
(V sourceVertex, V targetVertex, boolean simplePathsOnly, Integer maxPathLength) Calculate (and return) all paths from the source vertex to the target vertex.

Constructor Details

AllDirectedPaths
Create a new instance. Parameters:
graph
 the input graph Throws:
IllegalArgumentException
 if the graph is not directed

AllDirectedPaths
Create a new instance with givenpathValidator
. If nonnull
, thepathValidator
will be used while searching for paths, validating the addition of any edge to a partial path. Zerolength paths will therefore not be subject topathValidator
; length1 paths will. Parameters:
graph
 the input graphpathValidator
 validator for computed paths; may be null Throws:
IllegalArgumentException
 if the graph is not directed


Method Details

getAllPaths
public List<GraphPath<V,E>> getAllPaths(V sourceVertex, V targetVertex, boolean simplePathsOnly, Integer maxPathLength) Calculate (and return) all paths from the source vertex to the target vertex. Parameters:
sourceVertex
 the source vertextargetVertex
 the target vertexsimplePathsOnly
 if true, only search simple (nonselfintersecting) pathsmaxPathLength
 maximum number of edges to allow in a path (if null, all paths are considered, which may be very slow due to potentially huge output) Returns:
 all paths from the source vertex to the target vertex

getAllPaths
public List<GraphPath<V,E>> getAllPaths(Set<V> sourceVertices, Set<V> targetVertices, boolean simplePathsOnly, Integer maxPathLength) Calculate (and return) all paths from the source vertices to the target vertices. Parameters:
sourceVertices
 the source verticestargetVertices
 the target verticessimplePathsOnly
 if true, only search simple (nonselfintersecting) pathsmaxPathLength
 maximum number of edges to allow in a path (if null, all paths are considered, which may be very slow due to potentially huge output) Returns:
 list of all paths from the sources to the targets containing no more than maxPathLength edges
