análise de algoritmos - ime-uspcris/aulas/12_1_6711/slides/aula... · 2012. 4. 17. · corte...
TRANSCRIPT
![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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022071119/6017d53293129a71634917d9/html5/thumbnails/47.jpg)
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