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.

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

Classes <strong>de</strong> <strong>complexida<strong>de</strong></strong><br />

• PO: Problemas <strong>de</strong> otimização com algoritmo polinomial.<br />

• NPO: Problemas <strong>de</strong> otimização tal que<br />

1. Instâncias reconhecíveis em tempo polinomial.<br />

2. A relação P é polinomialmente limita.<br />

3. Para y arbitrário, polinomialmente limitado: (x, y) ∈ P <strong>de</strong>cidível<br />

em tempo polinomial.<br />

4. ϕ é computável em tempo polinomial.<br />

• NPO contém todos problemas <strong>de</strong> otimização, que satisfazem critérios<br />

mínimos <strong>de</strong> tratabilida<strong>de</strong>.<br />

Lembrança (veja <strong>de</strong>finição 13.1): P é polinomialmente limitada, se para soluções<br />

(x, y) ∈ P temos |y| ≤ p(|x|), para um polinômio p.<br />

Motivação<br />

• Para vários problemas não conhecemos um algoritmo eficiente.<br />

• No caso dos problemas NP-completos: solução eficiente é pouco provável.<br />

• O quer fazer?<br />

• Idéia: Para problemas da otimização, não busca o ótimo.<br />

• Uma solução “quase” ótimo também ajuda.<br />

O que é “quase”? Aproximação absoluta<br />

178<br />

• A solução encontrada difere da solução ótima ao máximo um valor constante.<br />

• Erro absoluto:<br />

D(x, y) = |OPT(x) − ϕ(x, y)|<br />

• Aproximação absoluta: Algoritmo garante um y tal que D(x, y) ≤ k.<br />

• Exemplos: Coloração <strong>de</strong> grafos, árvore geradora e árvore Steiner <strong>de</strong> grau<br />

mínimo [28]<br />

• Contra-exemplo: Knapsack.

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

Saved successfully!

Ooh no, something went wrong!