[ library(all_min_cuts) | Reference Manual | Alphabetic Index ]

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

Curet et al, algorithm for generating all minimum-cost 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)
MaxFlowValue
  value of the maximum flow
MaxFlowEdges
  list denoting edges with non-zero flow (form: Flow-Edge)
MinCuts
  list of all 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 provides all minimal cost cutsets for a max flow problem in a graph between a source and a sink node. It returns the maximal flow value, edges with non-zero flow in the optimal solution, and a list of all minimum cost cutsets corresponding to that flow value. The results are given both as node lists (nodes on the source side of the cut), and as edge lists (edges belonging to the cut), to simplify use of the predicate in situations where either of the output formats is preferred.

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