[ 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