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.
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 ).
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.
- 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.
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.
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.
źródło
Odpowiedzi:
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 ϕ x x ϕ
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 .G G G G ϕ G
Teraz twierdzę, że liczba dopuszczalnych orientacji jest parzysta. Argumentem jest „inwolucja”: tworzę mapę Φ o następujących właściwościach:G Φ
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:Φ G⃗ G⃗ Φ G⃗
źródło
Nie jestem pewien, czy mój pomysł jest zrozumiały, dlatego wyjaśnię na przykładzie Giorgio:
Najpierw muszę to zmienić w formularzu DNF:
To powinno dać tę samą odpowiedź. I bez względu na to, czy obliczę liczbę rozwiązań modulo 2 w tym celu:
lub w tym celu:
Więc wybieram drugi. Mam implanty:
Teraz buduję układ równań:
źródło
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).
źródło