[ library(max_flow) | Reference Manual | Alphabetic Index ]
# feas_flow_with_lb(+Graph, +LowerBoundArg, +CapacityArg, +SourceNode, +SinkNode, -FlowValue, -FlowEdges, -FlowEdgesGraph)

Finds a feasible 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), EdgeData must be a structure with at least two arguments (for the lower and upper bounds of the edge capacity
*LowerBoundArg*
- which argument of EdgeData to use as the minimum flow (lower bound) for edge (integer)
*CapacityArg*
- which argument of EdgeData to use as (uppoer bound) edge capacity (integer),
*SourceNode*
- source node number (integer)
*SinkNode*
- sink node number (integer)
*FlowValue*
- value of the flow
*FlowEdges*
- list denoting edges with non-zero flow (form: Flow-Edge)
*FlowEdgesGraph*
- a graph structure, original nodes (as in Graph) but only the edges that are in max flow

## Description

This predicate returns a feasible flow for a network whose edges can have a (non-negative) lower bound imposed on the edge flows. This is done by transforming the network to one with zero lower-bounds and solving for feasibility. Normally this will serve as the starting point for obtaining the maximal flow for the original network, but this predicate is provided for cases where a feasible solution is sufficient. If there is a feasible solution, it returns the total flow value for this solution, a list of all edges with flow, and a graph of the edges with non-zero flow. It fails if there are no feasible flow.
### Fail Conditions

There is no feasible flow from Source to Sink
## See Also

max_flow_with_lb / 8, max_flow / 5, max_flow / 7