Czy 1-w-3 SAT pozostaje NP-twardy, nawet jeśli każda zmienna występuje zarówno pozytywnie, jak i negatywnie?

9

Standardowy problem 1-w-3 SAT (lub XSAT lub X3SAT) to:
Instancja : formuła CNF z każdą klauzulą ​​zawierającą dokładnie 3 literały
Pytanie : czy istnieje zadowalające ustawienie przypisania dokładnie 1 literał na klauzulę prawda?

Problem jest NP-zupełny i pozostaje trudny, nawet jeśli żadna zmienna nie zostanie zanegowana. Zastanawiam się, czy problem ten staje się łatwy, czy trudny, jeśli każda zmienna musi wystąpić przynajmniej raz pozytywnie, a przynajmniej raz negatywnie .

Zwykła redukcja z 3SAT pokazująca, że ​​1-w-3 SAT jest trudny, zastępuje klauzulę (xyz) według klauzul (¬xab), (ybc), (¬zcd) gdzie a,b,c,dsą świeże dla każdej klauzuli. Tak więc ta redukcja nie pomaga w odpowiedzi na moje pytanie. Miałem problem z wymyśleniem gadżetu wykazującego twardość tego wariantu, ponieważ jeśli dokładnie 1 literał w klauzuli jest prawdziwy, to niesymetryczne 2 literały są fałszywe. Jeśli okaże się to łatwe, myślenie w kategoriach partycji zestawu klauzul może to zrobić, ale nie widzę, jak to zrobić.

Dominik Peters
źródło
Czy można zmniejszyć do 2 sob.
Joshua Herman
4
wskazówka: dla każdej var Xi, dodaj klauzule (XiX¯iW)(XiX¯iY)(XiX¯iZ) i powiedzieć, (WYZ¯).
Neal Young,
Ha, to działa (oczywiście dodając również (W¯YZ)(WY¯Z)). Pozostawię pytanie otwarte, na wypadek, gdyby ktokolwiek mógł je rozwiązać bez odrobiny niezadowoleniaXiX¯isztuczka.
Dominik Peters,
3
Czy mogę zachęcić cię do napisania pełnej odpowiedzi na własne pytanie, być może opartej na pomyśle Neal Young? (Nawiasem mówiąc, nie jestem pewien, dlaczego to jest „niezadowalające”. Redukcja to redukcja.)
DW
4
Jeśli ten szczególny przypadek jest tym, na którym naprawdę Ci zależy, to może warto zmodyfikować swoje pytanie, aby odzwierciedlić to dodatkowe ograniczenie?
DW

Odpowiedzi:

2

W komentarzu OP wyraził zainteresowanie redukcją, która wygenerowała instancje z 3 różnymi zmiennymi na klauzulę. Oto proste podejście:

Redukcja wynika z 1-w-3 SAT z 3 odrębnymi zmiennymi na klauzulę:

  • Przede wszystkim uwzględnij wszystkie klauzule we wzorze wejściowym jako klauzule we wzorze wyjściowym.
  • Po drugie, wprowadź trzy nowe zmienne F1, F2, i F3 i dodaj następujące trzy klauzule do formuły wyjściowej: (¬F1,F2,F3), (F1,¬F2,F3), i (F1,F2,¬F3).
  • Wreszcie dla każdej zmiennej x w oryginalnej formule wprowadź nową zmienną xi dodaj następujące dwie klauzule do formuły wyjściowej: (x,x,F1) i (¬x,¬x,F1).

Sprawdźmy, czy ta redukcja robi to, co chcemy. Potrzebujemy następujących właściwości:

  1. Każda klauzula ma zawsze trzy różne zmienne.
  2. Każda zmienna występuje w niektórych klauzulach dodatnio, a w niektórych klauzulach negatywnie.
  3. Formuła wejściowa jest równoważna formule wyjściowej.

Właściwość 1 jest łatwa do sprawdzenia. Łatwo jest również sprawdzić właściwość 2: zmienneF1, F2, i F3 każda występuje zarówno pozytywnie, jak i negatywnie w klauzulach dodanych w drugim punkcie wypunktowania, podczas gdy każda inna zmienna we wzorze występuje zarówno pozytywnie, jak i negatywnie w klauzulach dodanych w trzecim punkcie wypunktowania.

Jeśli chodzi o właściwość 3, jest to mniej banalne, ale wciąż łatwe. Możesz łatwo argumentować, że jedynym przypisaniem do zmiennychF1, F2, i F3 że spełnienie każdej klauzuli z drugiego punktu jest wykonanie wszystkich trzech Fis false. Ale wtedy przyjmując wartość false dlaF1, klauzule (x,x,F1) i (¬x,¬x,F1) dodane w trzecim punkcie są spełnione wtedy i tylko wtedy x=¬x. Ponieważ nie ma żadnych innych ograniczeńxoznacza to, że zawsze możliwe jest rozszerzenie satysfakcjonującego przypisania dla formuły wejściowej na satysfakcjonujące przypisanie dla formuły wyjściowej: po prostu ustaw każdy x być zaprzeczeniem odpowiedniego x i ustaw każdy Fi do fałszu.

Michaił Rudoy
źródło