Il SAT 1-in-3 rimane NP-difficile anche se ogni variabile si presenta sia positivamente che negativamente?


9

Il problema standard 1-in-3 SAT (o XSAT o X3SAT) è:
Istanza : una formula CNF con ogni clausola contenente esattamente 3 valori letterali
Domanda : esiste un'assegnazione soddisfacente che imposta esattamente 1 valore letterale per clausola vero?

Il problema è NP-completo e rimane difficile anche se nessuna variabile si presenta negata. Mi chiedo se questo problema diventi facile o rimanga difficile se è necessario che ogni variabile si verifichi almeno una volta positivamente e almeno una volta negativamente .

La solita riduzione da 3SAT che mostra che 1-in-3 SAT è difficile sostituisce una clausola con clausole ( ¬ x a b ) , ( y b c ) , ( ¬ z c d ) dove a , b , c , d(xyz)(¬xab)(ybc)(¬zcd)a,b,c,dsono freschi per ogni clausola. Pertanto, questa riduzione non aiuta a rispondere alla mia domanda. Ho avuto difficoltà a trovare un gadget che mostra la durezza di questa variante, poiché se esattamente 1 letterale in una clausola è vero, allora 2 letterali non simmetrici sono falsi. Se risulta facile, pensare in termini di partizioni del set di clausole potrebbe farlo, ma non riesco a vedere come.


Può essere ridotto a 2 sat?
Joshua Herman,

4
Xi(XiX¯iW)(XiX¯iY)(XiX¯iZ)(WYZ¯)

(W¯YZ)(WY¯Z)XiX¯i

3
Posso incoraggiarti a scrivere una risposta completa alla tua domanda, forse sulla base dell'idea di Neal Young? (Per inciso, non sono sicuro del perché sia ​​"insoddisfacente". Una riduzione è una riduzione.)
DW,

4
Se quel caso speciale è quello a cui tieni davvero, forse ha senso modificare la tua domanda per riflettere quel vincolo in più?
DW,

Risposte:


2

In un commento, OP ha espresso interesse per una riduzione che ha generato istanze con 3 variabili distinte per clausola. Ecco un approccio semplice:

La riduzione è da 1 a 3 SAT con 3 variabili distinte per clausola:

  • Prima di tutto, includi tutte le clausole nella formula di input come clausole nella formula di output.
  • F1F2F3(¬F1,F2,F3)(F1,¬F2,F3)(F1,F2,¬F3)
  • xx(x,x,F1)(¬x,¬x,F1)

Verifichiamo che questa riduzione fa quello che vogliamo. Le seguenti proprietà sono ciò che vogliamo:

  1. Ogni clausola ha sempre tre variabili distinte.
  2. Ogni variabile si presenta in alcune clausole positivamente e in alcune clausole negativamente.
  3. La formula di input è equivalente alla formula di output.

F1F2F3

F1F2F3FiF1(x,x,F1)(¬x,¬x,F1)x=¬xxxxFi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.