Randomized Algorithms III Min Cut Lecture 15 October 16, 2014 - - PowerPoint PPT Presentation

randomized algorithms iii min cut
SMART_READER_LITE
LIVE PREVIEW

Randomized Algorithms III Min Cut Lecture 15 October 16, 2014 - - PowerPoint PPT Presentation

CS 573: Algorithms, Fall 2014 Randomized Algorithms III Min Cut Lecture 15 October 16, 2014 Sariel (UIUC) CS573 1 Fall 2014 1 / 37 Part I Min cut Sariel (UIUC) CS573 2 Fall 2014 2 / 37 Min cut G = ( V , E ) : undirected graph, n


slide-1
SLIDE 1

CS 573: Algorithms, Fall 2014

Randomized Algorithms III – Min Cut

Lecture 15

October 16, 2014

Sariel (UIUC) CS573 1 Fall 2014 1 / 37

slide-2
SLIDE 2

Part I Min cut

Sariel (UIUC) CS573 2 Fall 2014 2 / 37

slide-3
SLIDE 3

Min cut

G = (V, E): undirected graph, n ver- tices, m edges. Interested in cuts in G.

Definition

cut in G: a partition of V: S and V \ S. Edges of the cut: (S, V \ S) =

  • uv
  • u ∈ S, v ∈ V \ S, and uv ∈ E
  • ,

|(S, V \ S)| is size of the cut minimum cut / mincut: cut in graph with min size.

Sariel (UIUC) CS573 3 Fall 2014 3 / 37

slide-4
SLIDE 4

Min cut

G = (V, E): undirected graph, n ver- tices, m edges. Interested in cuts in G.

Definition

cut in G: a partition of V: S and V \ S. Edges of the cut: (S, V \ S) =

  • uv
  • u ∈ S, v ∈ V \ S, and uv ∈ E
  • ,

|(S, V \ S)| is size of the cut minimum cut / mincut: cut in graph with min size.

Sariel (UIUC) CS573 3 Fall 2014 3 / 37

slide-5
SLIDE 5

Min cut

G = (V, E): undirected graph, n ver- tices, m edges. Interested in cuts in G.

Definition

cut in G: a partition of V: S and V \ S. Edges of the cut: (S, V \ S) =

  • uv
  • u ∈ S, v ∈ V \ S, and uv ∈ E
  • ,

|(S, V \ S)| is size of the cut minimum cut / mincut: cut in graph with min size.

Sariel (UIUC) CS573 3 Fall 2014 3 / 37

slide-6
SLIDE 6

Min cut

V \ S

S G = (V, E): undirected graph, n ver- tices, m edges. Interested in cuts in G.

Definition

cut in G: a partition of V: S and V \ S. Edges of the cut: (S, V \ S) =

  • uv
  • u ∈ S, v ∈ V \ S, and uv ∈ E
  • ,

|(S, V \ S)| is size of the cut minimum cut / mincut: cut in graph with min size.

Sariel (UIUC) CS573 3 Fall 2014 3 / 37

slide-7
SLIDE 7

Min cut

V \ S

S G = (V, E): undirected graph, n ver- tices, m edges. Interested in cuts in G.

Definition

cut in G: a partition of V: S and V \ S. Edges of the cut: (S, V \ S) =

  • uv
  • u ∈ S, v ∈ V \ S, and uv ∈ E
  • ,

|(S, V \ S)| is size of the cut minimum cut / mincut: cut in graph with min size.

Sariel (UIUC) CS573 3 Fall 2014 3 / 37

slide-8
SLIDE 8

Some definitions

1

conditional probability of X given Y is Pr

  • X = x |Y = y
  • =

Pr

  • (X=x)∩(Y=y)
  • Pr
  • Y=y
  • .

Pr

  • (X = x) ∩ (Y = y)
  • = Pr
  • X = x
  • Y = y
  • · Pr[Y = y]

2

X, Y events are independent, if Pr

  • X = x ∩ Y = y
  • = Pr
  • X = x
  • · Pr
  • Y = y
  • .

= ⇒ Pr

  • X = x
  • Y = y
  • = Pr
  • X = x
  • .

Sariel (UIUC) CS573 4 Fall 2014 4 / 37

slide-9
SLIDE 9

Some definitions

1

conditional probability of X given Y is Pr

  • X = x |Y = y
  • =

Pr

  • (X=x)∩(Y=y)
  • Pr
  • Y=y
  • .

Pr

  • (X = x) ∩ (Y = y)
  • = Pr
  • X = x
  • Y = y
  • · Pr[Y = y]

2

X, Y events are independent, if Pr

  • X = x ∩ Y = y
  • = Pr
  • X = x
  • · Pr
  • Y = y
  • .

= ⇒ Pr

  • X = x
  • Y = y
  • = Pr
  • X = x
  • .

Sariel (UIUC) CS573 4 Fall 2014 4 / 37

slide-10
SLIDE 10

Some definitions

1

conditional probability of X given Y is Pr

  • X = x |Y = y
  • =

Pr

  • (X=x)∩(Y=y)
  • Pr
  • Y=y
  • .

Pr

  • (X = x) ∩ (Y = y)
  • = Pr
  • X = x
  • Y = y
  • · Pr[Y = y]

2

