Die Komplexität der Überprüfung, ob zwei CNF die gleiche Anzahl von Lösungen haben

14

Beantworten Sie bei zwei CNF die Frage mit "Ja", wenn sie die gleiche Anzahl von Aufgaben haben, um sie zu erfüllen, andernfalls mit "Nein".

Es ist leicht zu erkennen, dass es sich um , da wir, wenn wir die genaue Anzahl der Lösungen für diese beiden CNF kennen, sie nur kampieren und mit "Ja" oder "Nein" antworten.P#P

Wie komplex ist dieses Problem?

Mike Chen
quelle

Antworten:

14

Das Problem ist coNP-schwer ; Sie können das UNSAT-Problem problemlos auf dieses Problem reduzieren.

Eine genauere Charakterisierung ist, dass das Problem C = P- vollständig ist. Tatsächlich ist eine Definition der Klasse C = P, dass es sich um die Klasse von Problemen handelt, die polynomiell und vielfach auf genau dieses Problem reduzierbar sind (üblicherweise wird diese Definition in Form von GapP- Funktionen angegeben). Aber da dies nicht viel sagt, lassen Sie mich diese Klasse auf eine andere Weise definieren.

Sei C = P die Klasse von Problemen, die sich polynomiell um ein Vielfaches auf folgendes Problem reduzieren lassen: Entscheide bei einer Booleschen Schaltung φ und einer ganzen Zahl K (binär), ob die Anzahl der erfüllenden Zuordnungen von φ gleich K ist . Durch eine Standardreduktion, die die # P-Vollständigkeit von # 3SAT zeigt, können wir φ auf eine 3CNF-Formel beschränken, ohne die Klasse zu beeinflussen. Die Klasse C = P enthält eine Klasse namens US , die sowohl UP als auch coNP enthält.

Mit dieser Definition ist Ihr Problem C = P-vollständig. Tatsächlich ist die C = P-Härte anhand der Definition der Klasse C = P (die 3CNF-Formeln verwendet) leicht zu erkennen .

Um die Zugehörigkeit zu C = P zu beweisen , nehmen wir an, dass wir entscheiden müssen, ob zwei gegebene CNF-Formeln φ 1 und φ 2 die gleiche Anzahl zufriedenstellender Zuordnungen haben oder nicht. Ohne Verlust der Allgemeinheit können wir davon ausgehen, dass die beiden Formeln die gleiche Anzahl von Variablen haben, z . B. n . Konstruieren Sie eine Boolesche Schaltung φ, die n + 1 Bits als Eingabe annimmt, so dass die Anzahl der erfüllenden Zuweisungen von φ gleich c 1 + (2 n - c 2 ) ist, wobei c 1 und c 2sei die Anzahl der erfüllenden Zuordnungen von φ 1 bzw. φ 2 . Dann ist die Anzahl der erfüllenden Zuordnungen von φ genau dann gleich 2 n, wenn c 1 = c 2 ist .

Tsuyoshi Ito
quelle
@Kaveh: Kannst du das näher erläutern?
Tsuyoshi Ito
1
@Kaveh: Nein, das wollen wir nicht. Wir wollen entscheiden, ob φ_1 und φ_2 die gleiche Anzahl von befriedigenden Zuweisungen haben, nicht notwendigerweise die gleiche Menge von befriedigenden Zuweisungen.
Tsuyoshi Ito
1
@ Tsuyoshi: Ist GI nach Ihrer Definition von in C = P ? Ich denke , mindestens GI F P C = P . C=PC=PFPC=P
Mike Chen
1
C=PC=P
1
C=PC=P
6

Hier ist eine kleine Variation der ursprünglichen Frage. LassenÖ ein Orakel sein, das bei der Eingabe (f1,f2) gibt 1 aus, wenn CNF f1hat mehr Lösungen als CNFf2.

Angesichts dieses Orakels bauen wir eine Poly-Time-Maschine M Dies kann das # P-vollständige Problem der Berechnung der Anzahl von Lösungen für einen gegebenen CNF lösen φ. Beachten Sie dasφ kann eine exponentielle Anzahl von Lösungen haben.

M works as follows: It generates formulas with known number of solutions, and using binary search and by asking at most polynomial queries to O, it finds a formulas φi which has the same number of solutions as φ. It finally outputs the number of solutions just found.

This shows that MO has complexity #P.

M.S. Dousti
quelle
Forgive my ignorance, but how do you generate a formula with a pre-specified number of solutions?
Giorgio Camerani
3
Let M be a (k+1)-bit number M=i=0kmi2i, and let S be the indices i where mi=1. Make a formula with variables x0,,xk and y0,,yk. For each iS, let Fi be the following subformula: "All of {x0,,xki} are true AND among {y0,,yk} only yi is true." Fi has 2i satisfying assignments (the variables {xki+1,,xk} are free), and for ij, the satisfying assignments of Fi and Fj are disjoint due to the y variables. The formula iSFi has M satisfying assignments.
mikero
Note that it is PP-complete to decide whether, given two CNF formulas f_1 and f_2, f_1 has more satisfying assignments than f_2 or not.
Tsuyoshi Ito
@mikero: Ah, stupid me! I should have imagined that. Thanks for your illuminating explanation.
Giorgio Camerani
5

It seems like it's atleast NP-hard as one can easily construct a SAT formula with just one solution. Then by the Valiant-Vazirani theorem, there's a probabilistic reduction from every SAT formula to a set of Unique-SAT problems (determining whether a formula has a unique solution) and comparing those Unique-SAT problems with the constructed SAT formula with just one solution enables you to determine the satisfiability of the SAT formula under consideration.

Opt
quelle
To be precise, the first sentence should mention “under randomized reducibility” (although you mention it in the second sentence).
Tsuyoshi Ito