13.04.2013 Views

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9. <strong>Algoritmos</strong> em grafos<br />

N<br />

s<br />

N<br />

v<br />

u<br />

1<br />

N<br />

N<br />

t<br />

s<br />

M<br />

Figura 9.4.: Esquerda: Pior caso para o algoritmo <strong>de</strong> Ford-Fulkerson com pesos<br />

inteiros aumentando o fluxo por 2N vezes por 1 nos caminhos<br />

(s, u, v, t) e (s, v, u, t). Direita: Menor grafo com pesos irracionais<br />

em que o algoritmo <strong>de</strong> Ford-Fulkerson falha [73]. M ≥ 3, e r =<br />

(1 + √ 1 − 4λ)/2 com λ ≈ 0.217 a única raiz real <strong>de</strong> 1 − 5x + 2x 2 −<br />

x 3 . Aumentar (s, v1, v4, t) e <strong>de</strong>pois repetidamente (s, v2, v4, v1, v3, t),<br />

(s, v2, v3, v1, v4, t), (s, v1, v3, v2, v4, t), e (s, v1, v4, v2, v3, t) converge para<br />

o fluxo máximo 2 + r + r 2 sem terminar.<br />

Teorema 9.2<br />

O algoritmo <strong>de</strong> Edmonds-Karp precisa O(nm) iterações, e portanto termina<br />

em O(nm 2 ).<br />

Lema 9.9<br />

Seja δf (v) a distância entre s e v em Gf . Durante a execução do algoritmo<br />

<strong>de</strong> Edmonds-Karp δf (v) cresce monotonicamente para todos vértices em V .<br />

Prova. Para v = s o lema é evi<strong>de</strong>nte. Supõe que uma iteração modificando o<br />

fluxo f para f ′ diminuirá o valor <strong>de</strong> um vértice v ∈ V \{s}, i.e., δf (v) > δf ′(v).<br />

Supõe ainda que v é o vértice <strong>de</strong> menor distância δf ′(v) em Gf ′ com essa<br />

característica. Seja P = (s, . . . , u, v) um caminho mais curto <strong>de</strong> s para v<br />

em Gf ′. O valor <strong>de</strong> u não diminuiu nessa iteração (pela escolha <strong>de</strong> v), i.e.,<br />

δf (u) ≤ δf ′(u) (*).<br />

O arco (u, v) não existe in Gf , senão a distãncia do v in Gf é no máximo a<br />

distância do v in Gf ′: Supondo (u, v) ∈ E(Gf ) temos<br />

δf (v) ≤ δf (u) + 1 pela <strong>de</strong>sigualda<strong>de</strong> triangular<br />

≤ δf ′(u) + 1 (*)<br />

≤ δf ′(v) porque uv está num caminho mínimo em Gf ′,<br />

uma contradição com a hipótese que a distância <strong>de</strong> v diminuiu. Portanto,<br />

(u, v) ∈ E(Gf ) mas (u, v) ∈ E(Gf ′). Isso só é possível se o fluxo <strong>de</strong> v para u<br />

204<br />

M<br />

v2<br />

v1<br />

r 2<br />

1<br />

r<br />

v4<br />

1<br />

v3<br />

M<br />

M<br />

t

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!