X, Y events are independent, if Pr

  • X = x ∩ Y = y
  • = Pr
  • X = x
  • · Pr
  • Y = y
  • .

= ⇒ Pr

  • X = x
  • Y = y
  • = Pr
  • X = x
  • .

Sariel (UIUC) CS573 4 Fall 2014 4 / 37

slide-11
SLIDE 11

Some more probability

Lemma

E1, . . . , En: n events (not necessarily independent). Then, Pr

  • ∩n

i=1 Ei

  • = Pr
  • E1
  • ∗ Pr
  • E2 |E1
  • ∗ Pr
  • E3
  • E1 ∩ E2
  • ∗ . . .

∗ Pr

  • En
  • E1 ∩ . . . ∩ En−1
  • .

Sariel (UIUC) CS573 5 Fall 2014 5 / 37

slide-12
SLIDE 12

Edge contraction...

G: x y

1

edge contraction: e = xy in G.

2

... merge x, y into a single vertex.

3

...remove self loops.

4

... parallel edges – multi-graph.

5

... weights/ multiplicities on the edges.

Sariel (UIUC) CS573 6 Fall 2014 6 / 37

slide-13
SLIDE 13

Edge contraction...

G: x y G/xy: {x, y}

1

edge contraction: e = xy in G.

2

... merge x, y into a single vertex.

3

...remove self loops.

4

... parallel edges – multi-graph.

5

... weights/ multiplicities on the edges.

Sariel (UIUC) CS573 6 Fall 2014 6 / 37

slide-14
SLIDE 14

Edge contraction...

G: x y G/xy: {x, y}

1

edge contraction: e = xy in G.

2

... merge x, y into a single vertex.

3

...remove self loops.

4

... parallel edges – multi-graph.

5

... weights/ multiplicities on the edges.

Sariel (UIUC) CS573 6 Fall 2014 6 / 37

slide-15
SLIDE 15

Edge contraction...

G: x y G/xy: {x, y}

1

edge contraction: e = xy in G.

2

... merge x, y into a single vertex.

3

...remove self loops.

4

... parallel edges – multi-graph.

5

... weights/ multiplicities on the edges.

Sariel (UIUC) CS573 6 Fall 2014 6 / 37

slide-16
SLIDE 16

Edge contraction...

G: x y G/xy: {x, y}

1

edge contraction: e = xy in G.

2

... merge x, y into a single vertex.

3

...remove self loops.

4

... parallel edges – multi-graph.

5

... weights/ multiplicities on the edges.

Sariel (UIUC) CS573 6 Fall 2014 6 / 37

slide-17
SLIDE 17

Min cut in weighted graph

2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-18
SLIDE 18

Min cut in weighted graph

2 2 2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-19
SLIDE 19

Min cut in weighted graph

2 2 2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-20
SLIDE 20

Min cut in weighted graph

2 2 2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-21
SLIDE 21

Min cut in weighted graph

2 2 2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-22
SLIDE 22

Min cut in weighted graph

2 2 2 2

Edge contraction implemented in O(n) time:

1

Graph represented using adjacency lists.

2

Merging the adjacency lists of the two vertices being contracted.

3

Using hashing to do fix-ups. (i.e., fix adjacency list of vertices connected to x, y.)

4

Include edge weight in computing cut weight.

Sariel (UIUC) CS573 7 Fall 2014 7 / 37

slide-23
SLIDE 23

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-24
SLIDE 24

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-25
SLIDE 25

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-26
SLIDE 26

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-27
SLIDE 27

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-28
SLIDE 28

Cuts under contractions

Observation

1

A cut in G/xy is a valid cut in G.

2

There ∃ cuts in G are not in G/xy.

3

The cut S = {x} is not in G/xy.

4

= ⇒ size mincut in G/xy ≥ mincut in G.

1

Idea: Repeatedly perform edge contractions (benefits: shrink graph)...

2

Every vertex in contracted graph is a connected component in the original graph.)

Sariel (UIUC) CS573 8 Fall 2014 8 / 37

slide-29
SLIDE 29

Contraction

(2)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-30
SLIDE 30

Contraction

(2) x y (3)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-31
SLIDE 31

Contraction

(2) x y (3) {x, y} (4)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-32
SLIDE 32

Contraction

x y (3) {x, y} (4)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-33
SLIDE 33

Contraction

{x, y} (4)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-34
SLIDE 34

Contraction

{x, y} (4)

2 2

(5)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-35
SLIDE 35

Contraction

2 2

(5)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-36
SLIDE 36

Contraction

2 2

(7)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-37
SLIDE 37

Contraction

2 2

(7)

2 2 2

(8)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-38
SLIDE 38

Contraction

2 2 2

(8)

2 2 2 2 2

(9)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-39
SLIDE 39

Contraction

2 2 2

(8)

2 2 2 2 2

(9)

2 2 2 2 3

(10)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-40
SLIDE 40

Contraction

2 2 2 2 2

(9)

2 2 2 2 3

(10)

2 3 4 4 5

(11)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-41
SLIDE 41

Contraction

2 2 2 2 3

(10)

2 3 4 4 5

(11)

4 5

(12)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-42
SLIDE 42

Contraction

2 3 4 4 5

(11)

4 5

(12)

9

(13)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-43
SLIDE 43

Contraction

4 5

(12)

9

(13)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-44
SLIDE 44

