Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte...

47
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos – p. 1

Transcript of Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte...

Page 1: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise de Algoritmos

Estes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

Algoritmos – p. 1

Page 2: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Cortes em grafos

G: grafo (não orientado) sem laços, possivelmente comarestas paralelas.

Algoritmos – p. 2

Page 3: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Cortes em grafos

G: grafo (não orientado) sem laços, possivelmente comarestas paralelas.

Conjunto de arestas C é um corte se existe um conjuntoS ⊆ VG não vazio tal que

C = {e ∈ EG|e tem uma ponta em S e outra fora de S.}

Ou seja, C = δG(S) = δG(VG \ S).

Algoritmos – p. 2

Page 4: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆ EG é um corte se existe S ⊆ VG não vazio tal que

C = {e ∈ EG|e tem uma ponta em S e outra fora de S.}

Algoritmos – p. 3

Page 5: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆ EG é um corte se existe S ⊆ VG não vazio tal que

C = {e ∈ EG|e tem uma ponta em S e outra fora de S.}

Problema: Dado G, encontrar um corte C com |C| mínimo.

corte mínimo

Algoritmos – p. 3

Page 6: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆ EG é um corte se existe S ⊆ VG não vazio tal que

C = {e ∈ EG|e tem uma ponta em S e outra fora de S.}

Problema: Dado G, encontrar um corte C com |C| mínimo.

corte mínimo

Esta aula: algoritmo aleatorizado que devolveEsta aula: um corte mínimo com alta probabilidade.

Algoritmos – p. 3

Page 7: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Contração de arestasDado um grafo G e uma aresta e = uv,a contração G|e é o grafo (V ′, E′) onde. . .

e

Algoritmos – p. 4

Page 8: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Contração de arestasDado um grafo G e uma aresta e = uv,a contração G|e é o grafo (V ′, E′) onde. . .

e

V ′ = V \ {u, v} ∪ {w} e E′ = EG \ {f |pontas(f) = {u, v}}e cada aresta f em E′ tem as mesmas pontas que f em EG

exceto por u e v, que são substituídos por w.

w

Algoritmos – p. 4

Page 9: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Contração de arestasDado um grafo G e uma aresta e = uv,a contração G|e é o grafo (V ′, E′) onde. . .

e

V ′ = V \ {u, v} ∪ {w} e E′ = EG \ {f |pontas(f) = {u, v}}e cada aresta f em E′ tem as mesmas pontas que f em EG

exceto por u e v, que são substituídos por w.

w

Proposição: Se C é corte de G|e, então C é corte de G.

Algoritmos – p. 4

Page 10: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Algoritmo de Karger

Problema: Dado G, encontrar um corte C com |C| mínimo.

Algoritmos – p. 5

Page 11: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Algoritmo de Karger

Problema: Dado G, encontrar um corte C com |C| mínimo.

Karger (G)1 enquanto |VG| > 2 faça2 e← RANDOM_EDGE(EG)3 G← G|e4 devolva EG

Algoritmos – p. 5

Page 12: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Algoritmo de Karger

Problema: Dado G, encontrar um corte C com |C| mínimo.

Karger (G)1 enquanto |VG| > 2 faça2 e← RANDOM_EDGE(EG)3 G← G|e4 devolva EG

Pela proposição, o algoritmo devolve de fato um corte de G.

Algoritmos – p. 5

Page 13: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Algoritmo de Karger

Problema: Dado G, encontrar um corte C com |C| mínimo.

Karger (G)1 enquanto |VG| > 2 faça2 e← RANDOM_EDGE(EG)3 G← G|e4 devolva EG

Pela proposição, o algoritmo devolve de fato um corte de G.

Claramente ele consume tempo polinomial.(O número de iteração é |VG| − 2.)

Algoritmos – p. 5

Page 14: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

Vamos mostrar que

Pr{CK não é um corte mínimo} < q(n) < 1,

onde n = |VG|.

Algoritmos – p. 6

Page 15: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

Vamos mostrar que

Pr{CK não é um corte mínimo} < q(n) < 1,

onde n = |VG|.

Executa-se o algoritmo r vezese devolve-se o menor corte produzido.

A chance do corte devolvido não ser mínimo será < q(n)r.

Algoritmos – p. 6

Page 16: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

