Paradigmas de Projeto de Algoritmos¶
Um paradigma de projeto é uma maneira reutilizável de revelar estrutura em um problema.
| Paradigma | Pergunta central |
|---|---|
| Divisão e conquista | Instâncias menores e independentes podem ser combinadas? |
| Guloso | É seguro assumir agora uma escolha localmente ótima? |
| Programação dinâmica | Quais subproblemas sobrepostos determinam a solução ótima? |
| Backtracking | Soluções parciais inválidas podem ser abandonadas antecipadamente? |
| Aleatorizado | A aleatoriedade pode simplificar o comportamento ou melhorar o custo esperado? |
Escolher um paradigma não prova a correção. Algoritmos gulosos precisam de um argumento estrutural; programas dinâmicos, de uma recorrência correta e de uma ordem válida de dependências; e backtracking, de cobertura completa do espaço de busca.