Contraction

9

(13)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-45
SLIDE 45

Contraction

9

(13) (14)

Sariel (UIUC) CS573 9 Fall 2014 9 / 37

slide-46
SLIDE 46

Contraction - all together now

x y

2 2 2 2 2

(a) (b) (c) (d)

2 2 2 2 2 2 2 2 2 3 2 3 4 4 5 4 5

(e) (f) (g) (h)

9

(i) (j)

Sariel (UIUC) CS573 10 Fall 2014 10 / 37

slide-47
SLIDE 47

But...

1

Not min cut!

2

Contracted wrong edge somewhere...

3

If never contract an edge in the cut...

4

...get min cut in the end!

5

We might still get min cut even if we contract edge min cut. Why???

Sariel (UIUC) CS573 11 Fall 2014 11 / 37

slide-48
SLIDE 48

But...

1

Not min cut!

2

Contracted wrong edge somewhere...

3

If never contract an edge in the cut...

4

...get min cut in the end!

5

We might still get min cut even if we contract edge min cut. Why???

Sariel (UIUC) CS573 11 Fall 2014 11 / 37

slide-49
SLIDE 49

But...

1

Not min cut!

2

Contracted wrong edge somewhere...

3

If never contract an edge in the cut...

4

...get min cut in the end!

5

We might still get min cut even if we contract edge min cut. Why???

Sariel (UIUC) CS573 11 Fall 2014 11 / 37

slide-50
SLIDE 50

But...

1

Not min cut!

2

Contracted wrong edge somewhere...

3

If never contract an edge in the cut...

4

...get min cut in the end!

5

We might still get min cut even if we contract edge min cut. Why???

Sariel (UIUC) CS573 11 Fall 2014 11 / 37

slide-51
SLIDE 51

But...

1

Not min cut!

2

Contracted wrong edge somewhere...

3

If never contract an edge in the cut...

4

...get min cut in the end!

5

We might still get min cut even if we contract edge min cut. Why???

Sariel (UIUC) CS573 11 Fall 2014 11 / 37

slide-52
SLIDE 52

The algorithm...

Algorithm MinCut(G) G0 ← G i = 0

while

Gi has more than two vertices do ei ← random edge from E(Gi) Gi+1 ← Gi/ei i ← i + 1 Let (S, V \ S) be the cut in the original graph corresponding to the single edge in Gi

return (S, V \ S).

Sariel (UIUC) CS573 12 Fall 2014 12 / 37

slide-53
SLIDE 53

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-54
SLIDE 54

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-55
SLIDE 55

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-56
SLIDE 56

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-57
SLIDE 57

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-58
SLIDE 58

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-59
SLIDE 59

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-60
SLIDE 60

How to pick a random edge?

Lemma

X = {x1, . . . , xn}: elements, ω(xi): integer positive weight. Pick randomly, in O(n) time, an element ∈ X, with prob picking xi being ω(xi) /W, where W =

n

i=1 ω(xi).

Proof.

Randomly choose r ∈ [0, W]. Precompute βi = i

k=1 ω(xk) = βi−1 + ω(xi).

Find first index i, βi−1 < r ≤ βi. Return xi.

1

Edges have weight...

2

...compute total weight of each vertex (adjacent edges).

3

Pick randomly a vertex by weight.

4

Pick random edge adjacent to this vertex.

Sariel (UIUC) CS573 13 Fall 2014 13 / 37

slide-61
SLIDE 61

Lemma...

Lemma

G: mincut of size k and n vertices, then |E(G)| ≥ kn

2 .

Proof.

Each vertex degree is at least k, otherwise the vertex itself would form a minimum cut of size smaller than k. As such, there are at least

  • v∈V degree(v)/2 ≥ nk/2 edges in the graph.

Sariel (UIUC) CS573 14 Fall 2014 14 / 37

slide-62
SLIDE 62

Lemma...

Lemma

If we pick in random an edge e from a graph G, then with probability at most 2

n it belong to the minimum cut.

Proof.

There are at least nk/2 edges in the graph and exactly k edges in the minimum cut. Thus, the probability of picking an edge from the minimum cut is smaller then k/(nk/2) = 2/n.

Sariel (UIUC) CS573 15 Fall 2014 15 / 37

slide-63
SLIDE 63

Lemma

Lemma

MinCut outputs the mincut with prob. ≥ 2 n(n − 1).

Proof

1

Ei: event that ei is not in the minimum cut of Gi.

2

MinCut outputs mincut if all the events E0, . . . , En−3 happen.

3

Pr

  • Ei
  • E0 ∩ E1 ∩ . . . ∩ Ei−1
  • ≥ 1−

2 |V(Gi)| = 1− 2 n − i . = ⇒ ∆ = Pr[E0 ∩ . . . ∩ En−3] = Pr[E0] · Pr

  • E1
  • E0
  • ·

Pr

  • E2
  • E0 ∩ E1
  • · . . . · Pr
  • En−3
  • E0 ∩ . . . ∩ En−4
  • Sariel (UIUC)

CS573 16 Fall 2014 16 / 37

slide-64
SLIDE 64

Lemma

Lemma

MinCut outputs the mincut with prob. ≥ 2 n(n − 1).

Proof

1

Ei: event that ei is not in the minimum cut of Gi.

2

