
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

Arguments
   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

Type
   library(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
