[ 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