MinCut outputs mincut if all the events E0, . . . , En−3 happen.

3

Pr

  • Ei
  • E0 ∩ E1 ∩ . . . ∩ Ei−1
  • ≥ 1−

2 |V(Gi)| = 1− 2 n − i . = ⇒ ∆ = Pr[E0 ∩ . . . ∩ En−3] = Pr[E0] · Pr

  • E1
  • E0
  • ·

Pr

  • E2
  • E0 ∩ E1
  • · . . . · Pr
  • En−3
  • E0 ∩ . . . ∩ En−4
  • Sariel (UIUC)

CS573 16 Fall 2014 16 / 37

slide-65
SLIDE 65

Proof continued...

As such, we have ∆ ≥

n−3

  • i=0
  • 1 −

2 n − i

  • =

n−3

  • i=0

n − i − 2 n − i = n − 2 n ∗ n − 3 n − 1 ∗ n − 4 n − 2 . . . · 2 4 · 1 3 = 2 n · (n − 1).

Sariel (UIUC) CS573 17 Fall 2014 17 / 37

slide-66
SLIDE 66

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = n · n − 1 · · · · · · 2 · 1

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-67
SLIDE 67

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = n · n − 1 · · · · · · 2 · 1

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-68
SLIDE 68

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = n − 2 n · n − 3 n − 1 · n − 4 n − 2 · n − 5 n − 3 · · · 3 5 · 2 4 · 1 3

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-69
SLIDE 69

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = ✘✘✘

n − 2 n · n − 3 n − 1 · n − 4

✘✘✘ ✘

n − 2 · n − 5 n − 3 · · · 3 5 · 2 4 · 1 3

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-70
SLIDE 70

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = ✘✘✘

n − 2 n ·

❳❳❳ ❳

n − 3 n − 1 · n − 4

✘✘✘ ✘

n − 2 · n − 5

❳❳❳ ❳

n − 3 · · · ✓ 3 5 · 2 4 · 1

3

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-71
SLIDE 71

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = ✘✘✘

n − 2 n ·

❳❳❳ ❳

n − 3 n − 1 · ✘✘✘

✘ ❳❳❳ ❳

n − 4

✘✘✘ ✘

n − 2 · ✘✘✘

✘ ❳❳❳ ❳

n − 5

❳❳❳ ❳

n − 3 · · · ✓ 3

✓ ❙

5 · 2

✓ ❙

4 · 1

3

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-72
SLIDE 72

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = ✘✘✘

n − 2 n ·

❳❳❳ ❳

n − 3 n − 1 · ✘✘✘

✘ ❳❳❳ ❳

n − 4

✘✘✘ ✘

n − 2 · ✘✘✘

✘ ❳❳❳ ❳

n − 5

❳❳❳ ❳

n − 3 · · · ✓ 3

✓ ❙

5 · 2

✓ ❙

4 · 1

3 = n · n − 1 · · · · · · 2 · 1

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-73
SLIDE 73

Some math restated...

α =

  • 1 − 2

n

  • 1 −

2 n − 1

  • 1 −

2 n − 2

  • · · ·
  • 1 − 2

4

  • 1 − 2

3

  • = n − 2

n · (n − 1) − 2 n − 1 · (n − 2) − 2 n − 2 · · · 4 − 2 4 · 3 − 2 3 = ✘✘✘

n − 2 n ·

❳❳❳ ❳

n − 3 n − 1 · ✘✘✘

✘ ❳❳❳ ❳

n − 4

✘✘✘ ✘

n − 2 · ✘✘✘

✘ ❳❳❳ ❳

n − 5

❳❳❳ ❳

n − 3 · · · ✓ 3

✓ ❙

5 · 2

✓ ❙

4 · 1

3 = n · n − 1 · · · · · · 2 · 1 = 2 n(n − 1)

Sariel (UIUC) CS573 18 Fall 2014 18 / 37

slide-74
SLIDE 74

Running time analysis...

Observation

MinCut runs in O(n2) time.

Observation

The algorithm always outputs a cut, and the cut is not smaller than the minimum cut.

Definition

Amplification: running an experiment again and again till the things we want to happen, with good probability, do happen.

Sariel (UIUC) CS573 19 Fall 2014 19 / 37

slide-75
SLIDE 75

Getting a good probability

MinCutRep: algorithm runs MinCut n(n − 1) times and return the minimum cut computed.

Lemma

probability MinCutRep fails to return the minimum cut is < 0.14.

Proof.

MinCut fails to output the mincut in each execution is at most 1 −

2 n(n−1).

MinCutRep fails, only if all n(n − 1) executions of MinCut fail.

  • 1 −

2 n(n−1)

n(n−1) ≤ exp

2 n(n−1) · n(n − 1)

  • = exp(−2) <

0.14, since 1 − x ≤ e−x for 0 ≤ x ≤ 1.

Sariel (UIUC) CS573 20 Fall 2014 20 / 37

slide-76
SLIDE 76

Result

Theorem

One can compute mincut in O(n4) time with constant probability to get a correct result. In O(n4 log n) time the minimum cut is returned with high probability.

Sariel (UIUC) CS573 21 Fall 2014 21 / 37

slide-77
SLIDE 77

Faster algorithm

Why MinCutRep needs so many executions? Probability of failure in first ν iterations is Pr

  • E0 ∩ . . . ∩ Eν−1

