La complexité de vérifier si deux CNF ont le même nombre de solutions

14

Étant donné deux CNF, s'ils ont le même nombre d'affectations pour les rendre vraies, répondez "Oui", sinon répondez "Non".

Il est facile de voir que c'est dans , car si nous connaissons le nombre exact de solutions à ces deux CNF, nous les campons simplement et répondons "Oui" ou "Non".P#P

Quelle est la complexité de ce problème?

Mike Chen
la source

Réponses:

14

Le problème est coNP -hard; vous pouvez facilement réduire le problème UNSAT à ce problème.

Une caractérisation plus précise est que le problème est C = P -complet. En fait, une définition de la classe C = P est que c'est la classe de problèmes qui sont plusieurs fois polynomiaux réductibles à ce problème même (généralement cette définition est exprimée en termes de fonctions GapP ). Mais comme cela ne dit pas grand-chose, permettez-moi de définir cette classe d'une autre manière.

Soit C = P la classe de problèmes qui sont plusieurs fois polynomiaux et réductibles au problème suivant: étant donné un circuit booléen φ et un entier K (en binaire), décider si le nombre d'assignations satisfaisantes de φ est égal à K . Par une réduction standard qui montre l'exhaustivité # P de # 3SAT, nous pouvons restreindre φ à une formule 3CNF sans affecter la classe. La classe C = P contient une classe appelée US , qui contient à la fois UP et coNP.

Avec cette définition, votre problème est C = P-complet. En fait, la dureté C = P est facile à voir d'après la définition de la classe C = P (qui utilise des formules 3CNF).

Pour prouver l'appartenance à C = P, supposons que nous devons décider si deux formules CNF données φ 1 et φ 2 ont le même nombre d'assignations satisfaisantes ou non. Sans perte de généralité, nous pouvons supposer que les deux formules ont le même nombre de variables, disons n . Construire un circuit booléen φ qui prend n +1 bits en entrée pour que le nombre d'assignations satisfaisantes de φ soit égal à c 1 + (2 n - c 2 ), où c 1 et c 2être le nombre d'assignations satisfaisantes de φ 1 et φ 2 , respectivement. Alors le nombre d'assignations satisfaisantes de φ est égal à 2 n si et seulement si c 1 = c 2 .

Tsuyoshi Ito
la source
@Kaveh: Pouvez-vous élaborer?
Tsuyoshi Ito
1
@Kaveh: Non, ce n'est pas ce que nous voulons. Nous voulons décider si φ_1 et φ_2 ont le même nombre d'assignations satisfaisantes, pas nécessairement le même ensemble d'assignations satisfaisantes.
Tsuyoshi Ito
1
@Tsuyoshi: D'après votre définition de , l'IG est-il dans C = P ? Je pense que au moins GI F P C = P . C=PC=PFPC=P
Mike Chen
1
@Mike: Merci pour le commentaire intéressant. Parlez -vous du résultat de Graph Isomorphism ∈ SPP (Arvind et Kurur 2006 dx.doi.org/10.1016/j.ic.2006.02.002 )? Si oui, vous avez raison; SPP est contenu dans , de sorte que le graphique isomorphisme ∈ C = P . C=PC=P
Tsuyoshi Ito
1
@Mike: J'ai appris qu'avant le résultat GraphIso∈SPP, on savait que GraphIso ∈ LWPP : Köbler, Schöning et Torán 1992 . Depuis LWPP ⊆ WPP , on n'a pas besoin du résultat plus fort par Arvind et Kurur dire que GraphIso∈ C = P . C=PC=P
Tsuyoshi Ito
6

Voici une petite variation sur la question d'origine. Soit un oracle qui, en entrée ( f 1 , f 2 ) sort 1 si CNF f 1 a plus de solutions que CNF f 2 .O(f1,f2)f1f2

Compte tenu de cet oracle, nous construisons une machine poly-temps qui peut résoudre le problème # P-complet du calcul du nombre de solutions à un CNF φ donné . Notez que φ peut avoir un nombre exponentiel de solutions.Mφφ

fonctionne comme suit: il génère des formules avec un nombre connu de solutions, et en utilisant la recherche binaire et en posant tout au plus des requêtes polynomiales à O , il trouve une formule φ i qui ale mêmenombre de solutions que φ . Il affiche enfin le nombre de solutions qui viennent d'être trouvées.MOφiφ

Cela montre que a la complexité #P.MO

MS Dousti
la source
Pardonnez mon ignorance, mais comment générer une formule avec un nombre de solutions prédéfini?
Giorgio Camerani
3
Soit M un nombre (k + 1) -bit , et soit S les indices im i = 1 . Faites une formule avec les variables x 0 , , x k et y 0 , , y k . Pour chaque i S , soit F i les sous-formules suivantes: "Tous de { x 0 , ,M=i=0kmi2iSimi=1x0,,xky0,,ykiSFi sont vraies ET parmi { y 0 , , y k } seulement y i est vrai. " F i a 2 i affectations satisfaisantes (les variables { x k - i + 1 , , x k } sont libres ), et pour i j , les affectations satisfaisantes de F i et F j sont disjointes en raison de y{x0,,xki}{y0,,yk}yiFi2i{xki+1,,xk}ijFiFjyvariables. La formule a M affectations satisfaisantes. iSFiM
mikero
Notez qu'il est PP-complet de décider si, étant donné deux formules CNF f_1 et f_2, f_1 a des affectations plus satisfaisantes que f_2 ou non.
Tsuyoshi Ito
@mikero: Ah, stupide moi! J'aurais dû imaginer ça. Merci pour votre explication éclairante.
Giorgio Camerani
5

Il semble que c'est au moins NP-difficile car on peut facilement construire une formule SAT avec une seule solution. Ensuite, selon le théorème de Valiant-Vazirani, il y a une réduction probabiliste de chaque formule SAT à un ensemble de problèmes Unique-SAT (déterminer si une formule a une solution unique) et comparer ces problèmes Unique-SAT avec la formule SAT construite avec une seule solution vous permet de déterminer la satisfiabilité de la formule SAT considérée.

Opter
la source
Pour être précis, la première phrase devrait mentionner «sous réductibilité aléatoire» (bien que vous le mentionniez dans la deuxième phrase).
Tsuyoshi Ito