[ library(max_flow) | Reference Manual | Alphabetic Index ]
max_flow_with_lb(+Graph, +LowerBoundArg, +CapacityArg, +SourceNode, +SinkNode, -MaxFlowValue, -MaxFlowEdges, -MaxFlowEdgesGraph)
Finds rhe maximum flow for a network with non-negative lower-bounds imposed on the edge flows,using an adapted Ford-Fulkerson maximum flow algorithm
- Graph
- a graph structure, no parallel edges, e(Src,Dest,EdgeData)
- LowerBoundArg
- which argument of EdgeData to use as the minimum flow (lower bound) for edge (integer)
- CapacityArg
- which argument of EdgeData to use as edge capacity (integer),
- SourceNode
- source node number (integer)
- SinkNode
- sink node number (integer)
- MaxFlowValue
- value of the maximum flow
- MaxFlowEdges
- list denoting edges with non-zero flow (form: Flow-Edge)
- MaxFlowEdgesGraph
- a graph structure, original nodes (as in Graph) but only the edges that are in max flow
Description
This predicate provides an implementation of the Ford-Fulkerson max-flow algorithm between two nodes in a graph, modified to allow edges to have non-negative minimum flows. It returns the maximal achievable flow allowed by the capacities in the network, a list of all edges with non-zero flow, and a graph of the edges with non-zero flow.
Fail Conditions
There is no feasible flow between Source and Sink nodes.
See Also
max_flow_with_lb / 6, max_flow / 5, max_flow / 7, feas_flow_with_lb / 8, all_min_cuts : all_min_cuts / 8, all_min_cuts : all_min_cuts / 9, all_min_cuts : all_min_cuts_list / 5