ν−1

  • i=0
  • 1 −

2 n − i

  • =

ν−1

  • i=0

n − i − 2 n − i = n − 2 n ∗ n − 3 n − 1 ∗ n − 4 n − 2 . . . = (n − ν)(n − ν − 1) n · (n − 1) . = ⇒ ν = n/2: Prob of success ≈ 1/4. = ⇒ ν = n − √n: Prob of success ≈ 1/n.

Sariel (UIUC) CS573 22 Fall 2014 22 / 37

slide-78
SLIDE 78

Faster algorithm

Why MinCutRep needs so many executions? Probability of failure in first ν iterations is Pr

  • E0 ∩ . . . ∩ Eν−1

ν−1

  • i=0
  • 1 −

2 n − i

  • =

ν−1

  • i=0

n − i − 2 n − i = n − 2 n ∗ n − 3 n − 1 ∗ n − 4 n − 2 . . . = (n − ν)(n − ν − 1) n · (n − 1) . = ⇒ ν = n/2: Prob of success ≈ 1/4. = ⇒ ν = n − √n: Prob of success ≈ 1/n.

Sariel (UIUC) CS573 22 Fall 2014 22 / 37

slide-79
SLIDE 79

Faster algorithm

Why MinCutRep needs so many executions? Probability of failure in first ν iterations is Pr

  • E0 ∩ . . . ∩ Eν−1

ν−1

  • i=0
  • 1 −

2 n − i

  • =

ν−1

  • i=0

n − i − 2 n − i = n − 2 n ∗ n − 3 n − 1 ∗ n − 4 n − 2 . . . = (n − ν)(n − ν − 1) n · (n − 1) . = ⇒ ν = n/2: Prob of success ≈ 1/4. = ⇒ ν = n − √n: Prob of success ≈ 1/n.

Sariel (UIUC) CS573 22 Fall 2014 22 / 37

slide-80
SLIDE 80

Faster algorithm

Why MinCutRep needs so many executions? Probability of failure in first ν iterations is Pr

  • E0 ∩ . . . ∩ Eν−1

ν−1

  • i=0
  • 1 −

2 n − i

  • =

ν−1

  • i=0

n − i − 2 n − i = n − 2 n ∗ n − 3 n − 1 ∗ n − 4 n − 2 . . . = (n − ν)(n − ν − 1) n · (n − 1) . = ⇒ ν = n/2: Prob of success ≈ 1/4. = ⇒ ν = n − √n: Prob of success ≈ 1/n.

Sariel (UIUC) CS573 22 Fall 2014 22 / 37

slide-81
SLIDE 81

Faster algorithm...

Insight

1

As the graph get smaller probability for bad choice increases.

2

Currently do the amplification from the outside of the algorithm.

3

Put amplification directly into the algorithm.

Sariel (UIUC) CS573 23 Fall 2014 23 / 37

slide-82
SLIDE 82

Faster algorithm...

Insight

1

As the graph get smaller probability for bad choice increases.

2

Currently do the amplification from the outside of the algorithm.

3

Put amplification directly into the algorithm.

Sariel (UIUC) CS573 23 Fall 2014 23 / 37

slide-83
SLIDE 83

Faster algorithm...

Insight

1

As the graph get smaller probability for bad choice increases.

2

Currently do the amplification from the outside of the algorithm.

3

Put amplification directly into the algorithm.

Sariel (UIUC) CS573 23 Fall 2014 23 / 37

slide-84
SLIDE 84

Contract...

Contract(G, t) shrinks G till it has only t vertices. FastCut computes the minimum cut using Contract. Contract( G, t )

while

|(G)| > t do Pick a random edge e in G. G ← G/e

return

G FastCut(G = (V, E)) G -- multi-graph

begin

n ← |V(G)|

if

n ≤ 6 then Compute minimum cut

  • f G and return cut.

t ←

  • 1 + n/

√ 2

  • H1 ← Contract(G, t)

H2 ← Contract(G, t) /* Contract is randomized!!! */ X1 ← FastCut(H1), X2 ← FastCut(H2)

return mincut of X1 and X2. end

Sariel (UIUC) CS573 24 Fall 2014 24 / 37

slide-85
SLIDE 85

Lemma...

Lemma

The running time of FastCut(G) is O(n2 log n), where n = |V(G)|.

Proof.

Well, we perform two calls to Contract(G, t) which takes O(n2)

  • time. And then we perform two recursive calls on the resulting
  • graphs. We have:

T(n) = O(n2) + 2T

  • n

√ 2

  • The solution to this recurrence is O(n2 log n) as one can easily

(and should) verify.

Sariel (UIUC) CS573 25 Fall 2014 25 / 37

slide-86
SLIDE 86

Lemma...

Lemma

The running time of FastCut(G) is O(n2 log n), where n = |V(G)|.

Proof.

Well, we perform two calls to Contract(G, t) which takes O(n2)

  • time. And then we perform two recursive calls on the resulting
  • graphs. We have:

T(n) = O(n2) + 2T

  • n

√ 2

  • The solution to this recurrence is O(n2 log n) as one can easily

(and should) verify.

Sariel (UIUC) CS573 25 Fall 2014 25 / 37

slide-87
SLIDE 87

Success at each step

Lemma

