Interface ShortestPathAllPairs
- All Known Implementing Classes:
ShortestPathAllPairsAbstract,ShortestPathAllPairsCardinality,ShortestPathAllPairsFloydWarshall,ShortestPathAllPairsJohnson
The regular ShortestPathSingleSource can be used \(n\) times to achieve the same result, but it may be more
efficient to use a APSP algorithm in the first place.
Use newInstance() to get a default implementation of this interface. A builder obtained via
builder() may support different options to obtain different implementations.
- Author:
- Barak Ugav
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA builder forShortestPathAllPairsobjects.static interfaceA result object for anShortestPathAllPairsalgorithm forIntGraph.static interfaceA result object for anShortestPathAllPairsalgorithm. -
Method Summary
Modifier and TypeMethodDescriptionstatic ShortestPathAllPairs.Builderbuilder()Create a new all pairs shortest paths algorithm builder.<V,E> ShortestPathAllPairs.Result<V, E> computeAllShortestPaths(Graph<V, E> g, WeightFunction<E> w) Compute the shortest path between each pair of vertices in a graph.<V,E> ShortestPathAllPairs.Result<V, E> computeSubsetShortestPaths(Graph<V, E> g, Collection<V> verticesSubset, WeightFunction<E> w) Compute the shortest path between each pair of vertices in a given subset of the vertices of the graph.static ShortestPathAllPairsCreate a new all-pairs-shortest-paths algorithm object.
-
Method Details
-
computeAllShortestPaths
Compute the shortest path between each pair of vertices in a graph.Given an edge weight function, the length of a path is the weight sum of all edges of the path. The shortest path from a source vertex to some other vertex is the path with the minimum weight.
To compute the shortest cardinality (non weighted) paths, pass
nullinstead of the weight functionw.If
gis anIntGraph, aShortestPathAllPairs.IResultobject will be returned. In that case, its better to pass aIWeightFunctionaswto avoid boxing/unboxing.- Type Parameters:
V- the vertices typeE- the edges type- Parameters:
g- a graphw- an edge weight function- Returns:
- a result object containing information on the shortest path between each pair of vertices
- Throws:
NegativeCycleException- if a negative cycle is detected in the graph
-
computeSubsetShortestPaths
<V,E> ShortestPathAllPairs.Result<V,E> computeSubsetShortestPaths(Graph<V, E> g, Collection<V> verticesSubset, WeightFunction<E> w) Compute the shortest path between each pair of vertices in a given subset of the vertices of the graph.To compute the shortest cardinality (non weighted) paths, pass
nullinstead of the weight functionw.If
gis anIntGraph, aShortestPathAllPairs.IResultobject will be returned. In that case, its better to pass aIWeightFunctionaswandIntCollectionasverticesSubsetto avoid boxing/unboxing.- Type Parameters:
V- the vertices typeE- the edges type- Parameters:
g- a graphverticesSubset- a subset of vertices of the graph. All shortest paths will be computed between each pair of vertices from the subsetw- as edge weight function- Returns:
- a result object containing information on the shortest path between each pair of vertices in the subset
- Throws:
NegativeCycleException- if a negative cycle is detected in the graph. If there is a negative cycle that is not reachable from the set of given vertices, it might not be detected, depending on the implementation
-
newInstance
Create a new all-pairs-shortest-paths algorithm object.This is the recommended way to instantiate a new
ShortestPathAllPairsobject. TheShortestPathAllPairs.Buildermight support different options to obtain different implementations.- Returns:
- a default implementation of
ShortestPathAllPairs
-
builder
Create a new all pairs shortest paths algorithm builder.Use
newInstance()for a default implementation.- Returns:
- a new builder that can build
ShortestPathAllPairsobjects
-