• Nenhum resultado encontrado

Corte mínimo

N/A
N/A
Protected

Academic year: 2022

Share "Corte mínimo"

Copied!
47
0
0

Texto

(1)

Análise de Algoritmos

Estes slides são adaptações de slides

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

(2)

Cortes em grafos

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

Algoritmos – p. 2

(3)

Cortes em grafos

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

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

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

(4)

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

(5)

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

(6)

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 devolve

Esta aula: um corte mínimo com alta probabilidade.

Algoritmos – p. 3

(7)

Contração de arestas

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

e

(8)

Contração de arestas

Dado 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

(9)

Contração de arestas

Dado 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

(10)

Algoritmo de Karger

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

Algoritmos – p. 5

(11)

Algoritmo de Karger

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

Karger (G)

1 enquanto |VG| > 2 faça

2 e ← RANDOM_EDGE(EG)

3 G ← G|e

4 devolva EG

(12)

Algoritmo de Karger

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

Karger (G)

1 enquanto |VG| > 2 faça

2 e ← RANDOM_EDGE(EG)

3 G ← G|e

4 devolva EG

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

Algoritmos – p. 5

(13)

Algoritmo de Karger

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

Karger (G)

1 enquanto |VG| > 2 faça

2 e ← RANDOM_EDGE(EG)

3 G ← G|e

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

(14)

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

(15)

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 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 de G.

Algoritmos – p. 7

(17)

Análise do algoritmo

Seja C um corte mínimo de G.

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 de G.

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ção i.

Algoritmos – p. 7

(19)

Análise do algoritmo

Seja C um corte mínimo de G.

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ção i. Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En2}.

(20)

Análise do algoritmo

Seja C um corte mínimo de G.

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ção i. Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En2}. Tal probabilidade é igual a

Pr{E1} · Pr{E2|E1} · · · Pr{En2|E1 ∩ E2 ∩ · · · ∩ En3}.

Algoritmos – p. 7

(21)

Análise do algoritmo

Seja C um corte mínimo de G.

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ção i. Vamos delimitar inferiormente Pr{E1 ∩ E2 ∩ · · · ∩ En2}. Tal probabilidade é igual a

Pr{E1} · Pr{E2|E1} · · · Pr{En2|E1 ∩ E2 ∩ · · · ∩ En3}.

(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ção i. Como delimitar Pr{E1}?

Algoritmos – p. 8

(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ção i. Como delimitar Pr{E1}?

Como C é 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ção i. Como delimitar Pr{E1}?

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

Portanto Pr{E¯1} ≤ knk

2

= n2.

Algoritmos – p. 8

(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ção i. Como delimitar Pr{E1}?

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

Portanto Pr{E¯1} ≤ knk

2

= n2. Ou seja, Pr{E1} ≥ 1 − n2.

(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ção i. Como delimitar Pr{E1}?

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

Portanto Pr{E¯1} ≤ knk

2

= n2.

Ou seja, Pr{E1} ≥ 1 − n2.

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

Algoritmos – p. 8

(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ção i. Vimos que Pr{E1} ≥ 1 − n2 .

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ção i. Vimos que Pr{E1} ≥ 1 − n2 .

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

(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ção i. Vimos que Pr{E1} ≥ 1 − n2 .

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(nki)

2

= n2i.

(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ção i. Vimos que Pr{E1} ≥ 1 − n2 .

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(nki)

2

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

Algoritmos – p. 9

(31)

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

(32)

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 ∩ · · · ∩ En2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1 − n2i.

Algoritmos – p. 10

(33)

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 ∩ · · · ∩ En2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1 − n2i. Então

Pr{CK = C} ≥

n3

Y

i=0

1 − 2 n − i

1 − 2 n

1 − 2

n−1

1 − 2

n−2

· · · 1 − 2 4

1 − 2

3

(34)

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 ∩ · · · ∩ En2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1 − n2i. Então

Pr{CK = C} ≥

n3

Y

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

(35)

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 ∩ · · · ∩ En2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1 − n2i. Então

Pr{CK = C} ≥

n3

Y

i=0

1 − 2 n − i

.

= 1 − 2 n

1 − 2 n−1

1 − 2 n−2

· · · 1 − 2 4

1 − 2 3

(36)

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 ∩ · · · ∩ En2}.

Já sabemos que Pr{Ei+1|E1 ∩ E2 ∩ · · · ∩ Ei} ≥ 1 − n2i. Então

Pr{CK = C} ≥

n3

Y

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

(37)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

1) = q(n)

(38)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

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

Algoritmos – p. 11

(39)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

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

Se executarmos o algoritmo r = cn(n21) ln n vezes, então

(40)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

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

Se executarmos o algoritmo r = cn(n21) ln n vezes, então Pr{CK não é um corte mínimo} ≤ q(n)r

= 1 − 2

n(n − 1) c

n(n

1)

2 lnn

= 1

e

clnn

= 1 nc.

Algoritmos – p. 11

(41)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

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

Se executarmos o algoritmo r = cn(n21) ln n vezes, então Pr{CK não é um corte mínimo} ≤ q(n)r

= 1 − 2

n(n − 1) c

n(n

1)

2 lnn

= 1

e

clnn

= 1 nc.

Erra com probabilidade exponencialmente pequena em n.

(42)

Conclusão

Logo Pr{CK 6= C} ≤ 1 − n(n2

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

Se executarmos o algoritmo r = cn(n21) ln n vezes, então Pr{CK não é um corte mínimo} ≤ q(n)r

= 1 − 2

n(n − 1) c

n(n

1)

2 lnn

= 1

e

clnn

= 1 nc.

Erra com probabilidade exponencialmente pequena em n. Como r é polinomial em n, o algoritmo é polinomial.

Algoritmos – p. 11

(43)

Uma pergunta...

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

s t

. .

(44)

Uma pergunta...

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

s t

. . Um número exponencial em n...

Algoritmos – p. 12

(45)

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?

(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?

Como Pr{CK = C} ≥ n(n2

1) = 1/ n 2

, há no máximo n

2

cortes mínimos em G.

Algoritmos – p. 12

(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?

Como Pr{CK = C} ≥ n(n2

1) = 1/ n 2

, há no máximo n

2

cortes mínimos em G.

Referências

Documentos relacionados

APELAÇÃO CÍVEL - RESCISÃO CONTRATUAL - CONTRATO PARTICULAR DE PROMESSA DE COMPRA E VENDA- RETORNO AO STATUS QUO ANTE - DEVOLUÇÃO DAS PARCELAS PAGAS- DIREITO DE RETENÇÃO-

2.1 Reconheceu-se, assim, que a atuação da Defensoria Pública, como curadora especial, nas hipóteses previstas no Estatuto da Criança e do Adolescente, dá-se a partir de

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

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

Com os cortes aderidos às lâminas, foram realizadas colorações diferentes: hematoxilina &amp; eosina (H&amp;E) para visualização e análise do corte histológico e da

 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

A SUPERINTENDÊNCIA DE EDUCAÇÃO ABERTA E A DISTÂNCIA , da Universidade Federal do Recôncavo da Bahia - UFRB, no uso das atribuições que lhe foram conferidas pela Portaria

O curso Tecnologia de Sistemas para Internet (TSPI) do Instituto Federal Sul- Rio-Grandense (IFSUL) solicita, para encerrar e por fim obter a formação, um Projeto de Conclusão II