Força bruta
Enumeração de subconjuntos, intervalos e circuitos, com contagem do trabalho e reconstrução do melhor candidato.
Quando a enumeração serve
Gera todos os candidatos, testa validade antes de comparar e guarda o melhor. A prova exige que toda a solução válida apareça. Em existência, só devolve falso após esgotar ramos.
| Problema | Candidatos | Custo direto |
|---|---|---|
| Intervalo contíguo | pares | com soma acumulada; se recalcular |
| Mochila 0-1 | subconjuntos | com acumulados; por máscara com somas |
| Soma exata | Incluir ou excluir cada elemento | nós; pilha |
| Trocos com stock | quantidades | Manter totais evita fator |
| TSP com origem fixa | ordens | com arestas cada |
Intervalo não vazio
melhor = A[0]
para i = 0 até n-1:
soma = 0
para j = i até n-1:
soma += A[j]
se soma > melhor: guardar soma, i, j
- Inicializa com elemento real; zero admitiria vazio com todos negativos.
- Em
[-4,3,-1,5,-6,2], o melhor é[3,-1,5], soma 7.
Subconjuntos e podas
- Valida peso antes de comparar valor; com valor 13 pode exceder .
- Máscara com exige respeitar largura do tipo.
- Soma parcial acima de só poda se restantes forem não negativos.
- Para reconstruir, guarda melhor máscara ou copia escolhas do caminho.
TSP
Fixa origem para remover rotações. Em instância simétrica não dirigida, podes eliminar inversas duplicadas com regra explícita. Em dirigida, essa regra pode remover o ótimo. Não confundas hamiltoniano (vértices) com euleriano (arestas).