- Type Parameters:
V
- the graph vertex typeE
- the graph edge type
- All Known Subinterfaces:
MaximumFlowAlgorithm<V,
,E> MinimumCostFlowAlgorithm<V,
E>
- All Known Implementing Classes:
BoykovKolmogorovMFImpl
,CapacityScalingMinimumCostFlow
,DinicMFImpl
,EdmondsKarpMFImpl
,GusfieldEquivalentFlowTree
,GusfieldGomoryHuCutTree
,MaximumFlowAlgorithmBase
,PushRelabelMFImpl
public interface FlowAlgorithm<V,E>
Interface for flow algorithms
- Author:
- Joris Kinable
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents a flow.static class
Default implementation ofFlowAlgorithm.Flow
-
Method Summary
Modifier and TypeMethodDescriptiondefault FlowAlgorithm.Flow<E>
getFlow()
Result object of a flow algorithmgetFlowDirection
(E edge) For the specifiededge
$(u, v)$ returns vertex $v$ if the flow goes from $u$ to $v$, or returns vertex $u$ otherwise.Returns a read-only mapping from edges to the corresponding flow values.
-
Method Details
-
getFlow
Result object of a flow algorithm- Returns:
- flow
-
getFlowMap
Returns a read-only mapping from edges to the corresponding flow values.- Returns:
- a read-only mapping from edges to the corresponding flow values.
-
getFlowDirection
For the specifiededge
$(u, v)$ returns vertex $v$ if the flow goes from $u$ to $v$, or returns vertex $u$ otherwise. For directed flow networks the result is always the head of the specified arc.Note: not all flow algorithms may support undirected graphs.
- Parameters:
edge
- an edge from the specified flow network- Returns:
- the direction of the flow on the
edge
-