Solutions de comptage des formules Monotone-2CNF

13

Une formule Monotone-2CNF est une formule CNF où chaque clause est composée d'exactement 2 littéraux positifs.

Maintenant, j'ai une formule Monotone-2CNF F. Soit S l'ensemble des affectations satisfaisantes de FJ'ai également un oracle qui est capable de donner les informations suivantes:O

  1. La cardinalité de l'ensemble (ie le nombre de solutions de ).SF
  2. Étant donné une variable : x
    • Le nombre de solutions dans contenant le littéral positif .Sx
    • Le nombre de solutions dans contenant le littéral négatif .S¬x
  3. Étant donné 2 variables et : x1x2
    • Le nombre de solutions dans contenant .Sx1x2
    • Le nombre de solutions dans contenant .Sx1¬x2
    • Le nombre de solutions dans contenant .S¬x1x2
    • Le nombre de solutions dans contenant .S¬x1¬x2

A noter que l'oracle est "limité": il ne fonctionne que surOF , il ne peut pas être utilisé sur une formule .FF


Question:

Étant donné 3 variables , , , il est possible de déterminer le nombre de solutions dans contenant en temps polynomial, en utilisantx1x2x3S¬x1¬x2¬x3F et les informations fournies par ?O

Remarque:

Vous pouvez remplacer dans la question par n'importe quelle autre des 8 combinaisons possibles de x 1 , x 2 , x 3 . Le problème resterait le même.¬x1¬x2¬x3x1x2x3


Fait empirique:

Je suis tombé sur le fait empirique suivant il y a une semaine. Soit l'ensemble des solutions contenant ¬ x 1¬ x 2 , et soit S ¬ x 1¬ x 2x 3S l'ensemble des solutions contenant ¬ x 1¬ x 2x 3 . Maintenant, il semble que si la condition CS¬x1¬x2S¬X1¬X2S¬X1¬X2X3S¬X1¬X2X3Cdétient, cette relation est également valable:

ϕ=1,618033 ...est le nombre d'or. La conditionCsemble être la suivante:"x1,x2,x3sont mentionnés enFpresqueautantde fois".|S¬X1¬X2||S¬X1¬X2X3|ϕ

ϕ=1,618033 ...CX1X2X3F

Giorgio Camerani
la source
1
Lorsque vous dites «solutions contenant le littéral négatif -x» - voulez-vous dire «solutions avec x = 0»?
Noam
@Noam: Oui, exactement.
Giorgio Camerani
1
Observation facile: comme le nombre de questions possibles sur l'oracle O est polynomialement limité, sans perte de généralité, vous pouvez interroger toutes les questions au début d'un algorithme. Par conséquent, nous pouvons remplacer l'oracle par une entrée supplémentaire, avec la promesse que ces chiffres sont corrects. Je pense que cette formulation de promesse est légèrement plus simple que de la considérer comme un oracle.
Tsuyoshi Ito du
@Tsuyoshi: Oui, je suis d'accord avec vous.
Giorgio Camerani,
1
@vzn: La version de décision de 2CNF est en . Ceci est la version de comptage du cas monotone (étant donné une formule F 2CNF monotone , vous devez calculer le nombre d' affectations satisfaisantes qu'il a). PF
Giorgio Camerani

Réponses:

5

Pour utiliser ce fait empirique, vous voulez vraiment savoir si des nombres approximatifs peuvent donner à d'autres des nombres approximatifs. Mais pour le cas exact, je pense qu'il peut y avoir un moyen simple de montrer que c'est difficile. Voici un croquis.

Notez d'abord que les affectations satisfaisantes correspondent à des ensembles indépendants dans un graphique. Je vais utiliser l'expression "S-I de projections (G)" pour décrire le mappage de fonction au nombre d'ensembles indépendants I avec I S = T . Les "k-projections" sont les projections S pour tous les sous-ensembles S de V avec | S | = k .TSjeS=T|S|=k

Aperçu de la preuve:

  1. Si 2 projections donnent 3 projections, elles donnent également k projections en polytemps pour chaque k.
  2. Si 2 projections donnent 4 projections, alors le nombre d'ensembles indépendants d'un graphe est en FP, donc FP = # P.