Algoritmos – p. 7

Page 17: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

O corte C não é a resposta do algoritmo ssealguma aresta de C foi contraída.

Algoritmos – p. 7

Page 18: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

O corte C não é a resposta do algoritmo ssealguma aresta de C foi contraída.

Seja Ei o evento:uma aresta de C não é sorteada na iteração i.

Algoritmos – p. 7

Page 19: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

O corte C não é a resposta do algoritmo ssealguma aresta de C foi contraída.

Seja Ei o evento:uma aresta de C não é sorteada na iteração i.

Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Algoritmos – p. 7

Page 20: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

O corte C não é a resposta do algoritmo ssealguma aresta de C foi contraída.

Seja Ei o evento:uma aresta de C não é sorteada na iteração i.

Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Tal probabilidade é igual a

Pr{E1} · Pr{E2|E1} · · ·Pr{En−2|E1 ∩ E2 ∩ · · · ∩ En−3}.

Algoritmos – p. 7

Page 21: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja C um corte mínimo de G.

O corte C não é a resposta do algoritmo ssealguma aresta de C foi contraída.

Seja Ei o evento:uma aresta de C não é sorteada na iteração i.

Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Tal probabilidade é igual a

Pr{E1} · Pr{E2|E1} · · ·Pr{En−2|E1 ∩ E2 ∩ · · · ∩ En−3}.

Para começar, como delimitar Pr{E1}?Algoritmos – p. 7

Page 22: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Como delimitar Pr{E1}?

Algoritmos – p. 8

Page 23: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Como delimitar Pr{E1}?

Como C é mínimo, δG(v) ≥ k para todo vértice v.

Logo |EG| ≥ kn/2.

Algoritmos – p. 8

Page 24: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Como delimitar Pr{E1}?

Como C é mínimo, δG(v) ≥ k para todo vértice v.

Logo |EG| ≥ kn/2.

Portanto Pr{E1} ≤kkn

2

= 2n.

Algoritmos – p. 8

Page 25: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Como delimitar Pr{E1}?

Como C é mínimo, δG(v) ≥ k para todo vértice v.

Logo |EG| ≥ kn/2.

Portanto Pr{E1} ≤kkn

2

= 2n.

Ou seja, Pr{E1} ≥ 1− 2n.

Algoritmos – p. 8

Page 26: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Como delimitar Pr{E1}?

Como C é mínimo, δG(v) ≥ k para todo vértice v.

Logo |EG| ≥ kn/2.

Portanto Pr{E1} ≤kkn

2

= 2n.

Ou seja, Pr{E1} ≥ 1− 2n.

Como delimitar Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei}?

Algoritmos – p. 8

Page 27: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Vimos que Pr{E1} ≥ 1− 2n.

Como delimitar Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei}?

Algoritmos – p. 9

Page 28: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Vimos que Pr{E1} ≥ 1− 2n.

Como delimitar Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei}?

No começo da iteração i + 1, temos que |EG| ≥ k(n− i)/2.

Algoritmos – p. 9

Page 29: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Vimos que Pr{E1} ≥ 1− 2n.

Como delimitar Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei}?

No começo da iteração i + 1, temos que |EG| ≥ k(n− i)/2.

Logo Pr{ ¯Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≤k

k(n−i)2

= 2n−i

.

Algoritmos – p. 9

Page 30: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

C: um corte mínimo de G e k = |C|.

Ei: uma aresta de C não é sorteada na iteração i.

Vimos que Pr{E1} ≥ 1− 2n.

Como delimitar Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei}?

No começo da iteração i + 1, temos que |EG| ≥ k(n− i)/2.

