Dans une formule CNF opposée en lecture deux, chaque variable apparaît deux fois, une fois positive et une fois négative.
Je m'intéresse au problème , qui consiste à calculer la parité du nombre d'assignations satisfaisantes d'une formule CNF opposée lue deux fois.
Je n'ai pas pu trouver de référence sur la complexité d'un tel problème. Le plus proche que j'ai pu trouver est que la version de comptage est # P -complète (voir la section 6.3 de cet article ).
Merci d'avance pour votre aide.
Mise à jour du 10 avril 2016
- Dans cet article , le problème est montré comme ⊕ P- complet, cependant la formule produite par la réduction de 3 SAT n'est pas en CNF, et dès que vous essayez de le reconvertir en CNF, vous obtenez un formule à lire trois fois.
- La version monotone est présentée comme ⊕ P- complète dans cet article . Dans un tel article, ⊕ Rtw-Opp-CNF est rapidement mentionné à la fin de la section 4: Valiant dit qu'il est dégénéré. Il n'est pas clair pour moi ce que signifie exactement être dégénéré, ni ce que cela implique en termes de dureté.
Mise à jour du 12 avril 2016
Il serait également très intéressant de savoir si quelqu'un a déjà étudié la complexité du problème . Étant donné une formule CNF opposée lue deux fois, un tel problème demande de calculer la différence entre le nombre d'assignations satisfaisantes ayant un nombre impair de variables définies sur vrai et le nombre d'assignations satisfaisantes ayant un nombre pair de variables définies sur vrai. Je n'ai trouvé aucune littérature à ce sujet.
Mise à jour du 29 mai 2016
Comme l'a souligné Emil Jeřábek dans son commentaire, il n'est pas vrai que Valiant ait déclaré que le problème est dégénéré. Il a seulement dit qu'une version plus restreinte de ce problème, ⊕ Pl-Rtw-Opp-3CNF , est dégénérée. En attendant, je ne sais toujours pas ce que signifie exactement dégénéré, mais au moins maintenant, il semble clair que c'est synonyme de manque de puissance expressive.
la source
Réponses:
Il s'avère que chaque formule opposée à lecture double a un nombre pair d'affectations satisfaisantes. En voici une belle preuve, même si l'on pourrait probablement éliminer la terminologie de la théorie des graphes.
Soit une formule CNF de lecture opposée. Sans perte de généralité, aucune clause ne contient à la fois une variable et sa négation.ϕ
Considérons le graphe dont l'ensemble de sommets est les clauses de ϕ , et pour chaque variable x , nous ajoutons un bord (non orienté) qui est incident sur les deux clauses contenant x . Notre hypothèse WLOG en ϕ dit que ce graphique n'a pas d'auto-boucles. De plus, pensez à étiqueter chaque arête par la variable qui la définit; de cette façon, nous pouvons distinguer les bords parallèles.G ϕ x x ϕ
Une orientation de est un graphe orienté dont les arêtes sont formées par l' affectation d' une direction à chaque bord dans G . Appelez une orientation de G admissible si chaque sommet de G a une arête sortante. Il est facile de voir que les affectations satisfaisant à φ sont en correspondance biunivoque avec les orientations admissibles de G .G G G G ϕ G
Maintenant, je prétends que le nombre d'orientations admissibles de est pair. L'argument est "par involution": je construis une carte Φ avec les propriétés suivantes:G Φ
Une fois que ceux - ci sont établis, nous pouvons observer que les orbites de ont une taille 2 et partitionner les orientations admissibles de G . Il s'ensuit que le nombre d'orientations admissibles est pair.Φ G
Pour définir , soit → G une orientation admissible, et envisagez de casser → G en ses composants fortement connectés. Φ envoie alors → G à l'orientation formée en inversant toutes les arêtes au sein des composants fortement connectés. Les propriétés sont ensuite directement vérifiées:Φ G⃗ G⃗ Φ G⃗
la source
Je ne sais pas si mon idée est compréhensible, je vais donc expliquer sur l'exemple de Giorgio:
Je dois d'abord changer cela sur le formulaire DNF:
Cela devrait donner la même réponse. Et peu importe si je calcule le nombre de solutions modulo 2 pour cela:
ou pour cela:
Je choisis donc le second. J'ai des implicants:
Maintenant, je construis un système d'équations:
la source
1) a toutes les variables,
2) chaque variable se produit exactement une (si la variable se produit deux fois, alors nous avons positif et négatif dans un implicant, donc cela donnera 0).
la source