[ library(all_min_cuts) | Reference Manual | Alphabetic Index ]
# 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
*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)

## 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