Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

8. Algoritmos de aproximação Aproximação melhor? • Tese doutorado D. S. Johnson, 1973, 70 pág • Baker, 1985 8.4. Esquemas de aproximação Novas considerações ϕPiCD(x) ≤ 11 OPT(x) + 4 9 ϕPiCD(x) ≤ 11 OPT(x) + 3 9 • Freqüentemente uma r-aproximação não é suficiente. r = 2: 100% de erro! • Existem aproximações melhores? p.ex. para SAT? problema do mochila? • Desejável: Esquema de aproximação em tempo polinomial (EATP); polynomial time approximation scheme (PTAS) – Para cada entrada e taxa de aproximação r: – Retorne r-aproximação em tempo polinomial. Um exemplo: Mochila máxima (Knapsack) • Problema de mochila (veja página 185): • Algoritmo MM-PD com programação dinâmica (pág. 108): tempo O(n i vi). • Desvantagem: Pseudo-polinomial. Denotamos uma instância do problema do mochila com I = ({vi}, {ti}). 1 MM−PTAS(I ,r ) := 2 3 vmax := maxi{vi} t := log r−1 vmax r n 4 v ′ i := ⌊vi/2t⌋ para i = 1, . . . , n 5 Define nova i n s t â n c i a I ′ = ({v ′ i 6 return MM PD(I ′ ) }, {ti}) Teorema 8.1 MM-PTAS é uma r-aproximação em tempo O(rn 3 /(r − 1)). 192

8.4. Esquemas de aproximação Prova. A complexidade da preparação nas linhas 1–3 é O(n). A chamada para MM-PD custa O n v i ′ i = O n vi ((r − 1)/r)(vmax/n) i r r = O n2 vi/vmax = O r − 1 r − 1 n3 . Seja S = MM-PTAS(I) a solução obtida pelo algoritmo e S∗ uma solução ótima. ϕMM-PTAS(I, S) = vi ≥ 2 t vi/2 t definição de ⌊·⌋ Portanto i∈S i∈S ≥ 2 t vi/2 t i∈S ∗ ≥ i∈S ∗ = i∈S ∗ vi − 2 t vi ≥ OPT(I) − 2 t n i − 2 t |S ∗ | otimalidade de MM-PD sobre v ′ i (A.10) OPT(I) ≤ ϕMM-PTAS(I, S) + 2 t n ≤ ϕMM-PTAS(I, S) + OPT(x) 2 vmax t n ⇐⇒ OPT(I) 1 − 2t n ≤ ϕMM-PTAS(I, S) vmax e com 2 t n/vmax ≤ (r − 1)/r ⇐⇒ OPT(I) ≤ rϕMM-PTAS(I, S). Considerações finais Um EATP frequentemente não é suficiente para resolver um problema adequadamente. Por exemplo temos um EATP para • o problema do caixeiro viajante euclidiano com complexidade O(n 3000/ɛ ) (Arora, 1996); 193

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

Aproximação melhor?<br />

• Tese doutorado D. S. Johnson, 1973, 70 pág<br />

• Baker, 1985<br />

8.4. Esquemas <strong>de</strong> aproximação<br />

Novas consi<strong>de</strong>rações<br />

ϕPiCD(x) ≤ 11<br />

OPT(x) + 4<br />

9<br />

ϕPiCD(x) ≤ 11<br />

OPT(x) + 3<br />

9<br />

• Freqüentemente uma r-aproximação não é suficiente. r = 2: 100% <strong>de</strong><br />

erro!<br />

• Existem aproximações melhores? p.ex. para SAT? problema do mochila?<br />

• Desejável: Esquema <strong>de</strong> aproximação em tempo polinomial (EATP);<br />

polynomial time approximation scheme (PTAS)<br />

– Para cada entrada e taxa <strong>de</strong> aproximação r:<br />

– Retorne r-aproximação em tempo polinomial.<br />

Um exemplo: Mochila máxima (Knapsack)<br />

• Problema <strong>de</strong> mochila (veja página 185):<br />

• Algoritmo MM-PD com programação dinâmica (pág. 108): tempo O(n <br />

i vi).<br />

• Desvantagem: Pseudo-polinomial.<br />

Denotamos uma instância do problema do mochila com I = ({vi}, {ti}).<br />

1 MM−PTAS(I ,r ) :=<br />

2<br />

3<br />

vmax := maxi{vi}<br />

t := log r−1<br />

vmax<br />

r n<br />

4 v ′ i := ⌊vi/2t⌋ para i = 1, . . . , n<br />

5 Define nova i n s t â n c i a I ′ = ({v ′ i<br />

6 return MM PD(I ′ )<br />

}, {ti})<br />

Teorema 8.1<br />

MM-PTAS é uma r-aproximação em tempo O(rn 3 /(r − 1)).<br />

192

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

Saved successfully!

Ooh no, something went wrong!