Vérification des formules avec deux quantificateurs (

15

Les solveurs SAT offrent un moyen puissant de vérifier la validité d'une formule booléenne avec un quantificateur.

Par exemple, pour vérifier la validité de , nous pouvons utiliser un solveur SAT pour déterminer si φ ( x ) est satisfaisable. Pour vérifier la validité de x . φ ( x ) , nous pouvons utiliser un solveur SAT pour déterminer si ¬ φ ( x ) est satisfaisable. (Ici x = ( x 1 , , x n ) est un vecteur n de variables booléennes, et φx.φ(x)φ(x)x.φ(x)¬φ(x)x=(x1,,xn)nφ est une formule booléenne.)

Les solveurs QBF sont conçus pour vérifier la validité d'une formule booléenne avec un nombre arbitraire de quantificateurs.

Et si nous avons une formule avec deux quantificateurs? Existe-t-il des algorithmes efficaces pour vérifier la validité: ceux qui sont meilleurs que de simplement utiliser des algorithmes génériques pour QBF? Pour être plus précis, j'ai une formule de la forme (ou x . y . ψ ( x , y ) ), et souhaitez vérifier sa validité. Existe-t-il de bons algorithmes pour cela? Edit 4/8: J'ai appris que cette classe de formules est parfois connue sous le nom de 2QBF, donc je recherche de bons algorithmes pour 2QBF.x.y.ψ(X,y)x.y.ψ(X,y)

Spécialisation supplémentaire: dans mon cas particulier, j'ai une formule de la forme dont je veux vérifier la validité, où f , g sont des fonctions qui produisent une sortie à k bits. Existe-t-il des algorithmes pour vérifier la validité de ce type particulier de formule, plus efficacement que les algorithmes génériques pour QBF?x.y.f(x)=g(y)f,gk

PS Je ne demande pas la dureté du pire des cas, en théorie de la complexité. Je pose des questions sur les algorithmes pratiquement utiles (tout comme les solveurs SAT modernes sont pratiquement utiles sur de nombreux problèmes, même si SAT est NP-complet).

DW
la source
4
n'est pas essentiellement équivalent àx y ψ ( x , y ) . xy ψ(x,y)xy ψ(x,y)
Huck Bennett
2
Je pense que l'OP signifie cela de manière informelle, en ce sens qu'ils sont tous les deux difficiles pour les solveurs SAT et qu'une solution à l'un ou l'autre serait intéressante
Suresh Venkat
1
@HuckBennett, je pense que les deux ont une dureté équivalente. (Preuve: est valide si ¬ x . y . ¬ ψ ( x , y ) l' est. Par conséquent, si nous avons un moyen de tester la validité des formules de la forme x . y . ψ ( x , y ) , nous pouvons également tester la validité des formules x . yx.y.ψ(x,y)¬x.y.¬ψ(x,y)x.y.ψ(x,y) en laissant ψ ( x , y ) = ¬ ψ ( x , y ) et en testant la validité dex . y . ψ ( x , y ) .) Mais de toute façon, je serais intéressé par les algorithmes pour les deux cas. x.y.ψ(x,y)ψ(x,y)=¬ψ(x,y)x.y.ψ(x,y)
DW
6
@DW, pas nécessairement, par exemple SAT et TAUT ne sont pas considérés comme ayant la même complexité.
Kaveh
4
@chazisop: Je pense que l'OP demande des algorithmes / solveurs -SAT, pas des solveurs QBF généraux. Cependant, de nombreux solveurs QBF existent. Voir l'onglet "solveurs" sur qbflib.orgΠ2/Σ2
Huck Bennett

Réponses:

22

Si vous me le permettez, de manière assez flagrante, nous avons écrit un article sur l' algorithme basé sur l'abstraction pour l' an dernier pour 2QBF . J'ai une implémentation pour qdimacs, que je peux fournir si vous le souhaitez mais d'après mon expérience, on peut grandement bénéficier de la spécialisation de l'algorithme pour un problème particulier. Il existe également un article plus ancien intitulé A Comparative Study of 2QBF Algorithms , qui présente également des algorithmes assez facilement implémentables.

Mikolas
la source
Impressionnant! Merci, Mikolas, c'est exactement le genre de chose que j'espérais.
DW
2
Salut @DW heureux d'avoir pu aider. J'espère que vous en trouverez une partie utile. QBF est une bête assez différente de celle de SAT, il faut donc être un peu prudent car les choses peuvent exploser très facilement :-). N'hésitez pas à m'écrire un e-mail si vous avez des questions plus détaillées sur notre travail.
Mikolas
7

J'ai lu deux articles à ce sujet, un spécifiquement lié au 2QBF. Les articles sont les suivants:

Détermination incrémentale , Markus N. Rabe et Sanjit Seshia, Théorie et applications des tests de satisfaction (SAT 2016).

Ils ont implémenté leur algorithme dans un outil nommé CADET . L'idée de base est d'ajouter progressivement de nouvelles contraintes à la formule jusqu'à ce que les contraintes décrivent une fonction Skolem unique ou jusqu'à ce que l'absence soit confirmée.

Le deuxième est la résolution incrémentielle du QBF , Florian Lonsing et Uwe Egly.

Implémenté dans un outil nommé DepQBF . Il n'impose aucune contrainte sur le nombre d'alternances quantifiantes. Cela commence par l'hypothèse que nous avons des formules qbf étroitement liées. Il est basé sur une résolution incrémentielle et ne renvoie pas les clauses apprises lors de la dernière résolution. Il ajoute des clauses et des cubes à la formule actuelle et s'arrête si les clauses ou les cubes sont vides, représentant insat ou sat.

Edit : Juste pour une perspective à quel point ces approches fonctionnent pour les repères 2QBF. Veuillez consulter les résultats de QBFEVal-2018 pour les résultats du concours annuel QBF QBFEVAL . En 2019, il n'y avait pas de piste 2QBF.

En 2QBF Track QBFEVAL-2018 DepQBF a été le vainqueur , CADET était le deuxième de la course.

Ces deux approches fonctionnent donc très bien en pratique (au moins sur les benchmarks QBFEVAL).

Pushpa
la source
4

xyϕDaD¬ϕ[a/x]bBaϕ[b/y]ϕ

Samuel Schlesinger
la source
2
ϕϕ
C'est assez bien, il y a une analogie avec l'apprentissage automatique contradictoire si vous plissez les yeux et en effet cela fonctionne pour tout réseau complémenté où vous avez une sorte de solveur
Samuel Schlesinger