Pular para conteúdo

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.