Karger's algorithm

Karger's algorithm

In computer science and graph theory, the Karger's algorithm is a Monte Carlo method to compute the minimum cut of a connected graph.

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.

Contraction

Informally speaking, this operation takes an edge e with endpoints x and y and contracts it into a new node v_e which becomes adjacent to all former neighbors of x and y. It is possible to formalize this concept in mathematical terms.

Given a graph G = left ( V, E ight ) and e = lbrace x, y brace in E, the contraction of G respect to e (written G/e = left ( V', E' ight )) is a multigraph where:

:V' = left( V setminus lbrace x, y brace ight) cup lbrace v_e brace

and:

:E' = lbrace lbrace v, w brace in E mid lbrace v,w brace cap lbrace x,y brace = emptyset brace cup lbrace lbrace v_e,w brace mid lbrace x,w brace in E setminus lbrace e brace or lbrace y,w brace in E setminus lbrace e brace brace

It is possible to prove that this operation doesn't reduce the cardinality of the minimum cut, but that it might increase it.

Pseudocode

The algorithm can be implemented using two functions:

function Karger(G, K) min := + infty 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(varepsilon) G' = ( V', varepsilon') := G / e V := V' varepsilon := varepsilon' return |varepsilon

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.

References

# A. A. Tsay, W. S. Lovejoy, David R. Karger, [http://www.cs.elte.hu/~benczur/CombOptStuff/sampling.ps.gz Random Sampling in Cut, Flow, and Network Design Problems] , Mathematics of Operations Research, 24(2):383–413, 1999.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • David Karger — is a Professor of Computer Science and a member of the Computer Science and Artificial Intelligence Laboratory (CSAIL) at the Massachusetts Institute of Technology (MIT). He received an AB from Harvard University and a PhD in computer science… …   Wikipedia

  • Randomized algorithm — Part of a series on Probabilistic data structures Bloom filter · Skip list …   Wikipedia

  • Borůvka's algorithm — is an algorithm for finding a minimum spanning tree in a graph for which all edge weights are distinct.It was first published in 1926 by Otakar Borůvka as a method of constructing an efficient electricity network for Moravia. [cite journal | last …   Wikipedia

  • Minimum cut — In graph theory, a minimum cut of a graph is a cut whose cutset has the smallest number of elements (unweighted case) or smallest sum of weights possible. Several algorithms exist to find minimum cuts. For a graph G = (V, E), the problem can be… …   Wikipedia

  • List of mathematics articles (K) — NOTOC K K approximation of k hitting set K ary tree K core K edge connected graph K equivalence K factor error K finite K function K homology K means algorithm K medoids K minimum spanning tree K Poincaré algebra K Poincaré group K set (geometry) …   Wikipedia

  • Minimum spanning tree — The minimum spanning tree of a planar graph. Each edge is labeled with its weight, which here is roughly proportional to its length. Given a connected, undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all… …   Wikipedia

  • Job shop scheduling — For other uses, see Scheduling. Job shop scheduling (or Job shop problem) is an optimization problem in computer science in which ideal jobs are assigned to resources at particular times. The most basic version is as follows: We are given n jobs… …   Wikipedia

  • List of ad-hoc routing protocols — An Ad hoc routing protocol is a convention or standard that controls how nodes come to agree which way to route packets between computing devices in a mobile ad hoc network (MANET).In ad hoc networks , nodes do not have a priori knowledge of… …   Wikipedia

  • Job Shop Scheduling — is an optimization problem in computer science in which ideal jobs are assigned to resources at particular times. The most basic version is as follows:We are given n jobs J1, J2, ... Jn of varying sizes, which need to be scheduled on m identical… …   Wikipedia

  • Distributed hash table — A distributed hash table (DHT) is a class of a decentralized distributed system that provides a lookup service similar to a hash table; (key, value) pairs are stored in a DHT, and any participating node can efficiently retrieve the value… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”