Todos os algoritmos conhecidos para resolver problemas de NP-completos são construtivos?

11

Existem algoritmos conhecidos que emitem corretamente "yes" para um problema NP-completo sem gerar implicitamente um certificado?

Entendo que é fácil transformar um oráculo de satisfação em um localizador de tarefas satisfatórias: apenas itere sobre as variáveis, sempre pedindo ao oráculo de satisfação que resolva a conjunção dessa variável com o problema original.

Mas esse invólucro seria útil? Todos os solucionadores de busca pesquisam o espaço de possíveis atribuições?

Ou existem alguns tipos de problemas NP completos (vendedor ambulante, soma de subconjuntos etc.) nos quais o solucionador pode, por exemplo, explorar um teorema matemático para provar que uma solução deve existir? Como fazer uma prova por contradição?

user82928
fonte

Respostas:

11

Pelo que entendi, você está fazendo duas perguntas: (1) existem, por exemplo, algoritmos SAT que são mais inteligentes que a força bruta ingênua e (2) existem algoritmos que simplesmente dão uma resposta SIM / NÃO ao resolver um problema NP-completo sem realmente encontrar a solução. Eu responderei as duas perguntas nesta ordem.

(1) É perfeitamente possível resolver um problema sem força bruta, ou seja, sem tentar ingenuamente todas as possibilidades. Para dar o seu exemplo, os modernos solucionadores de SAT completos podem aplicar algoritmos inteligentes que inferem ou provam que determinadas atribuições (parciais) não podem levar a uma solução, portanto nem sequer examinam essa parte.

n!nnO(2nn2)

k

kGkGk

O(2k)k


kO(2k)

Juho
fonte
Perfeito. O documento do caminho k é exatamente o tipo de coisa que eu estava procurando. Obrigado!
user82928