Probability that mincut in contracted graph is original mincut is at least 1/2.

Proof.

Plug in ν = n − t = n −

  • 1 + n/

√ 2

  • into success probability:

Pr

  • E0 ∩ . . . ∩ En−t

Sariel (UIUC) CS573 26 Fall 2014 26 / 37

slide-88
SLIDE 88

Success at each step

Lemma

Probability that mincut in contracted graph is original mincut is at least 1/2.

Proof.

Plug in ν = n − t = n −

  • 1 + n/

√ 2

  • into success probability:

Pr

  • E0 ∩ . . . ∩ En−t

t(t − 1) n · (n − 1)

Sariel (UIUC) CS573 26 Fall 2014 26 / 37

slide-89
SLIDE 89

Success at each step

Lemma

Probability that mincut in contracted graph is original mincut is at least 1/2.

Proof.

Plug in ν = n − t = n −

  • 1 + n/

√ 2

  • into success probability:

Pr

  • E0 ∩ . . . ∩ En−t

t(t − 1) n · (n − 1) =

  • 1 + n/

√ 2

  • 1 + n/

√ 2

  • − 1
  • n(n − 1)

≥ 1 2.

Sariel (UIUC) CS573 26 Fall 2014 26 / 37

slide-90
SLIDE 90

Probability of success...

Lemma

FastCut finds the minimum cut with probability larger than Ω (1/ log n). See class notes for a formal proof. We provide a more elegant direct argument shortly.

Sariel (UIUC) CS573 27 Fall 2014 27 / 37

slide-91
SLIDE 91

Amplification

Lemma

Running FastCut repeatedly c · log2 n times, guarantee that the algorithm outputs mincut with probability ≥ 1 − 1/n2. c is a constant large enough.

Proof.

1

FastCut succeeds with prob ≥ c′/ log n, c′ is a constant.

2

...fails with prob. ≤ 1 − c′/ log n.

3

...fails in m reps with prob. ≤(1 − c′/ log n)m. But then (1 − c′/ log n)m ≤

  • e−c′/ log nm ≤ e−mc′/ log n ≤

1 n2,

for m = (2 log n) /c′.

Sariel (UIUC) CS573 28 Fall 2014 28 / 37

slide-92
SLIDE 92

Amplification

Lemma

Running FastCut repeatedly c · log2 n times, guarantee that the algorithm outputs mincut with probability ≥ 1 − 1/n2. c is a constant large enough.

Proof.

1

FastCut succeeds with prob ≥ c′/ log n, c′ is a constant.

2

...fails with prob. ≤ 1 − c′/ log n.

3

...fails in m reps with prob. ≤(1 − c′/ log n)m. But then (1 − c′/ log n)m ≤

  • e−c′/ log nm ≤ e−mc′/ log n ≤

1 n2,

for m = (2 log n) /c′.

Sariel (UIUC) CS573 28 Fall 2014 28 / 37

slide-93
SLIDE 93

Amplification

Lemma

Running FastCut repeatedly c · log2 n times, guarantee that the algorithm outputs mincut with probability ≥ 1 − 1/n2. c is a constant large enough.

Proof.

1

FastCut succeeds with prob ≥ c′/ log n, c′ is a constant.

2

...fails with prob. ≤ 1 − c′/ log n.

3

...fails in m reps with prob. ≤(1 − c′/ log n)m. But then (1 − c′/ log n)m ≤

  • e−c′/ log nm ≤ e−mc′/ log n ≤

1 n2,

for m = (2 log n) /c′.

Sariel (UIUC) CS573 28 Fall 2014 28 / 37

slide-94
SLIDE 94

Theorem

Theorem

One can compute the minimum cut in a graph G with n vertices in O(n2 log3 n) time. The algorithm succeeds with probability ≥ 1 − 1/n2.

Proof.

We do amplification on FastCut by running it O(log2 n) times. The running time bound follows from lemma...

Sariel (UIUC) CS573 29 Fall 2014 29 / 37

slide-95
SLIDE 95

Part II On coloring trees and min-cut

Sariel (UIUC) CS573 30 Fall 2014 30 / 37

slide-96
SLIDE 96

Trees and coloring edges...

1

Th be a complete binary tree of height h.

2

Randomly color its edges by black and white.

3

Eh: there exists a black path from root Th to one of its leafs.

4

ρh = Pr[Eh].

5

ρ0 = 1 and ρ1 = 3/4 (see below).

Sariel (UIUC) CS573 31 Fall 2014 31 / 37

slide-97
SLIDE 97

Trees and coloring edges...

1

Th be a complete binary tree of height h.

2

Randomly color its edges by black and white.

3

Eh: there exists a black path from root Th to one of its leafs.

4

ρh = Pr[Eh].

5

ρ0 = 1 and ρ1 = 3/4 (see below).

Sariel (UIUC) CS573 31 Fall 2014 31 / 37

slide-98
SLIDE 98

Trees and coloring edges...

1

Th be a complete binary tree of height h.

2

Randomly color its edges by black and white.

3

Eh: there exists a black path from root Th to one of its leafs.

4

ρh = Pr[Eh].

5

ρ0 = 1 and ρ1 = 3/4 (see below).

Sariel (UIUC) CS573 31 Fall 2014 31 / 37

slide-99
SLIDE 99

Trees and coloring edges...

1