(1) Soit tel que les projections (k-1) donnent k-projections. Étant donné un graphe, les k-projections, et x 1 , . . . , X k , v G , on calcule les projections sur x 1 , . . . , x k , v .k3x1,...,xk,vGx1,...,xk,v

Définissez le graphique en attachant un nouveau sommet à v. Cela peut être considéré comme une pondération v. Les projections (k-1) de G peuvent être calculées parce que nous connaissons les k-projections de G. k-projections de G . Et cela donne x 1 , . . . , x k , v- projections de G.GGGx1,...,xk,v

(2) Etant donné un graphe, l' ordre des bords l' et définir G k pour avoir des bords e 1 , . . . , e k . Les 2 projections de G k + 1 peuvent être calculées à partir des 4 projections de G k . Le nombre d'ensembles indépendants dans G 0 est 2 | G | . Itérativement, les 4 projections de G peuvent être calculées en temps polynomial.e1,...,emGke1,...,ekGk+1GkG02|G|

Colin McQuillan
la source
Je préférerais ne pas utiliser ce fait empirique! Je préfère bien sûr le décompte exact. Mais accessoirement, j'ai remarqué ce fait en essayant de déterminer le nombre exact.
Giorgio Camerani du
Merci pour votre réponse. Oui, c'est difficile: comme vous le dites, une réponse positive à cette question impliquerait #P = FP.
Giorgio Camerani du
7

Quelques observations, pas une réponse.

Suite à la note à la question, toute combinaison de 3 littéraux peut être exprimée en termes de toute autre combinaison de littéraux sur les mêmes variables, ainsi qu'un petit nombre de termes que l'oracle peut fournir. Cela découle de l'examen du diagramme de Venn de 3 ensembles qui se croisent et de l'expression de chacune des 8 régions en fonction des autres régions. Notez que cela ne nécessite pas que la formule soit monotone ou 2CNF.

Il est également clair que le nombre de solutions satisfaisant tout conjoncture à 3 littéraux peut être exprimé comme la somme de termes, chacun étant soit 0 soit 1, exprimant une affectation particulière à toutes les variables. Chacun de ceux-ci peut être évalué en temps linéaire, mais il y a de manière exponentielle de nombreux termes à évaluer, donc cela ne satisfait pas aux exigences.2n3

Par conséquent, la question est vraiment de savoir s'il est possible d'exploiter la propriété d'être 2CNF monotone pour compresser cette expression de taille exponentielle en taille polynomiale.

J'ai essayé de regarder une question plus simple, en limitant l'oracle à une chaîne de conseils avec le nombre de solutions, lorsque le nombre de combinaisons littérales simples ou par paires n'est pas disponible. Je ne vois aucun moyen d'exploiter la connaissance du nombre de solutions pour obtenir un calcul rapide du nombre de solutions par rapport à n'importe quel littéral.

Y a-t-il quelque chose au sujet du 2CNF monotone qui permettrait d' obtenir rapidement le nombre de solutions dans contenant x 1 , si l'on savait | S | ?Sx1|S|

András Salamon
la source
2
En effet, les informations fournies doivent être suffisamment puissantes pour vaincre la dureté sous-jacente. Il est connu qu'il n'y a pas de fpras pour les solutions au monotone 2-SAT à moins que NP = RP.
mhum
@Andras: Qu'est - ce ici est appelé « oracle » est juste une sorte de dictionnaire . Il semble que le cas , que le dictionnaire D peut être construit progressivement, en mettant à jour chaque fois une nouvelle clause est ajoutée à F . Le problème est que, pour mettre correctement à jour D , je dois répondre à cette question. DDFD
Giorgio Camerani,
@Walter: Oui, je comprends cela. Mon point est que même un cas beaucoup plus simple n'est pas clair: passer du nombre total de solutions au nombre de solutions contenant un seul littéral.
András Salamon
1
Il se pourrait que votre formule soit essentiellement linéaire: des ensembles indépendants dans un chemin suivent la séquence de Fibonacci. Une façon de voir cela est que la fonction de partition (1 1; 1 0) a phi comme valeur propre.
Colin McQuillan
3
J'ai trouvé des diapositives discutant d'un résultat plus rigoureux: isid.ac.in/~antar/Talks/Counting-Hard-Core_KBS_slides.pdf (voir page 11)
Colin McQuillan