Seu problema é difícil de NP , como pode ser visto por uma redução (conhecida, acredito) da CNF-SAT: Reduza de (por exemplo)3-SAT da seguinte maneira. Dada uma fórmulaF, crie uma fórmula para o seu NAE-SAT especial introduzindo exatamente uma variável adicional, digamos y. Adicionary a todas as cláusulas F obter F′.
Exemplo: F=(x1∨x2∨¬x3)∧(¬x2∨x3∨¬x4) torna-se F′:=(x1∨x2∨¬x3∨y)∧(¬x2∨x3∨¬x4∨y)
Depois de fazer isso, todas as cláusulas contêm y e, portanto, compartilha (pelo menos) um literal.
Esboço de prova:
seF for satisfatória, use a mesma tarefa satisfatória para satisfazer F′, junto com y=false.
E se F′ é satisfatório, existem duas opções
- y=false, nesse caso, a mesma atribuição satisfaz F (F′ possui pelo menos um literal literal por cláusula e nunca é y, portanto F tem pelo menos um literal verdadeiro por cláusula)
- y=true, negue a tarefa satificante de F′ satisfazer F (pelo menos um literal literal falso por cláusula em F′, depois de negar a atribuição, temos pelo menos um literal verdadeiro por cláusula)