Estou tentando elaborar uma tarefa (tirada do livro Algoritmos - de S. Dasgupta, CH Papadimitriou e UV Vazirani , Cap 8, problema 8.6a), e estou parafraseando o que afirma:
Dado que o 3SAT permanece NP-completo, mesmo quando restrito a fórmulas nas quais cada literal aparece no máximo duas vezes, mostre que, se cada literal aparecer no máximo uma vez, o problema será resolvido no tempo polinomial.
Tentei resolver isso separando as cláusulas em vários grupos:
- Cláusulas que não tinham nenhuma variável em comum com o restante das cláusulas
- Cláusulas que tinham apenas 1 variável em comum
- Cláusulas que tinham 2 variáveis em comum
- Cláusulas que tinham todas as 3 variáveis em comum
Meu raciocínio foi tentado de acordo com o argumento de que o número de tais grupos é finito (devido à restrição imposta de nenhum literal estar presente mais de uma vez), e poderíamos tentar satisfazer primeiro o grupo mais restrito (grupo 4) e depois substituir o resultam em grupos restritos menores (3, 2 e depois 1), mas percebi que isso não estava me levando a lugar nenhum, pois isso não difere muito do caso da versão restrita do 3SAT na qual cada literal pode aparecer no máximo duas vezes, comprovadamente NP-completo.
Tentei pesquisar online por quaisquer dicas / soluções, mas tudo o que consegui foi esse link , no qual a dica declarada não fazia sentido suficiente para mim, e estou reproduzindo literalmente aqui:
Qualquer ajuda para descriptografar a dica ou fornecer um caminho que eu possa explorar seria realmente apreciada.
fonte