Złożoność obliczania parzystości odczytu dwukrotnego przeciwnego do wzoru CNF (

11

W dwukrotnej, przeciwnej do odczytu formule CNF, każda zmienna pojawia się dwukrotnie, raz dodatnia, a raz ujemna.

Jestem zainteresowany w problem, który polega na obliczaniu parytetu liczby spełniających zadania o przeciwnej wzoru CNF odczytu dwukrotnie.Rtw-Opp-CNF

Nie udało mi się znaleźć odniesienia do złożoności takiego problemu. Najbliższe, jakie udało mi się znaleźć, to to, że licząca wersja jest # P -kompletna (patrz sekcja 6.3 w niniejszym dokumencie ).#Rtw-Opp-CNF#P

Z góry dziękuje za twoją pomoc.


Zaktualizuj 10 kwietnia 2016 r

  • W tym artykule The problemu okazały się P -Complete jednak formuła otrzymane drogą redukcji z 3 SAT nie jest CNF, i jak najszybciej starają się przekształcić go z powrotem do CNF dostaniesz wzór trzykrotnie.Rtw-Opp-SATP3SAT
  • Wersja monotoniczna jest pokazana jako P -kompletna w tym dokumencie . W takim artykule Rtw-Opp-CNF jest szybko wspomniany na końcu sekcji 4: Valiant mówi, że jest zdegenerowany. Nie jest dla mnie jasne, co dokładnie oznacza zdegenerowanie, ani co nie oznacza pod względem twardości.Rtw-Mon-CNFPRtw-Opp-CNF

Zaktualizuj 12 kwietnia 2016 r

Byłoby również bardzo interesujące wiedzieć, czy ktokolwiek kiedykolwiek badał złożoność problemu . Biorąc pod uwagę dwukrotny odczyt CNF, taki problem wymaga obliczenia różnicy między liczbą zadowalających przypisań o nieparzystej liczbie zmiennych ustawionych na true a liczbą spełniających przypisań o parzystej liczbie zmiennych ustawionych na true. Nie znalazłem żadnej literatury na ten temat.ΔRtw-Opp-CNF


Zaktualizuj 29 maja 2016 r

Jak zauważył Emil Jeřábek w swoim komentarzu, nie jest prawdą, że Valiant powiedział, że problem jest zdegenerowany. Powiedział tylko, że bardziej ograniczona wersja takiego problemu, Pl-Rtw-Opp-3CNF , jest zdegenerowana. Tymczasem nadal nie wiem, co dokładnie oznacza degeneracja, ale przynajmniej teraz wydaje się jasne, że jest to synonim braku ekspresyjnej mocy.Rtw-Opp-CNFPl-Rtw-Opp-3CNF

Giorgio Camerani
źródło
TwRtw-Opp-CNF jest tak trudny jak ⊕Rtw-Mon-CNF. Możesz zbudować gadżet negacji: (i0 v x0 v x1) (x1 v x2) (i1 v x0 v x2). Jeśli i0 = i1, to waga = 0 (in modulo 2). W przeciwnym razie waga = 1.
Nie mogę znaleźć redukcji z ⊕Rtw-Mon-CNF do ⊕Rtw-Opp-CNF, ale znalazłem algorytm wielomianowy do rozwiązywania ⊕Rtw-Opp-CNF. Więc ⊕Rtw-Opp-CNF jest prostsze.
Nie mogę znaleźć wzmianki o ⊕Rtw-Opp-CNF w pracy Valianta. Twierdzi, że ⊕Pl-Rtw-Opp-3CNF jest „zdegenerowany”, ale wiąże się to z kilkoma dodatkowymi ograniczeniami.
Emil Jeřábek,
@ EmilJeřábek: Zdecydowanie masz rację. Zostałem wprowadzony w błąd przez moją nieznajomość znaczenia „zdegenerowanego” i zastosowałem ten sam rodzaj rozumowania, który zwykle stosuje się w obecności wyników kompletności: jeśli pewien problem jest kompletny dla niektórych klas, usunięcie ograniczeń z niego oczywiście zachowuje kompletność. Nawet jeśli nadal nie wiem, co dokładnie oznacza „zdegenerowany” , to jest mi teraz przynajmniej jasne, że taki termin jest w pewnym sensie synonimem słabości (tj. Braku mocy ekspresyjnej), stąd powyższe rozumowanie nie może być zastosowane. Odpowiednio poprawiłem pytanie.
Giorgio Camerani
1
@Maciej: Naprawdę? Jak działa algorytm wielomianowy?
Giorgio Camerani

Odpowiedzi:

3

Okazuje się, że każda formuła przeciwnego odczytu-dwukrotności ma parzystą liczbę satysfakcjonujących zadań. Oto niezły dowód, choć prawdopodobnie można by wyeliminować terminologię opartą na teorii grafów.

Niech będzie formułą CNF z odczytem przeciwnym do dwukrotnego odczytu. Bez utraty ogólności żadna klauzula nie zawiera zarówno zmiennej, jak i jej negacji.ϕ

Rozważmy wykres którego zestaw wierzchołków jest klauzulami ϕ , a dla każdej zmiennej x dodajemy (nieukierowaną) krawędź, która występuje na dwóch klauzulach zawierających x . Nasze założenie WLOG w ϕ mówi, że ten wykres nie ma pętli własnych. Ponadto pomyśl o oznaczeniu każdej krawędzi zmienną ją definiującą; w ten sposób możemy rozróżnić równoległe krawędzie.Gϕxxϕ

Zorientowanie jest kierowany wykres której krawędzie utworzone są przez przypisanie do każdego kierunku krawędzi, G . Nazwij orientację G dopuszczalną, jeśli każdy wierzchołek G ma krawędź wychodzącą. Łatwo zauważyć, że spełniające zadania do cp są w bijective korespondencji z dopuszczalnych kierunków G .GGG GϕG

Teraz twierdzę, że liczba dopuszczalnych orientacji jest parzysta. Argumentem jest „inwolucja”: tworzę mapę Φ o następujących właściwościach:GΦ

  1. jest całkowicie zdefiniowany (każda dopuszczalna orientacja jest gdzieś odwzorowana)Φ
  2. wysyła dopuszczalne orientacje do dopuszczalnych orientacjiΦ
  3. to inwolucja ( Φ Φ to tożsamość)ΦΦΦ
  4. nie ma stałych punktówΦ

Raz są one ustalone, możemy zaobserwować, że orbity mieć wielkość 2 i podzielić dopuszczalnych orientacje G . Wynika z tego, że liczba dopuszczalnych orientacji jest parzysta.ΦG

Aby zdefiniować , niech G będzie dopuszczalną orientacją i rozważ złamanie G w silnie połączonych komponentach. Sends następnie przesyła G do orientacji utworzonej przez odwrócenie wszystkich krawędzi w silnie połączonych komponentach. Właściwości są następnie bezpośrednio sprawdzane:ΦGGΦG

  1. Każdy ukierunkowany wykres można podzielić na ściśle powiązane komponenty.
  2. Rozważ „DAG silnie połączonych komponentów” w ; nazwij to ilorazem. Zauważ, że Φ ( G ) będzie mieć tę samą strukturę ilorazową, ponieważ Φ nie wpływa na krawędzie między SCC, a silnie połączone wykresy pozostają silnie połączone podczas odwracania wszystkich ich krawędzi. Ponadto, jeśli SCC ma więcej niż jeden wierzchołek, wówczas wszystkie jego wierzchołki składowe mają krawędź wejściową. Jeśli SCC ma tylko jeden wierzchołek i nie jest źródłem w ilorazie, wówczas wszystkie jego wierzchołki składowe mają krawędź wejściową. Aby pokazać Φ ( G )GΦ(G)ΦΦ(G)jest dopuszczalne, wystarczy wykazać, że SCC, które są źródłami w ilorazie, mają wiele wierzchołków. Wynika to jednak z faktu, że każdy wierzchołek komponentu ma krawędź wejściową, która musi pochodzić z innego wierzchołka komponentu, ponieważ nie ma pętli własnych, a komponent jest źródłem ilorazu.G
  3. Wynika to z faktu, że iloraz struktura pokrywa się ze strukturą iloraz G .Φ(G)G
  4. Dopuszczalność ma cykl, a zatem trochę SCC z krawędzią w środku.G
Andrew Morgan
źródło
Niezła obserwacja! Prostszym sposobem dostrzeżenia tego (jak mówisz „wyeliminuj terminologię graficzną”) jest zaobserwowanie, że jeśli przypisanie spełnia F, to przypisanie a '(x) = 1-a (x) również spełnia F. Można to łatwo wykazać przez indukcję liczby zmiennych F.
holf
Φ01203101200310
x¬xy¬z¬yz(1,1,1)(0,0,0)
ΦMxyxxyM
@Emil: Ach tak, masz rację. Jeśli dobrze rozumiem twoją sugestię, mówisz o podzieleniu orientacji na silnie połączone komponenty i odwróceniu krawędzi w komponentach. Myślę, że to działa. Zaktualizuję odpowiednio swoją odpowiedź. Wielkie dzięki!!
Andrew Morgan,
0

Nie jestem pewien, czy mój pomysł jest zrozumiały, dlatego wyjaśnię na przykładzie Giorgio:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

Najpierw muszę to zmienić w formularzu DNF:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

To powinno dać tę samą odpowiedź. I bez względu na to, czy obliczę liczbę rozwiązań modulo 2 w tym celu:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

lub w tym celu:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

Więc wybieram drugi. Mam implanty:

i0(x1x2x3)

i1(¬x1¬x3x4)

i2(¬x4x5)

i3(¬x2¬x5¬x6)

Teraz buduję układ równań:

j0j1=1

j0j3=1

j0j1=1

j2j3=1

j3=1

x6

Maciej
źródło
Jeśli moje myślenie jest w porządku, odpowiedź brzmi „nie”. Oczywiście zakładam, że zmienna występuje raz w wyniku dodatnim, a raz w negacji.
Maciej
x4j1j2j3j2j1j0
-1

Rtw-Opp-CNFf(X)g(X)f(X)g(X)f(X)g(X)

i0i1i2...in1

ijx0x1¬x2

2ki0i1i2...in1

i0i1i2...in1

ab=ab(ab)

1) ma wszystkie zmienne,

2) każda zmienna występuje dokładnie jedna (jeśli zmienna występuje dwa razy, to mamy jeden dodatni i ujemny w jednym implancie, więc da to wartość 0).

x0i0x0i1

j0j1=1

j0j1i0i1i0j0j02l

Maciej
źródło
Rtw-Opp-CNF
@AndrewMorgan Ale formuła z unikalną klauzulą ​​zawierającą wszystkie zmienne dokładnie raz nie byłaby formułą do odczytu dwa razy. Ograniczenie jest dokładnie dwa razy, nie więcej niż dwa razy.
Giorgio Camerani
x6(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)x6
(x1x2)(x1¯)(x2¯)(x1x2)(x1¯x2¯)(x1)(x1¯)(x2)(x2¯)
@AndrewMorgan OK, teraz widzę. Weź jednak pod uwagę, że również w rodzinie przypadków, o których mówiłeś, liczba satysfakcjonujących zadań wydaje się być równa. Pytanie postawione przez Macieja w komentarzu okazuje się trudne.
Giorgio Camerani