Logo Pr{ ¯Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≤k

k(n−i)2

= 2n−i

.

Ou seja, Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.

Algoritmos – p. 9

Page 31: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Algoritmos – p. 10

Page 32: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Ou seja, delimitar Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.

Algoritmos – p. 10

Page 33: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Ou seja, delimitar Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.Então

Pr{CK = C} ≥

n−3∏

i=0

(

1−2

n− i

)

(

1−2

n

)(

1−2

n−1

)(

1−2

n−2

)

· · ·(

1−2

4

)(

1−2

3

)

Algoritmos – p. 10

Page 34: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Ou seja, delimitar Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.Então

Pr{CK = C} ≥

n−3∏

i=0

(

1−2

n− i

)

.

=(

1−2

n

)(

1−2

n−1

)(

1−2

n−2

)

· · ·(

1−2

4

)(

1−2

3

)

Algoritmos – p. 10

Page 35: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Ou seja, delimitar Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.Então

Pr{CK = C} ≥

n−3∏

i=0

(

1−2

n− i

)

.

=(

1−2

n

)(

1−2

n−1

)(

1−2

n−2

)

· · ·(

1−2

4

)(

1−2

3

)

=n− 2

n·n− 3

n− 1·n− 4

n− 2· · ·

2

4·1

3Algoritmos – p. 10

Page 36: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Análise do algoritmo

Seja CK o corte devolvido por Karger (G).

C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK = C}.

Ou seja, delimitar Pr{E1 ∩ E2 ∩ · · · ∩ En−2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1− 2n−i

.Então

Pr{CK = C} ≥

n−3∏

i=0

(

1−2

n− i

)

.

=(

1−2

n

)(

1−2

n−1

)(

1−2

n−2

)

· · ·(

1−2

4

)(

1−2

3

)

=n− 2

n·n− 3

n− 1·n− 4

n− 2· · ·

2

4·1

3=

2

n(n− 1).

Algoritmos – p. 10

Page 37: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

Algoritmos – p. 11

Page 38: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

e Pr{CK não é um corte mínimo} ≤ q(n).

Algoritmos – p. 11

Page 39: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

e Pr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmo r = cn(n−1)2 ln n vezes, então

Algoritmos – p. 11

Page 40: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

e Pr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmo r = cn(n−1)2 ln n vezes, então

Pr{C∗

Knão é um corte mínimo} ≤ q(n)r

=(

1−2

n(n− 1)

)cn(n−1)

2ln n

=(1

e

)c ln n=

1

nc.

Algoritmos – p. 11

Page 41: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

e Pr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmo r = cn(n−1)2 ln n vezes, então

Pr{C∗

Knão é um corte mínimo} ≤ q(n)r

=(

1−2

n(n− 1)

)cn(n−1)

2ln n

=(1

e

)c ln n=

1

nc.

Erra com probabilidade exponencialmente pequena em n.

Algoritmos – p. 11

Page 42: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Conclusão

Logo Pr{CK 6= C} ≤ 1− 2n(n−1) = q(n)

e Pr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmo r = cn(n−1)2 ln n vezes, então

Pr{C∗

Knão é um corte mínimo} ≤ q(n)r

=(

1−2

n(n− 1)

)cn(n−1)

2ln n

=(1

e

)c ln n=

1

nc.

Erra com probabilidade exponencialmente pequena em n.

Como r é polinomial em n, o algoritmo é polinomial.

Algoritmos – p. 11

Page 43: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Uma pergunta...Quantos st-cortes mínimos diferentes podem existir em G?

s t

. .

Algoritmos – p. 12

Page 44: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Uma pergunta...Quantos st-cortes mínimos diferentes podem existir em G?

s t

. .

Um número exponencial em n...

Algoritmos – p. 12

Page 45: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Uma pergunta...Quantos st-cortes mínimos diferentes podem existir em G?

s t

. .

Um número exponencial em n...

Quantos cortes mínimos diferentes podem existir?

Algoritmos – p. 12

Page 46: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Uma pergunta...Quantos st-cortes mínimos diferentes podem existir em G?

s t

. .

Um número exponencial em n...

Quantos cortes mínimos diferentes podem existir?

Como Pr{CK = C} ≥ 2n(n−1) = 1/

( n

2

)

,

há no máximo( n

2

)

cortes mínimos em G.

Algoritmos – p. 12

Page 47: Análise de Algoritmos - IME-USPcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · Corte mínimo G: grafo sem laços, possivelmente com arestas paralelas. C ⊆E G é um corte

Uma pergunta...Quantos st-cortes mínimos diferentes podem existir em G?

s t

. .

Um número exponencial em n...

Quantos cortes mínimos diferentes podem existir?

Como Pr{CK = C} ≥ 2n(n−1) = 1/

( n

2

)

,

há no máximo( n

2

)

cortes mínimos em G.

Se G for por exemplo um circuito com n vértices...Algoritmos – p. 12