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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Rascunho <strong>de</strong> um algoritmo:<br />

Algoritmo 9.2 (Emparelhamento máximo)<br />

Entrada Grafo não-direcionado G = (V, E).<br />

Saída Um emparelhamento máximo M.<br />

1 M = ∅<br />

2 while ( e x i s t e um caminho M aumentante P ) do<br />

3 M := M ⊕ P<br />

4 end while<br />

5 return M<br />

Problema: como achar caminhos M-aumentantes <strong>de</strong> forma eficiente?<br />

Observação 9.6<br />

Um caminho M-aumentante começa num vértice livre em V1 e termina num<br />

vértice livre em V2. Idéia: Começa uma busca por largura com todos vértices<br />

livres em V1. Segue alternadamente arcos livres em M para encontrar vizinhos<br />

em V2 e arcos em M, para encontrar vizinhos em V1. A busca para ao encontrar<br />

um vértice livre em V2 ou após <strong>de</strong> visitar todos vértices. Ela tem <strong>complexida<strong>de</strong></strong><br />

O(m). ♦<br />

Teorema 9.9<br />

O problema do emparelhamento máximo não-pon<strong>de</strong>rado em grafos bi-partidos<br />

po<strong>de</strong> ser resolvido em tempo O(mn).<br />

Prova. Última observação e o fato que o emparelhamento máximo tem tamanho<br />

O(n). <br />

Observação 9.7<br />

O último teorema é o mesmo que teorema (9.6). ♦<br />

Observação 9.8<br />

Pelo teorema (9.8) sabemos que em geral existem vários caminhos M-alternantes<br />

disjuntos (<strong>de</strong> vértices) e nos po<strong>de</strong>mos aumentar M com todos eles em paralelo.<br />

Portanto, estruturamos o algoritmo em fases: cada fase procura um conjunto<br />

<strong>de</strong> caminhos aumentantes disjuntos e aplicá-los para obter um novo emparelhamento.<br />

Observe que pelo teorema (9.8) um aumento com o maior conjunto<br />

<strong>de</strong> caminhos M-alternantes disjuntos resolve o problema imediatamente, mas<br />

220

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

Saved successfully!

Ooh no, something went wrong!