Vereinigung gegen SAT-Löser

10

Ich habe auf Wikipedia gelesen, dass die Vereinigung ein Prozess zur Lösung des Erfüllbarkeitsproblems ist.

Gleichzeitig weiß ich, dass solche Löser "SAT-Löser" oder "SMT-Löser" genannt werden. Sind sie also unterschiedliche Namen für dasselbe?

Wenn Sie sagen, dass sie unterschiedlich sind, weisen Sie bitte auf einen Fehler in meiner Behandlung hin.

Val
quelle
Informatik bezieht sich oft auf das "Erfüllbarkeitsproblem", aber das ist tatsächlich ein Sonderfall des allgemeinen Problems [auf das im Wikipedia-Artikel über die Vereinigung verwiesen wird], das möglicherweise komplexere Klauseln wie "es gibt" und "für alle" enthält, außer lediglich boolesche Variablen. In CS kann die Bezugnahme auf das "Erfüllbarkeitsproblem" wirklich eine Abkürzung für das propositionale oder boolesche Erfüllbarkeitsproblem sein , abgekürzt SAT. Der Vereinigungsprozess in SAT heißt Resolution
vzn

Antworten:

12

SAT-Löser lösen das Problem der Booleschen Zufriedenheit . Dies ist "das Problem zu bestimmen, ob die Variablen einer gegebenen Booleschen Formel so zugewiesen werden können, dass die Formel als WAHR ausgewertet wird".

Ein Beispiel ist die Zuordnung von Wahrheitswerten zu den Variablen so dass ist wahr. Ein SAT-Löser könnte eine Lösung wie , , .( a b C ) ( ¬ a ¬ b C ) ( a ¬ b ¬ c ) ( ¬ a B ¬ c )a,b,c(abc)(¬a¬bc)(a¬b¬c)(¬ab¬c)a=trueb=truec=true

SMT-Löser lösen ein allgemeineres Problem, nämlich die Zufriedenheitsmodul-Theorien . Dies ist "ein Entscheidungsproblem für logische Formeln in Bezug auf Kombinationen von Hintergrundtheorien, die in der klassischen Logik erster Ordnung mit Gleichheit ausgedrückt werden". Diese Theorien könnten "die Theorie der reellen Zahlen, die Theorie der ganzen Zahlen und die Theorien verschiedener Datenstrukturen wie Listen, Arrays, Bitvektoren usw." umfassen.

In einem Beispiel mit gegebenen typisierten Variablen und und wird gefragt, ob erfüllt werden kann . Ein SMT-Löser würde mit Ja antworten, mit Lösung , , und .y : i n t f : i n t i n t f ( x + 2 ) f ( y - 1 ) x = ( y - 4 ) xx:inty:intf:intintf(x+2)f(y1)x=(y4)x=2y=2f(0)=1f(1)=3

Die Vereinigung ist eine spezielle Technik, die zwei Begriffe verwendet und eine Substitution findet, die die Begriffe gleich macht. Wenn beispielsweise die Begriffe und , würde die Vereinheitlichung ersetzen . Die Vereinheitlichung wird wahrscheinlich in SMT-Lösern verwendet.book(x,"Fishing",2010){ x D. Smith , y "Fischen" }book(D.~Smith,y,2010){xD. Smith,y"Fishing"}

Dave Clarke
quelle
Alle Wörter sind im Satz "Vereinheitlichung wird wahrscheinlich irgendwo SMT-Löser (und vielleicht in SAT-Lösern) verwendet" bekannt, aber ich verstehe es nicht. Sie finden auch eine solche Definition von SMT, dass es schwer zu verstehen ist, ob SAT ein Sonderfall davon ist.
Val
SAT befasst sich mit Aussagenlogik. Die Logik erster Ordnung, auf der SMT basiert, ist allgemeiner.
Dave Clarke