CSCE 411 Lecture 25

From Notes
Jump to navigation Jump to search
Lecture Handout

« previous | Friday, October 26, 2012 | next »


Minimum Cut Algorithm

Contract edges at random until two nodes remain.

def contract G
  until g.vertices.size = 2
    e = g.edges.sample
    g /= e
  end
  g.edges.size
end

Count the number of edges remaining in the graph.

Minimum cut has fewest edges m between two partitions. The chances that we'll contract one of these edges (thus getting rid of it) are very low: m|E|.

Analysis

Pr[EF]=Pr[EF]Pr[F]

Therefore

Pr[=1nE]=(m=2nPr[Em=1m1E])Pr[E1]


Let G=(V,E) be a loop-free connected multigraph with n=|V| vertices.

The program terminates after performing n=2 contractions.

Suppose that C is a particular minimum cut of G.

Let Ei denote the event that the algorithm selects an edge in the ith iteration that does not cross the cut C. Therefore, the probability that no edge crossing the cut C is ever picked during an execution of the algorithm is

Pr[j=1n2Ei]=(m=2n2Pr[Em=1m1E])Pr[E1]

Suppose that the size of the minimum cut C is k. This means that the degree of each vertex is at least k; hence, there exists at least kn2 edges.

The probability to select an edge crossing C in the first step is at most kkn/2=2n.

Thus

Pr[E1]12n=n2n

At the beginning of the mth iteration, there are nm+1 remaining vertices. The minimum cut is tstill at least k, hence the graph at this stage has at least k(nm+1)2 edges.

Assuming none of the edges crossing C were picked in an earlier step, the probability to select an edge crossing C (unlucky) is at most 2(nm+1).

It follows that

Pr[Emj=1m1Ej]12nm+1=nm1nm+1

Combining what we know,

Pr[j=1n2Ej]m1n2nm1nm+1=(n2)(n3)(3)(2)(1)n(n1)(n2)(3)=2n(n1)Ω(1n2)

Repeat the algorithm slightly more than n2 times, say n2logn times, the algorithm will more than likely return the correct result.