default <V,E> List<Set<V>> |
ClosuresEnumerator.allClosures(Graph<V,E> g) |
Find all closures in the given graph.
|
default <V,E> List<Path<V,E>> |
CyclesEnumerator.allCycles(Graph<V,E> g) |
Find all cycles in the given graph.
|
default <V,E> List<Set<V>> |
MaximalCliquesEnumerator.allMaximalCliques(Graph<V,E> g) |
Finds all the maximal cliques in a graph.
|
default <V,E> List<VertexBiPartition<V,E>> |
MinimumEdgeCutAllST.allMinimumCuts(Graph<V,E> g,
WeightFunction<E> w,
V source,
V sink) |
Compute all the minimum edge-cuts in a graph between two terminal vertices.
|
default <V,E> List<Set<V>> |
MinimumVertexCutAllGlobal.allMinimumCuts(Graph<V,E> g,
WeightFunction<V> w) |
Find all the minimum vertex-cuts in a graph.
|
default <V,E> List<Set<V>> |
MinimumVertexCutAllST.allMinimumCuts(Graph<V,E> g,
WeightFunction<V> w,
V source,
V sink) |
Compute all the minimum vertex-cuts in a graph between two terminal vertices.
|
default <V,E> List<Path<V,E>> |
SimplePathsEnumerator.allSimplePaths(Graph<V,E> g,
V source,
V target) |
Find all the simple paths between a source and a target vertices in the given graph.
|
<V,E> Iterator<Set<V>> |
ClosuresEnumerator.closuresIter(Graph<V,E> g) |
Iterate over all closures in the given graph.
|
<V,E> ShortestPathAllPairs.Result<V,E> |
ShortestPathAllPairs.computeAllShortestPaths(Graph<V,E> g,
WeightFunction<E> w) |
Compute the shortest path between each pair of vertices in a graph.
|
<V,E> VertexPartition<V,E> |
ColoringAlgo.computeColoring(Graph<V,E> g) |
Assign a color to each vertex of the given graph, resulting in a valid coloring.
|
default <V,E> CoresAlgo.Result<V,E> |
CoresAlgo.computeCores(Graph<V,E> g) |
Compute the cores of the graph with respect to both in and out degree of the vertices.
|
<V,E> CoresAlgo.Result<V,E> |
CoresAlgo.computeCores(Graph<V,E> g,
EdgeDirection degreeType) |
Compute the cores of the graph with respect the given degree type.
|
<V,E> Path<V,E> |
EulerianTourAlgo.computeEulerianTour(Graph<V,E> g) |
Compute an Eulerian tour in the graph that visit all edges exactly once.
|
<V,E> TreePathMaxima.Result<V,E> |
TreePathMaxima.computeHeaviestEdgeInTreePaths(Graph<V,E> tree,
WeightFunction<E> w,
TreePathMaxima.Queries<V,E> queries) |
Compute the heaviest edge in multiple tree paths.
|
<V,E> VertexPartition<V,E> |
KEdgeConnectedComponentsAlgo.computeKEdgeConnectedComponents(Graph<V,E> g,
int k) |
Compute the k-edge connected components of a graph.
|
<V,E> List<Path<V,E>> |
KShortestPathsST.computeKShortestPaths(Graph<V,E> g,
WeightFunction<E> w,
V source,
V target,
int k) |
Compute the K shortest paths from a source vertex to a target vertex.
|
<V,E> Flow<V,E> |
MaximumFlow.computeMaximumFlow(Graph<V,E> g,
WeightFunction<E> capacity,
Collection<V> sources,
Collection<V> sinks) |
Calculate the maximum flow in a network between a set of sources and a set of sinks.
|
<V,E> Flow<V,E> |
MaximumFlow.computeMaximumFlow(Graph<V,E> g,
WeightFunction<E> capacity,
V source,
V sink) |
Calculate the maximum flow in a network between a source and a sink.
|
<V,E> Matching<V,E> |
MatchingAlgo.computeMaximumMatching(Graph<V,E> g,
WeightFunction<E> w) |
Compute the maximum weighted matching of a weighted undirected graph.
|
<V,E> Matching<V,E> |
MatchingAlgo.computeMaximumPerfectMatching(Graph<V,E> g,
WeightFunction<E> w) |
Compute the maximum perfect matching of a weighted undirected graph.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
WeightFunction<E> lowerBound,
WeightFunction<V> supply) |
Compute the min-cost (not maximum!) flow in a network given a supply for each vertex and a lower bound for the
edges flows.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
WeightFunction<V> supply) |
Compute the min-cost (not maximum!) flow in a network given a supply for each vertex.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostMaxFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
WeightFunction<E> lowerBound,
Collection<V> sources,
Collection<V> sinks) |
Compute the min-cost max-flow in a network between a set of sources and a set of sinks given a lower bound for
the edges flows.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostMaxFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
WeightFunction<E> lowerBound,
V source,
V sink) |
Compute the min-cost max-flow in a network between a source and a sink given a lower bound for the edges flows.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostMaxFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
Collection<V> sources,
Collection<V> sinks) |
Compute the min-cost max-flow in a network between a set of sources and a set of sinks.
|
<V,E> Flow<V,E> |
MinimumCostFlow.computeMinCostMaxFlow(Graph<V,E> g,
WeightFunction<E> capacity,
WeightFunction<E> cost,
V source,
V sink) |
Compute the min-cost max-flow in a network between a source and a sink.
|
<V,E> VertexBiPartition<V,E> |
MinimumEdgeCutGlobal.computeMinimumCut(Graph<V,E> g,
WeightFunction<E> w) |
Compute the global minimum edge-cut in a graph.
|
<V,E> VertexBiPartition<V,E> |
MinimumEdgeCutST.computeMinimumCut(Graph<V,E> g,
WeightFunction<E> w,
Collection<V> sources,
Collection<V> sinks) |
Compute the minimum edge-cut in a graph between two sets of vertices.
|
<V,E> VertexBiPartition<V,E> |
MinimumEdgeCutST.computeMinimumCut(Graph<V,E> g,
WeightFunction<E> w,
V source,
V sink) |
Compute the minimum edge-cut in a graph between two terminal vertices.
|
<V,E> Set<V> |
MinimumVertexCutGlobal.computeMinimumCut(Graph<V,E> g,
WeightFunction<V> w) |
Compute the global minimum vertex-cut in a graph.
|
<V,E> Set<V> |
MinimumVertexCutST.computeMinimumCut(Graph<V,E> g,
WeightFunction<V> w,
V source,
V sink) |
Compute the minimum vertex-cut in a graph between two terminal vertices.
|
<V,E> MinimumSpanningTree.Result<V,E> |
MinimumDirectedSpanningTree.computeMinimumDirectedSpanningTree(Graph<V,E> g,
WeightFunction<E> w,
V root) |
Compute a minimum directed spanning tree (MDST) in a directed graph, rooted at the given vertex.
|
default <V,E> Set<V> |
DominatingSetAlgo.computeMinimumDominationSet(Graph<V,E> g,
WeightFunction<V> w) |
Compute a minimum dominating set of the graph with respect to the in-degree + out-degree of the vertices.
|
<V,E> Set<V> |
DominatingSetAlgo.computeMinimumDominationSet(Graph<V,E> g,
WeightFunction<V> w,
EdgeDirection dominanceDirection) |
Compute a minimum dominating set of the graph with respect to the given edges direction.
|
<V,E> Set<E> |
EdgeCover.computeMinimumEdgeCover(Graph<V,E> g,
WeightFunction<E> w) |
Compute a minimum edge cover of a graph with respect to an edge weight function.
|
<V,E> Matching<V,E> |
MatchingAlgo.computeMinimumMatching(Graph<V,E> g,
WeightFunction<E> w) |
Compute the minimum weighted matching of a weighted undirected graph.
|
<V,E> Path<V,E> |
MinimumMeanCycle.computeMinimumMeanCycle(Graph<V,E> g,
WeightFunction<E> w) |
Compute the minimum mean cycle in a graph.
|
<V,E> Matching<V,E> |
MatchingAlgo.computeMinimumPerfectMatching(Graph<V,E> g,
WeightFunction<E> w) |
Compute the minimum perfect matching of a weighted undirected graph.
|
<V,E> MinimumSpanningTree.Result<V,E> |
MinimumSpanningTree.computeMinimumSpanningTree(Graph<V,E> g,
WeightFunction<E> w) |
Compute the minimum spanning tree (MST) of a given graph.
|
<V,E> Set<V> |
VertexCover.computeMinimumVertexCover(Graph<V,E> g,
WeightFunction<V> w) |
Compute a minimum vertex cover of a graph with respect to a vertex weight function.
|
<V,E> Path<V,E> |
ChinesePostman.computeShortestEdgeVisitorCircle(Graph<V,E> g,
WeightFunction<E> w) |
Compute the shortest circuit that visits all edges in the graph at least once.
|
<V,E> Path<V,E> |
ShortestPathHeuristicST.computeShortestPath(Graph<V,E> g,
WeightFunction<E> w,
V source,
V target,
ToDoubleFunction<V> vHeuristic) |
Compute the shortest path between two vertices in a graph.
|
<V,E> Path<V,E> |
ShortestPathST.computeShortestPath(Graph<V,E> g,
WeightFunction<E> w,
V source,
V target) |
Compute the shortest path from a source vertex to a target vertex.
|
<V,E> ShortestPathSingleSource.Result<V,E> |
ShortestPathSingleSource.computeShortestPaths(Graph<V,E> g,
WeightFunction<E> w,
V source) |
Compute the shortest paths from a source to any other vertex in a graph.
|
<V,E> Path<V,E> |
TspMetric.computeShortestTour(Graph<V,E> g,
WeightFunction<E> w) |
Compute the shortest tour that visit all vertices.
|
<V,E> SteinerTreeAlgo.Result<V,E> |
SteinerTreeAlgo.computeSteinerTree(Graph<V,E> g,
WeightFunction<E> w,
Collection<V> terminals) |
Compute the minimum Steiner tree of a given graph.
|
<V,E> ShortestPathAllPairs.Result<V,E> |
ShortestPathAllPairs.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.
|
<V,E> TopologicalOrderAlgo.Result<V,E> |
TopologicalOrderAlgo.computeTopologicalSorting(Graph<V,E> g) |
Compute the topological order of a DAG vertices.
|
<V,E> VoronoiAlgo.Result<V,E> |
VoronoiAlgo.computeVoronoiCells(Graph<V,E> g,
Collection<V> sites,
WeightFunction<E> w) |
Compute the Voronoi cells of a graph with respect to a set of sites and an edge weight function.
|
static <V,E> boolean |
GraphsUtils.containsParallelEdges(Graph<V,E> g) |
Check whether a graph contain parallel edges.
|
static <V,E> boolean |
GraphsUtils.containsSelfEdges(Graph<V,E> g) |
Check whether a graph contain self edges.
|
<V,E> Iterator<Path<V,E>> |
CyclesEnumerator.cyclesIter(Graph<V,E> g) |
Iterate over all cycles in the given graph.
|
<V,E> BiConnectedComponentsAlgo.Result<V,E> |
BiConnectedComponentsAlgo.findBiConnectedComponents(Graph<V,E> g) |
Compute all maximal bi-connected components of a graph.
|
<V,E> KVertexConnectedComponentsAlgo.Result<V,E> |
KVertexConnectedComponentsAlgo.findKVertexConnectedComponents(Graph<V,E> g,
int k) |
Find all k-vertex connected components in a graph.
|
<V,E> LowestCommonAncestorOffline.Result<V,E> |
LowestCommonAncestorOffline.findLCAs(Graph<V,E> tree,
V root,
LowestCommonAncestorOffline.Queries<V,E> queries) |
Find the lowest common ancestors of the given queries.
|
static <V,E> Optional<VertexBiPartition<V,E>> |
BipartiteGraphs.findPartition(Graph<V,E> g) |
Find a bipartite partition of the given graph (if one exists).
|
static <V,E> Optional<VertexBiPartition<V,E>> |
BipartiteGraphs.findPartition(Graph<V,E> g,
boolean addPartitionWeight) |
Find a bipartite partition of the given graph (if one exists), and optionally add the partition as vertex
weights.
|
static <V,E> Path<V,E> |
Path.findPath(Graph<V,E> g,
V source,
V target) |
Find a valid path from \(u\) to \(v\).
|
<V,E> VertexPartition<V,E> |
StronglyConnectedComponentsAlgo.findStronglyConnectedComponents(Graph<V,E> g) |
Find all strongly connected components in a graph.
|
<V,E> VertexPartition<V,E> |
WeaklyConnectedComponentsAlgo.findWeaklyConnectedComponents(Graph<V,E> g) |
Compute all weakly connected components in a graph.
|
static <V,E> VertexBiPartition<V,E> |
VertexBiPartition.fromMap(Graph<V,E> g,
Object2BooleanMap<V> map) |
Create a new vertex bi-partition from a vertex-side map.
|
static <V,E> VertexPartition<V,E> |
VertexPartition.fromMap(Graph<V,E> g,
Object2IntMap<V> map) |
Create a new vertex partition from a vertex-blockIndex map.
|
static <V,E> VertexBiPartition<V,E> |
VertexBiPartition.fromMapping(Graph<V,E> g,
Predicate<V> mapping) |
Create a new vertex bi-partition from a vertex-side mapping function.
|
static <V,E> VertexPartition<V,E> |
VertexPartition.fromMapping(Graph<V,E> g,
ToIntFunction<V> mapping) |
Create a new vertex partition from a vertex-blockIndex mapping function.
|
static <V,E> Optional<VertexBiPartition<V,E>> |
BipartiteGraphs.getExistingPartition(Graph<V,E> g) |
Get the existing bipartite partition of the given graph (if one exists).
|
static <V,E> boolean |
BipartiteGraphs.isBipartite(Graph<V,E> g) |
Check whether the given graph is bipartite or not.
|
static <V,E> boolean |
ClosuresEnumerator.isClosure(Graph<V,E> g,
Set<V> c) |
Check whether the given set is a closure in the given graph.
|
static <V,E> boolean |
ColoringAlgo.isColoring(Graph<V,E> g,
ToIntFunction<V> mapping) |
Check whether a given mapping is a valid coloring of a graph.
|
static <V,E> boolean |
EdgeCover.isCover(Graph<V,E> g,
Collection<E> edges) |
Check whether a set of edges is a edge cover of a graph.
|
static <V,E> boolean |
VertexCover.isCover(Graph<V,E> g,
Collection<V> vertices) |
Check whether a set of vertices is a vertex cover of a graph.
|
static <V,E> boolean |
MinimumVertexCutGlobal.isCut(Graph<V,E> g,
Set<V> cut) |
Check whether the given vertices form a vertex cut in the graph.
|
static <V,E> boolean |
DominatingSetAlgo.isDominatingSet(Graph<V,E> g,
Collection<V> dominatingSet,
EdgeDirection dominanceDirection) |
Check whether a given set of vertices is a dominating set of a graph.
|
static <V,E> boolean |
Trees.isForest(Graph<V,E> g) |
Check if a graph is a forest.
|
static <V,E> boolean |
Matching.isMatching(Graph<V,E> g,
Collection<E> edges) |
Check whether the given collection of edges form a valid matching in the graph.
|
static <V,E> boolean |
VertexBiPartition.isPartition(Graph<V,E> g,
Predicate<V> mapping) |
Check if a mapping is a valid bi-partition of the vertices of a graph.
|
static <V,E> boolean |
VertexPartition.isPartition(Graph<V,E> g,
ToIntFunction<V> mapping) |
Check if a mapping is a valid partition of the vertices of a graph.
|
static <V,E> boolean |
Path.isPath(Graph<V,E> g,
V source,
V target,
List<E> edges) |
Check whether the given edge list is a valid path in the given graph.
|
static <V,E> boolean |
MinimumSpanningTree.isSpanningForest(Graph<V,E> g,
Collection<E> edges) |
Check whether a given set of edges is a spanning forest of a given graph.
|
static <V,E> boolean |
MinimumSpanningTree.isSpanningTree(Graph<V,E> g,
Collection<E> edges) |
Check whether a given set of edges is a spanning tree of a given graph.
|
static <V,E> boolean |
SteinerTreeAlgo.isSteinerTree(Graph<V,E> g,
Collection<V> terminals,
Collection<E> edges) |
Check whether a given set of edges is a valid Steiner tree for a given graph and terminals.
|
<V,E> boolean |
StronglyConnectedComponentsAlgo.isStronglyConnected(Graph<V,E> g) |
Check whether a graph is strongly connected.
|
static <V,E> boolean |
Trees.isTree(Graph<V,E> g) |
Check if an undirected graph is a tree.
|
static <V,E> boolean |
Trees.isTree(Graph<V,E> g,
V root) |
Check if a graph is a tree rooted as some vertex.
|
<V,E> boolean |
WeaklyConnectedComponentsAlgo.isWeaklyConnected(Graph<V,E> g) |
Check whether a graph is weakly connected.
|
<V,E> Iterator<Set<V>> |
MaximalCliquesEnumerator.maximalCliquesIter(Graph<V,E> g) |
Iterate over all maximal cliques in a graph.
|
<V,E> Iterator<VertexBiPartition<V,E>> |
MinimumEdgeCutAllST.minimumCutsIter(Graph<V,E> g,
WeightFunction<E> w,
V source,
V sink) |
Iterate over all the minimum edge-cuts in a graph between two terminal vertices.
|
<V,E> Iterator<Set<V>> |
MinimumVertexCutAllGlobal.minimumCutsIter(Graph<V,E> g,
WeightFunction<V> w) |
Iterate over all the minimum vertex-cuts in a graph.
|
<V,E> Iterator<Set<V>> |
MinimumVertexCutAllST.minimumCutsIter(Graph<V,E> g,
WeightFunction<V> w,
V source,
V sink) |
Iterate over all the minimum vertex-cuts in a graph between two terminal vertices.
|
static <V,E> Bfs.Iter<V,E> |
Bfs.newInstance(Graph<V,E> g,
V source) |
Create a BFS iterator.
|
static <V,E> Dfs.Iter<V,E> |
Dfs.newInstance(Graph<V,E> g,
V source) |
Create a DFS iterator.
|
static <V,E> LowestCommonAncestorOffline.Queries<V,E> |
LowestCommonAncestorOffline.Queries.newInstance(Graph<V,E> g) |
Create an empty queries container.
|
static <V,E> Path<V,E> |
Path.newInstance(Graph<V,E> g,
V source,
V target,
List<E> edges) |
Create a new path from an edge list, a source and a target vertices.
|
static <V,E> Bfs.Iter<V,E> |
Bfs.newInstanceBackward(Graph<V,E> g,
V source) |
Create a backward BFS iterator.
|
<V,E> LowestCommonAncestorStatic.DataStructure<V,E> |
LowestCommonAncestorStatic.preProcessTree(Graph<V,E> tree,
V root) |
Perform a static pre processing of a tree for future LCA (Lowest common ancestor) queries.
|
static <V,E> Set<V> |
Path.reachableVertices(Graph<V,E> g,
Iterator<V> sources) |
Find all the vertices reachable from a given set of source vertices.
|
static <V,E> Set<V> |
Path.reachableVertices(Graph<V,E> g,
V source) |
Find all the vertices reachable from a given source vertex.
|
<V,E> Iterator<Path<V,E>> |
SimplePathsEnumerator.simplePathsIter(Graph<V,E> g,
V source,
V target) |
Iterate over all the simple paths between a source and a target vertices in the given graph.
|
static <V,E> boolean |
TreePathMaxima.verifyMST(Graph<V,E> g,
WeightFunction<E> w,
Collection<E> mstEdges,
TreePathMaxima tpmAlgo) |
Verify that the given edges actually form an MST of a graph.
|