
all_min_cuts(+Graph, +CapacityArg, +SourceNode, +SinkNode, +Limit, -MaxFlowValue, -MaxFlowEdges, -MinCuts, -MinCutEdges)

   Curet et al, algorithm for generating all minimum-cost cuts, with limit for max number of allowed cuts

Arguments
   Graph               a graph structure, no parallel edges, e(Src,Dest,EdgeData)
   CapacityArg         which argument of EdgeData to use as edge capacity (integer), (0 if EdgeData is a single number and -1 if every edge capacity is 1)
   SourceNode          source node number (integer)
   SinkNode            sink node number (integer)
   Limit               max number of min cuts to output (integer), if 0 then output all possible mincuts
   MaxFlowValue        value of the maximum flow
   MaxFlowEdges        list denoting edges with non-zero flow (form: Flow-Edge)
   MinCuts             list of max Limit minimum cost cutsets (each cutset is represented by a list of nodes belonging to the source-side of the cut)
   MinCutEdges         list of all minimum cost cutsets (each cutset is represented by a list of edges that separate the source-side and the sink-side of the cut)

Type
   library(all_min_cuts)

Description
This predicate uses the saem interface, and provides the same information as all_min_cuts/8, but adds an argument to limit the number of cuts that are generated. This can be helpful in graphs with a structure that creates very large numbers of minimal cost cutsets, the Limit argument is used to restrict the number of solutions returned.

See Also
   max_flow : max_flow / 5, max_flow : max_flow / 7, max_flow_eplex : max_flow_eplex / 5, max_flow_eplex : max_flow_eplex_dual / 5, max_flow_eplex : max_flow_eplex_dual / 7, all_min_cuts / 8, all_min_cuts / 9, all_min_cuts_list / 5, all_min_cuts_eplex : all_min_cuts_eplex / 7, all_min_cuts_eplex : all_min_cuts_eplex / 8