Th be a complete binary tree of height h.

2

Randomly color its edges by black and white.

3

Eh: there exists a black path from root Th to one of its leafs.

4

ρh = Pr[Eh].

5

ρ0 = 1 and ρ1 = 3/4 (see below).

Sariel (UIUC) CS573 31 Fall 2014 31 / 37

slide-100
SLIDE 100

Trees and coloring edges...

1

Th be a complete binary tree of height h.

2

Randomly color its edges by black and white.

3

Eh: there exists a black path from root Th to one of its leafs.

4

ρh = Pr[Eh].

5

ρ0 = 1 and ρ1 = 3/4 (see below).

Sariel (UIUC) CS573 31 Fall 2014 31 / 37

slide-101
SLIDE 101

Bounding ρh

1

u root of Th: children ul and ur.

2

ρh−1: Probability for black path ul children

3

Prob of black path from u through u1 is: Pr

  • uul is black
  • · ρh−1 = ρh−1/2

4

  • Prob. no black path through ul is 1 − ρh−1/2.

5

Prob no black path is: (1 − ρh−1/2)2

6

We have ρh = 1 −

  • 1 − ρh−1

2

2

= ρh−1 2

  • 2 − ρh−1

2

  • = ρh−1 − ρ2

h−1

4 .

Sariel (UIUC) CS573 32 Fall 2014 32 / 37

slide-102
SLIDE 102

Bounding ρh

1

u root of Th: children ul and ur.

2

ρh−1: Probability for black path ul children

3

Prob of black path from u through u1 is: Pr

  • uul is black
  • · ρh−1 = ρh−1/2

4

  • Prob. no black path through ul is 1 − ρh−1/2.

5

Prob no black path is: (1 − ρh−1/2)2

6

We have ρh = 1 −

  • 1 − ρh−1

2

2

= ρh−1 2

  • 2 − ρh−1

2

  • = ρh−1 − ρ2

h−1

4 .

Sariel (UIUC) CS573 32 Fall 2014 32 / 37

slide-103
SLIDE 103

Bounding ρh

1

u root of Th: children ul and ur.

2

ρh−1: Probability for black path ul children

3

Prob of black path from u through u1 is: Pr

  • uul is black
  • · ρh−1 = ρh−1/2

4

  • Prob. no black path through ul is 1 − ρh−1/2.

5

Prob no black path is: (1 − ρh−1/2)2

6

We have ρh = 1 −

  • 1 − ρh−1

2

2

= ρh−1 2

  • 2 − ρh−1

2

  • = ρh−1 − ρ2

h−1

4 .

Sariel (UIUC) CS573 32 Fall 2014 32 / 37

slide-104
SLIDE 104

Bounding ρh

1

u root of Th: children ul and ur.

2

ρh−1: Probability for black path ul children

3

Prob of black path from u through u1 is: Pr

  • uul is black
  • · ρh−1 = ρh−1/2

4

  • Prob. no black path through ul is 1 − ρh−1/2.

5

Prob no black path is: (1 − ρh−1/2)2

6

We have ρh = 1 −

  • 1 − ρh−1

2

2

= ρh−1 2

  • 2 − ρh−1

2

  • = ρh−1 − ρ2

h−1

4 .

Sariel (UIUC) CS573 32 Fall 2014 32 / 37

slide-105
SLIDE 105

Bounding ρh

1

u root of Th: children ul and ur.

2

ρh−1: Probability for black path ul children

3

Prob of black path from u through u1 is: Pr

  • uul is black
  • · ρh−1 = ρh−1/2

4

  • Prob. no black path through ul is 1 − ρh−1/2.

5

Prob no black path is: (1 − ρh−1/2)2

6

We have ρh = 1 −

  • 1 − ρh−1

2

2

= ρh−1 2

  • 2 − ρh−1

2

  • = ρh−1 − ρ2

h−1

4 .

Sariel (UIUC) CS573 32 Fall 2014 32 / 37

slide-106
SLIDE 106

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

By induction. For h = 1: ρ1 = 3/4 ≥ 1/(1 + 1).

2

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

3

f ′(x) = 1 − x/2. = ⇒ f ′(x) > 0 for x ∈ [0, 1].

4

f (x) is increasing in the range [0, 1]

5

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

6

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-107
SLIDE 107

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

By induction. For h = 1: ρ1 = 3/4 ≥ 1/(1 + 1).

2

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

3

f ′(x) = 1 − x/2. = ⇒ f ′(x) > 0 for x ∈ [0, 1].

4

f (x) is increasing in the range [0, 1]

5

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

6

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-108
SLIDE 108

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

By induction. For h = 1: ρ1 = 3/4 ≥ 1/(1 + 1).

2

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

3

f ′(x) = 1 − x/2. = ⇒ f ′(x) > 0 for x ∈ [0, 1].

4

f (x) is increasing in the range [0, 1]

5

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

6

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-109
SLIDE 109

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

By induction. For h = 1: ρ1 = 3/4 ≥ 1/(1 + 1).

2

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

3

f ′(x) = 1 − x/2. = ⇒ f ′(x) > 0 for x ∈ [0, 1].

4

f (x) is increasing in the range [0, 1]

5

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

6

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-110
SLIDE 110

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

2

f (x) is increasing in the range [0, 1]

3

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

