Karger's algorithm
From Wikipedia, the free encyclopedia
In computer science and graph theory, the Karger's algorithm is a Monte Carlo method to compute the minimum cut of a connected graph.
Contents |
[edit] Algorithm
The idea of the algorithm is based on the concept of contraction of an edge e in a graph. Informally speaking, the contraction of an edge makes the two nodes joined by e overlap, reducing the total number of nodes of the graph by one. The algorithm proceeds iterating contractions until only two nodes are left in the graph. With high probability, the algorithm will return a minimal cut by returning the set of edges joining the two remaining nodes.
[edit] Contraction
Informally speaking, this operation takes an edge e with endpoints x and y and contracts it into a new node ve which becomes adjacent to all former neighbors of x and y. It is possible to formalize this concept in mathematical terms.
Given a graph and , the contraction of G respect to e (written ) is a multigraph where:
and:
- or
It is possible to prove that this operation doesn't reduce the cardinality of the minimum cut, but that it might increase it.
[edit] Pseudocode
The algorithm can be implemented using two functions:
function Karger(G, K) min := for i = 1 to K do t := Full_contraction(G) if t < min then min := t return min
function Full_contraction(G)
for i := 1 to |V| - 2 do
e := Random()
G' = ( V', ') := G / e
V := V'
:= '
return ||
The function Full_contraction implements the contraction of the edges following the given definition. The iteration lasts until only two nodes are left in the graph. With a certain probability, the set of edges left are the minimum cut. It is not sure anyway that this algorithm returns a cut which is minimum, therefore K execution of Full_contraction is performed by the Karger function, where K has to be passed as a parameter. Computing the minimum of the K executions reduces the probability of having a wrong minimum cut returned.
[edit] References
- A. A. Tsay, W. S. Lovejoy, David R. Karger, Random Sampling in Cut, Flow, and Network Design Problems, Mathematics of Operations Research, 24(2):383–413, 1999.