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.

10. <strong>Algoritmos</strong> <strong>de</strong> aproximação<br />

2. Duplica todas arestas <strong>de</strong> A.<br />

3. Acha um caminho Euleriano nesse grafo.<br />

4. Remove vértices duplicados.<br />

Teorema 10.4<br />

O algoritmo acima <strong>de</strong>fine uma 2-aproximação.<br />

Prova. A melhor solução do PCV menos uma aresta é uma árvore geradora <strong>de</strong><br />

G. Portanto c(A) ≤ OPT. A solução S obtida pelo algoritmo acima satisfaz<br />

c(S) ≤ 2c(A) e portanto c(S) ≤ 2OPT, pelo mesmo argumento da prova do<br />

teorema 10.2. <br />

O fator 2 <strong>de</strong>ssa aproximação é resultado do passo 2 que duplica todas arestas<br />

para garantir a existência <strong>de</strong> um caminho Euleriano. Isso po<strong>de</strong> ser garantido<br />

mais barato: A AGM A possui um número par <strong>de</strong> vértices com grau impar<br />

(ver exercício 10.2), e portanto po<strong>de</strong>mos calcular um emparelhamento perfeito<br />

mínimo E entre esse vértices. O grafo com arestas A ∪ E possui somente<br />

vértices com grau par e portanto po<strong>de</strong>mos aplicar os restantes passos nesse<br />

grafo.<br />

Teorema 10.5<br />

A algoritmo usando um emparelhamento perfeito mínimo no passo 2 é uma<br />

3/2-aproximação.<br />

Prova. O valor do emparelhamento E não é mais que OPT/2: remove vértices<br />

não emparelhados em E da solução ótima do PCV. O ciclo obtido <strong>de</strong>ssa forma<br />

é a união dois emparelhamentos perfeitos E1 e E2 formados pelas arestas pares<br />

ou impares no ciclo. Com E1 o emparelhamento <strong>de</strong> menor custo, temos<br />

e portanto<br />

c(E) ≤ c(E1) ≤ (c(E1) + c(E2))/2 = OPT/2<br />

c(S) = c(A) + c(E) ≤ OPT + OPT/2 = 3/2OPT.<br />

10.3. <strong>Algoritmos</strong> <strong>de</strong> aproximação para cortes<br />

Seja G = (V, A, c) um grafo conectado com pesos c nas arestas. Lembramos<br />

que um corte C é um conjunto <strong>de</strong> arestas que separa o grafo em dois partes<br />

S . ∪ V \ S. Dado dois vértices s, t ∈ V , o problema <strong>de</strong> achar um corte mínimo<br />

que separa s e t po<strong>de</strong> ser resolvido via fluxo máximo em tempo polinomial.<br />

Generalizações <strong>de</strong>sse problema são:<br />

232

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

Saved successfully!

Ooh no, something went wrong!