4

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-111
SLIDE 111

Lemma...

Lemma

We have that ρh ≥ 1/(h + 1).

Proof.

1

ρh = ρh−1 −

ρ2

h−1

4

= f (ρh−1), for f (x) = x − x2/4.

2

f (x) is increasing in the range [0, 1]

3

By induction: ρh = f (ρh−1) ≥ f

  • 1

(h − 1) + 1

  • = 1

h − 1 4h2.

4

1 h − 1 4h2 ≥ 1 h+1

⇔ 4h(h + 1) − (h + 1) ≥ 4h2 ⇔ 4h2 + 4h − h − 1 ≥ 4h2 ⇔ 3h ≥ 1,

Sariel (UIUC) CS573 33 Fall 2014 33 / 37

slide-112
SLIDE 112

Back to FastCut...

1

Recursion tree for FastCut corresponds to such a coloring.

2

Every call performs two recursive calls.

3

Contraction in recursion succeeds with prob 1/2. Draw recursion edge in black if successful.

4

algorithm succeeds ⇐ ⇒ there black path from root of recursion tree to leaf.

5

Since depth of tree H ≤ 2 + log√

2 n.

6

by above... probability of success is ≥ 1/(h + 1) ≥ 1/(3 + log√

2 n).

Sariel (UIUC) CS573 34 Fall 2014 34 / 37

slide-113
SLIDE 113

Galton-Watson processes

1

Start with a single node.

2

Each node has two children.

3

Each child survives with probability half (independently).

4

If a child survives then it is going to have two children, and so

  • n.

5

A single node give a rise to a random tree.

6

Q: Probability that the original node has descendants h generations in the future.

7

Prove this probability is at least 1/(h + 1).

Sariel (UIUC) CS573 35 Fall 2014 35 / 37

slide-114
SLIDE 114

Galton-Watson process

1

Victorians worried: aristocratic surnames were disappearing.

2

Family names passed on only through the male children.

3

Family with no male children had its family name disappear.

4

# male children of a person is an independent random variable X ∈ {0, 1, 2, . . .}.

5

Starting with a single person, its family (as far as male children are concerned) is a random tree with the degree of a node being distributed according to X.

6

.. A family disappears if E[X] ≤ 1, and it has a constant probability of surviving if E[X] > 1.

Sariel (UIUC) CS573 36 Fall 2014 36 / 37

slide-115
SLIDE 115

Galton-Watson process

1

Victorians worried: aristocratic surnames were disappearing.

2

Family names passed on only through the male children.

3

Family with no male children had its family name disappear.

4

# male children of a person is an independent random variable X ∈ {0, 1, 2, . . .}.

5

Starting with a single person, its family (as far as male children are concerned) is a random tree with the degree of a node being distributed according to X.

6

.. A family disappears if E[X] ≤ 1, and it has a constant probability of surviving if E[X] > 1.

Sariel (UIUC) CS573 36 Fall 2014 36 / 37

slide-116
SLIDE 116

Galton-Watson process

1

Victorians worried: aristocratic surnames were disappearing.

2

Family names passed on only through the male children.

3

Family with no male children had its family name disappear.

4

# male children of a person is an independent random variable X ∈ {0, 1, 2, . . .}.

5

Starting with a single person, its family (as far as male children are concerned) is a random tree with the degree of a node being distributed according to X.

6

.. A family disappears if E[X] ≤ 1, and it has a constant probability of surviving if E[X] > 1.

Sariel (UIUC) CS573 36 Fall 2014 36 / 37

slide-117
SLIDE 117

Galton-Watson process

1

... Infant mortality is dramatically down. No longer a problem.

2

Countries with family names that were introduced long time ago...

3

...have very few surnames. Koreans have 250 surnames, and three surnames form 45% of the population).

4

Countries introduced surnames recently have more surnames. Dutch have surnames only for the last 200 years, and there are 68, 000 different family names).

Sariel (UIUC) CS573 37 Fall 2014 37 / 37

slide-118
SLIDE 118

Galton-Watson process

1

... Infant mortality is dramatically down. No longer a problem.

2

Countries with family names that were introduced long time ago...

3

...have very few surnames. Koreans have 250 surnames, and three surnames form 45% of the population).

4

Countries introduced surnames recently have more surnames. Dutch have surnames only for the last 200 years, and there are 68, 000 different family names).

Sariel (UIUC) CS573 37 Fall 2014 37 / 37

slide-119
SLIDE 119

Galton-Watson process

1

... Infant mortality is dramatically down. No longer a problem.

2

Countries with family names that were introduced long time ago...

3

...have very few surnames. Koreans have 250 surnames, and three surnames form 45% of the population).

4

Countries introduced surnames recently have more surnames. Dutch have surnames only for the last 200 years, and there are 68, 000 different family names).

Sariel (UIUC) CS573 37 Fall 2014 37 / 37

slide-120
SLIDE 120

Notes

Sariel (UIUC) CS573 38 Fall 2014 38 / 37

slide-121
SLIDE 121

Notes

Sariel (UIUC) CS573 39 Fall 2014 39 / 37

slide-122
SLIDE 122

Notes

Sariel (UIUC) CS573 40 Fall 2014 40 / 37

slide-123
SLIDE 123

Notes

Sariel (UIUC) CS573 41 Fall 2014 41 / 37