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.

5. Programação dinâmica<br />

solução ótima para um problema contém soluções ótimas <strong>de</strong> seus subproblemas)<br />

e superposição <strong>de</strong> subproblemas (reutiliza soluções <strong>de</strong> subproblemas).<br />

2. Po<strong>de</strong> ser aplicada a problemas NP-completos e polinomiais.<br />

3. Em alguns casos o algoritmo direto tem <strong>complexida<strong>de</strong></strong> exponencial, enquanto<br />

que o algoritmo <strong>de</strong>senvolvido por PD é polinomial.<br />

4.<br />

5.<br />

Às vezes a <strong>complexida<strong>de</strong></strong> continua exponencial, mas <strong>de</strong> or<strong>de</strong>m mais<br />

baixa.<br />

É útil quando não é fácil chegar a uma sequência ótima <strong>de</strong> <strong>de</strong>cisões sem<br />

testar todas as sequências possíveis para então escolher a melhor.<br />

6. Reduz o número total <strong>de</strong> sequências viáveis, <strong>de</strong>scartando aquelas que<br />

sabidamente não po<strong>de</strong>m resultar em sequências ótimas.<br />

Idéias básicas da PD<br />

• Objetiva construir uma resposta ótima através da combinação das respostas<br />

obtidas para subproblemas<br />

• Inicialmente a entrada é <strong>de</strong>composta em partes mínimas e resolvidas <strong>de</strong><br />

forma ascen<strong>de</strong>nte (bottom-up)<br />

• A cada passo os resultados parciais são combinados resultando respostas<br />

para subproblemas maiores, até obter a resposta para o problema<br />

original<br />

• A <strong>de</strong>composição é feita uma única vez, e os casos menores são tratados<br />

antes dos maiores<br />

• Este método é chamado ascen<strong>de</strong>nte, ao contrário dos métodos recursivos<br />

que são métodos <strong>de</strong>scen<strong>de</strong>ntes.<br />

Passos do <strong>de</strong>senvolvimento <strong>de</strong> um algoritmo <strong>de</strong> PD<br />

98<br />

1. Caracterizar a estrutura <strong>de</strong> uma solução ótima<br />

2. Definir recursivamente o valor <strong>de</strong> uma solução ótima<br />

3. Calcular o valor <strong>de</strong> uma solução ótima em um processo ascen<strong>de</strong>nte<br />

4. Construir uma solução ótima a partir <strong>de</strong> informações calculadas

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

Saved successfully!

Ooh no, something went wrong!