• Nenhum resultado encontrado

Corte mínimo em grafos

N/A
N/A
Protected

Academic year: 2022

Share "Corte mínimo em grafos"

Copied!
48
0
0

Texto

(1)

Corte mínimo em grafos

KT Secs 13.2

(2)

Cortes em grafos

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

(3)

Cortes em grafos

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

Conjunto de arestas C é um cortese existe um conjunto S ⊆VG não vazio tal que

C ={e ∈EG :e tem uma ponta em S e outra fora deS}.

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

(4)

Corte mínimo

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

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG :e tem uma ponta emS e outra fora deS}

(5)

Corte mínimo

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

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG :e tem uma ponta emS e outra fora deS}

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

corte mínimo

(6)

Corte mínimo

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

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG :e tem uma ponta emS e outra fora deS}

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

corte mínimo

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

(7)

Contração de arestas

Dado um grafoG e uma arestae =uv, a contraçãoG|e é o grafo (V,E) onde. . .

e

(8)

Contração de arestas

Dado um grafoG e uma arestae =uv, a contraçãoG|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 quef em EG exceto por u e v, que são substituídos porw.

w

(9)

Contração de arestas

Dado um grafoG e uma arestae =uv, a contraçãoG|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 quef em EG exceto por u e v, que são substituídos porw.

w

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

(10)

Algoritmo de Karger

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

(11)

Algoritmo de Karger

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

KARGER(G)

1 enquanto |VG|>2 faça 2 e RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

(12)

Algoritmo de Karger

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

KARGER(G)

1 enquanto |VG|>2 faça 2 e RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

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

(13)

Algoritmo de Karger

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

KARGER(G)

1 enquanto |VG|>2 faça 2 e RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

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.)

(14)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (G). Vamos mostrar que

Pr{CK não é um corte mínimo}<q(n)<1, onde n=|VG|.

(15)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (G). Vamos mostrar que

Pr{CK não é um corte mínimo}<q(n)<1, onde n=|VG|.

Executa-se o algoritmo r vezes e devolve-se o menor corte produzido.

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

(16)

Análise do algoritmo

Seja C um corte mínimo deG.

(17)

Análise do algoritmo

Seja C um corte mínimo deG.

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

(18)

Análise do algoritmo

Seja C um corte mínimo deG.

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

Seja Ei o evento:

uma aresta de C não é sorteada na iteraçãoi.

(19)

Análise do algoritmo

Seja C um corte mínimo deG.

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

Seja Ei o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitar inferiormentePr{E1∩E2∩ · · · ∩En−2}.

(20)

Análise do algoritmo

Seja C um corte mínimo deG.

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

Seja Ei o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitar inferiormentePr{E1∩E2∩ · · · ∩En−2}. Tal probabilidade é igual a

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

(21)

Análise do algoritmo

Seja C um corte mínimo deG.

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

Seja Ei o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitar inferiormentePr{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}?

(22)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitar Pr{E1}?

(23)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitar Pr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v. Logo |EG| ≥kn/2.

(24)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitar Pr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v. Logo |EG| ≥kn/2.

Portanto Pr{E¯1} ≤ knk

2 = 2n.

(25)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitar Pr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v. Logo |EG| ≥kn/2.

Portanto Pr{E¯1} ≤ knk

2 = 2n. Ou seja, Pr{E1} ≥12n.

(26)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitar Pr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v. Logo |EG| ≥kn/2.

Portanto Pr{E¯1} ≤ knk

2 = 2n. Ou seja, Pr{E1} ≥12n.

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

(27)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos que Pr{E1} ≥1n2.

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

(28)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos que Pr{E1} ≥1n2.

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

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

(29)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos que Pr{E1} ≥1n2.

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{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 .

(30)

Análise do algoritmo

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

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos que Pr{E1} ≥1n2.

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{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 . Ou seja, Pr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1n−i2 .

(31)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (G). C: um corte mínimo de G.

Queremos delimitar inferiormente Pr{CK =C}.

(32)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (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} ≥1n−i2 .

(33)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (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} ≥1n−i2 . Então

Pr{CK =C} ≥

n−3

i=0

1 2

n−i

(34)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (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} ≥1n−i2 . Então

Pr{CK =C} ≥

n−3

i=0

1 2

n−i

= 1 2

n

1 2

n−1

1 2

n−2 · · ·

12 4

12

3

(35)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (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} ≥1n−i2 . Então

Pr{CK =C} ≥

n−3

i=0

1 2

n−i

= 1 2

n

1 2

n−1

1 2

n−2 · · ·

12 4

12

3

= n−2

n ·n−3

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

4 ·1 3

(36)

Análise do algoritmo

Seja CK o corte devolvido porKARGER (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} ≥1n−i2 . Então

Pr{CK =C} ≥

n−3

i=0

1 2

n−i

= 1 2

n

1 2

n−1

1 2

n−2 · · ·

12 4

12

3

= n−2

n ·n−3

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

4 ·1

3 = 2

n(n−1).

(37)

Conclusão

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

(38)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo}

(39)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo} ≤ q(n).

(40)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo} ≤ q(n).

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

(41)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo} ≤ q(n).

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

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

=

1 2

n(n−1) cn(n−1)

2 lnn

< 1 e

clnn

= 1 nc.

(42)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo} ≤ q(n).

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

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

=

1 2

n(n−1) cn(n−1)

2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena.

(43)

Conclusão

Logo Pr{CK =C} ≤ 1n(n−1)2 = q(n) e Pr{CK não é um corte mínimo} ≤ q(n).

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

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

=

1 2

n(n−1) cn(n−1)

2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena.

Comor é polinomial emn e em c, o algoritmo é polinomial.

(44)

Uma pergunta...

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

...

s t

(45)

Uma pergunta...

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

...

s t

Um número exponencial em n...

(46)

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?

(47)

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?

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

,

há no máximo n 2

cortes mínimos emG.

(48)

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?

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

,

há no máximo n 2

cortes mínimos emG. Se G for por exemplo um circuito com n vértices...

Referências

Documentos relacionados

Visto que tal função é repleta de mínimos locais, diferentes inicializações do vetor de pesos podem conduzir a diferentes soluções (diferentes mínimos locais). Desse

 Outra parcela da doutrina afirma que o Estado, assim como a própria sociedade, existiu sempre, pois desde que o homem vive sobre a Terra acha-se integrado numa organização

Neste mesmo ano Meng [ 13 ] desenvolveu um teorema (teorema 7 ) para a caracterização dos grafos equi-emparelháveis, porém este não fornece uma boa caracterização pois dela

Esse contexto deu origem ao que será analisado na indústria de brinquedos, focando, o impacto causado na indústria nacional pelo aumento das importações, assim como

Um fator relevante na aplicação do projeto foi o entendimento das estrelas na nossa galáxia, que são vistas em céu aparente, bem como a questão do brilho e outros

Duas mutações independentemente isoladas em um mes- mo sítio podem corresponder exatamente à mesma alteração no DNA (neste caso, o mesmo evento mu- tacional ocorreu em mais de

Entrada (contacto NC) de fotocélula activa na fase de abertura e fecho.. PHC Fotocélula Entrada (contacto NC) de fotocélula activa na fase

The sample size and the number of tablets per test depends on the total hardness of water required:.. Water Hardness Required Sample Size Number of Tablets Less than