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 Como aproximar? • Idéia: Ordene por vi/ti (“valor médio”) em ordem decrescente e enche o mochila o mais possível nessa ordem. Abordagem 1 K−G(vi ,ti ) := 2 ordene os i t e n s t a l que vi/ti ≥ vj/tj , ∀i < j . 3 for i ∈ X do 4 i f ti < M then 5 S := S ∪ {i} 6 M := M − ti 7 end i f 8 end for 9 return S Aproximação boa? 186 • Considere • Então: v1 = 1, . . . , vn−1 = 1, vn = M − 1 t1 = 1, . . . , tn−1 = 1, tn = M = kn k ∈ N arbitrário v1/t1 = 1, . . . , vn−1/tn−1 = 1, vn/tn = (M − 1)/M < 1 • K-G acha uma solução com valor ϕ(x) = n−1, mas o ótimo é OPT(x) = M − 1. • Taxa de aproximação: OPT(x)/ϕ(x) = M − 1 n − 1 = kn − 1 n − 1 • K-G não possui taxa de aproximação fixa! ≥ kn − k n − 1 • Problema: Não escolhemos o item com o maior valor. = k

Tentativa 2: Modificação 1 K−G’ ( vi ,ti ) := 2 S1 := K−G(vi ,ti ) 3 v1 := i∈S1 vi 4 5 S2 v2 := {argmaxi vi} := i∈S2 vi 6 i f v1 > v2 then 7 return S1 8 else 9 return S2 10 end i f Aproximação boa? • O algoritmo melhorou? • Surpresa Proposição 8.5 K-G’ é uma 2-aproximação, i.e. OPT(x) < 2ϕK-G ′(x). 8.3. Aproximações gulosas Prova. Seja j o primeiro item que K-G não coloca na mochila. Nesse ponto temos valor e tamanho ¯vj = vi ≤ ϕK-G(x) (8.1) 1≤i

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

Como aproximar?<br />

• Idéia: Or<strong>de</strong>ne por vi/ti (“valor médio”) em or<strong>de</strong>m <strong>de</strong>crescente e enche<br />

o mochila o mais possível nessa or<strong>de</strong>m.<br />

Abordagem<br />

1 K−G(vi ,ti ) :=<br />

2 or<strong>de</strong>ne os i t e n s t a l que vi/ti ≥ vj/tj , ∀i < j .<br />

3 for i ∈ X do<br />

4 i f ti < M then<br />

5 S := S ∪ {i}<br />

6 M := M − ti<br />

7 end i f<br />

8 end for<br />

9 return S<br />

Aproximação boa?<br />

186<br />

• Consi<strong>de</strong>re<br />

• Então:<br />

v1 = 1, . . . , vn−1 = 1, vn = M − 1<br />

t1 = 1, . . . , tn−1 = 1, tn = M = kn k ∈ N arbitrário<br />

v1/t1 = 1, . . . , vn−1/tn−1 = 1, vn/tn = (M − 1)/M < 1<br />

• K-G acha uma solução com valor ϕ(x) = n−1, mas o ótimo é OPT(x) =<br />

M − 1.<br />

• Taxa <strong>de</strong> aproximação:<br />

OPT(x)/ϕ(x) =<br />

M − 1<br />

n − 1<br />

= kn − 1<br />

n − 1<br />

• K-G não possui taxa <strong>de</strong> aproximação fixa!<br />

≥ kn − k<br />

n − 1<br />

• Problema: Não escolhemos o item com o maior valor.<br />

= k

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

Saved successfully!

Ooh no, something went wrong!