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.

u v w<br />

5.6. Exercícios<br />

Figura 5.1.: Esquerda: O subcaminho uv <strong>de</strong> uvw não é o caminho mais longo<br />

entre u e v.<br />

w, u · · · v é o caminho mais longo entre u e v. Isso nos permite <strong>de</strong>finir C(s, t, V )<br />

como caminho mais longo entre s e t sem passar pelos vértices em V , e temos<br />

⎧<br />

⎪⎨ maxu∈N − (t)\V C(s, u, V ∪ {t}) + dut caso s = t e N<br />

C(s, t, V ) =<br />

⎪⎩<br />

− (t) \ V = ∅<br />

−∞ caso s = t e N − (t) \ V = ∅<br />

0 caso s = t<br />

(Observe que a recorrência possui valor −∞ caso não existe caminho entre s<br />

e t.)<br />

A tabela <strong>de</strong> programação dinâmica possui O(n 2 2 n ) entradas, e cada entrada<br />

po<strong>de</strong> ser computado em tempo O(n), que resulta numa <strong>complexida<strong>de</strong></strong> total <strong>de</strong><br />

O(n 3 2 n ).<br />

Um corolário é que caso o grafo é aciclico, o caminho mais longo po<strong>de</strong> ser<br />

calculado em tempo polinomial.<br />

5.6. Exercícios<br />

Exercício 5.1<br />

Da três exemplos <strong>de</strong> problemas que não possuem uma subestrutura ótima,<br />

i.e. a solução ótima <strong>de</strong> um problema não contém soluções ótimas <strong>de</strong> subproblemas.<br />

Exercício 5.2<br />

O problema do caminho mais longo em grafos aciclicos possui uma subestrutura<br />

ótima? Justifique. Caso sim, propõe um algoritmo <strong>de</strong> programação<br />

dinâmica que resolve o problema.<br />

121

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

Saved successfully!

Ooh no, something went wrong!