Überprüfen Formeln mit zwei quantifiers (

15

SAT-Löser bieten eine leistungsstarke Möglichkeit, die Gültigkeit einer Booleschen Formel mit einem Quantifizierer zu überprüfen.

Zum Beispiel, um die Gültigkeit von zu überprüfen . φ ( x ) können wir einen SAT-Löser verwenden, um zu bestimmen, ob φ ( x ) erfüllt werden kann. Überprüfung der Gültigkeit von x . φ ( x ) können wir einen SAT-Löser verwenden, um zu bestimmen, ob ¬ φ ( x ) erfüllt werden kann. (Hier ist x = ( x 1 , , x n ) ein n -Vektor von booleschen Variablen und φx.φ(x)φ(x)x.φ(x)¬φ(x)x=(x1,,xn)nφ ist eine Boolesche Formel.)

QBF-Solver dienen dazu, die Gültigkeit einer Booleschen Formel mit einer beliebigen Anzahl von Quantifizierern zu überprüfen.

Was ist, wenn wir eine Formel mit zwei Quantifizierern haben? Gibt es effiziente Algorithmen zur Überprüfung der Gültigkeit, die besser sind, als nur generische Algorithmen für QBF zu verwenden? gesagt habe ich eine Formel der Form x . y . ψ ( x , y ) (oder x . y . ψ ( x , y ) ) und möchten dessen Gültigkeit überprüfen. Gibt es dafür gute Algorithmen? Edit 4/8: Ich habe gelernt, dass diese Klasse von Formeln manchmal als 2QBF bezeichnet wird, daher suche ich nach guten Algorithmen für 2QBF.x.y.ψ(x,y)x.y.ψ(x,y)

Spezialisierung weiter: In meinem speziellen Fall habe ich eine Formel der Form dessen Gültigkeit ich überprüfen möchte, wobei f , g Funktionen sind, die eine k- Bit-Ausgabe erzeugen . Gibt es Algorithmen, mit denen die Gültigkeit dieser bestimmten Formelsorte effizienter überprüft werden kann als mit generischen Algorithmen für QBF?x.y.f(x)=g(y)f,gk

PS: Ich frage nicht nach der Worst-Case-Härte in der Komplexitätstheorie. Ich frage nach praktisch nützlichen Algorithmen (so wie moderne SAT-Löser bei vielen Problemen praktisch nützlich sind, obwohl SAT NP-vollständig ist).

DW
quelle
4
ist nichtwesentlichen äquivalent zux y ψ ( x , y ) . xy ψ(x,y)xy ψ(x,y)
Huck Bennett
2
Ich denke, das OP bedeutet dies informell, da beide für SAT-Löser schwierig sind und eine Lösung für beide interessant wäre
Suresh Venkat,
1
@HuckBennett, ich denke die beiden haben gleiche Härte. (Beweis: ist gültig, wenn ¬ x . y . ¬ ψ ( x , y ) ist. Wenn wir also eine Möglichkeit haben, die Gültigkeit von Formeln der Form test zu testen x . y . ψ ( x , y ) können wir auch die Gültigkeit der Formeln x . y testenx.y.ψ(x,y)¬x.y.¬ψ(x,y)x.y.ψ(x,y) durch Lassen von ψ ( x , y ) = ¬ ψ ( x , y ) und Testen der Gültigkeit vonx . y . ψ ( x , y ) .) Aber auf jeden Fall würde ich mich für Algorithmen in beiden Fällen interessieren. x.y.ψ(x,y)ψ(x,y)=¬ψ(x,y)x.y.ψ(x,y)
DW
6
@DW, nicht unbedingt, zB SAT und TAUT haben vermutlich nicht die gleiche Komplexität.
Kaveh
4
@chazisop: Ich denke, das OP fragt nach -SAT-Algorithmen / Solvern, nicht nach allgemeinen QBF-Solvern. Es gibt jedoch viele QBF-Löser. Siehe die Registerkarte "Löser" bei qbflib.orgΠ2/Σ2
Huck Bennett

Antworten:

22

Wenn ich ganz offen für mich werben darf, haben wir im letzten Jahr einen Artikel über diesen abstraktionsbasierten Algorithmus für 2QBF geschrieben . Ich habe eine Implementierung für qdimacs, die ich bereitstellen kann, wenn Sie dies wünschen, aber aus meiner Erfahrung heraus kann es von großem Vorteil sein, den Algorithmus auf ein bestimmtes Problem zu spezialisieren. Es gibt auch eine ältere Veröffentlichung Eine vergleichende Studie zu 2QBF-Algorithmen , in der auch relativ leicht implementierbare Algorithmen vorgestellt werden.

Mikolas
quelle
Genial! Danke, Mikolas, das ist genau das, worauf ich gehofft habe.
DW
2
Hi @ DW froh, dass ich helfen konnte. Hoffentlich finden Sie einige davon nützlich. QBF ist ein ganz anderes Biest als SAT, deshalb muss man ein bisschen vorsichtig sein, weil die Dinge sehr leicht in die Luft jagen können :-). Sie können mir gerne eine E-Mail schreiben, wenn Sie weitere Fragen zu unserer Arbeit haben.
Mikolas
7

Ich habe zwei Artikel dazu gelesen, einen speziell zu 2QBF. Die Papiere sind die folgenden:

Inkrementelle Determinierung , Markus N. Rabe und Sanjit Seshia, Theorie und Anwendung von Erfüllbarkeitstests (SAT 2016).

Sie haben ihren Algorithmus in einem Tool namens CADET implementiert . Die Grundidee besteht darin, der Formel schrittweise neue Bedingungen hinzuzufügen, bis Bedingungen eine eindeutige Skolem-Funktion beschreiben oder deren Abwesenheit bestätigt wird.

Zweitens Incremental QBF Solving , Florian Lonsing und Uwe Egly.

Implementiert in einem Tool namens DepQBF . Die Anzahl der Quantifiziererwechsel wird nicht eingeschränkt. Es beginnt mit der Annahme, dass wir eng verwandte qbf-Formeln haben. Es basiert auf inkrementellem Lösen und wirft nicht die Klauseln aus, die beim letzten Lösen gelernt wurden. Es fügt der aktuellen Formel Klauseln und Cubes hinzu und stoppt, wenn Klauseln oder Cubes leer sind und unsat oder sat darstellen.

Bearbeiten : Nur um zu sehen, wie gut diese Ansätze für 2QBF-Benchmarks funktionieren. Bitte sehen Sie sich die Ergebnisse des QBFEVal-2018 für die Ergebnisse des jährlichen QBF-Wettbewerbs QBFEVAL an . Im Jahr 2019 gab es keine 2QBF-Spur.

Auf der 2QBF-Strecke QBFEVAL-2018 war DepQBF der Sieger , CADET der Zweite im Rennen.

Diese beiden Ansätze funktionieren also in der Praxis sehr gut (zumindest bei den QBFEVAL-Benchmarks).

Pushpa
quelle
4

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

Samuel Schlesinger
quelle
2
ϕϕ
Es ist ganz nett, es gibt eine Analogie zum gegnerischen maschinellen Lernen, wenn man blinzelt, und tatsächlich funktioniert es für jedes ergänzte Gitter, in dem man eine Art Löser hat
Samuel Schlesinger,