www.wikidata.de-de.nina.az
Das Erfullbarkeitsproblem der Aussagenlogik SAT von englisch satisfiability Erfullbarkeit ist ein Entscheidungsproblem der theoretischen Informatik Es beschaftigt sich mit der Frage ob eine gegebene aussagenlogische Formel F displaystyle F erfullbar ist Mit anderen Worten Existiert eine Belegung der Variablen von F displaystyle F mit den Werten wahr oder falsch sodass F displaystyle F zu wahr ausgewertet wird SAT gehort zur Komplexitatsklasse NP der Probleme die von einer nichtdeterministischen Turingmaschine in polynomieller Zeit gelost werden konnen Ausserdem war SAT das erste Problem fur das NP Vollstandigkeit nachgewiesen wurde Satz von Cook Damit kann jedes Problem aus NP in polynomieller Zeit auf SAT zuruckgefuhrt werden Polynomialzeitreduktion NP vollstandige Probleme stellen also eine Art obere Schranke fur die Schwierigkeit von Problemen in NP dar Eine deterministische Turingmaschine etwa ein konventioneller Computer kann SAT in exponentieller Zeit entscheiden zum Beispiel durch das Aufstellen einer Wahrheitstabelle Es ist kein effizienter Algorithmus fur SAT bekannt und es wird allgemein vermutet dass ein solcher Polynomialzeitalgorithmus nicht existiert Die Frage ob SAT in polynomieller Zeit gelost werden kann ist aquivalent zum P NP Problem einem der bekanntesten offenen Probleme der theoretischen InformatikEin Grossteil der Forschung beschaftigt sich mit der Entwicklung moglichst effizienter Verfahren zur Losung von SAT in der Praxis sogenannter SAT Solver Moderne SAT Solver konnen Instanzen mittlerer Schwierigkeit mit hunderten Millionen Variablen oder Klauseln in praktikabler Zeit losen 1 Das ist ausreichend fur praktische Anwendungen z B in der formalen Verifikation 2 in der kunstlichen Intelligenz 3 in der Electronic Design Automation 4 und in verschiedenen Planungs und Schedulingalgorithmen 5 Sie gehoren zu den Constraint Satisfaction Problems CSP Inhaltsverzeichnis 1 Terminologie 2 Definition und Varianten 2 1 Polynomiell entscheidbare Varianten von SAT 2 2 3 SAT 2 3 P3 SAT 2 4 MAX SAT und MAJ SAT 2 5 MAJ SAT 2 6 QBF QSAT 3 Algorithmen 3 1 Backtracking und DPLL 3 1 1 Einheitsresolution Unit Propagation 3 1 2 Pure Literal Elimination 3 2 Conflict Driven Clause Learning CDCL 3 2 1 Backjumping und Clause Learning 3 2 2 Conflict Clauses 3 2 3 Two Watched Literals TWL 2WL 3 2 4 Random Restart 3 3 Lokale Suche 4 Parallelisierung 4 1 Portfolio 4 2 Cube And Conquer 4 3 Parallele lokale Suche 5 Praxis 6 Siehe auch 7 EinzelnachweiseTerminologie BearbeitenEine aussagenlogische Formel besteht aus Variablen Klammern und den aussagenlogischen Verknupfungen Konjunktion und oft notiert mit Disjunktion oder und Negation nicht Eine Variable kann entweder den Wert wahr oder den Wert falsch annehmen Ein Literal ist ein Auftreten einer Variable positives Literal oder ihrer Negation negatives Literal Ein Literal heisst pur wenn es nur in einer Auspragung also entweder positiv oder negativ vorkommt Ein Monom ist eine endliche Menge von Literalen die ausschliesslich konjunktiv verknupft sind Eine Klausel ist eine endliche Menge von Literalen die ausschliesslich disjunktiv verknupft sind Eine Einheitsklausel ist eine Klausel die nur aus einem einzelnen Literal besteht Eine Horn Klausel ist eine Klausel mit hochstens einem positiven Literal Eine aussagenlogische Formel ist in konjunktiver Normalform KNF wenn sie nur aus Konjunktionen von Klauseln besteht Eine Horn Formel ist eine konjunktive Normalform die ausschliesslich aus Horn Klauseln besteht Die Formel x 1 x 2 x 1 x 2 x 3 x 1 displaystyle x 1 lor lnot x 2 land lnot x 1 lor x 2 lor x 3 land lnot x 1 nbsp befindet sich in konjunktiver Normalform Da nur die erste und die dritte Klausel Horn Klauseln sind ist sie aber keine Horn Formel Die dritte Klausel ist eine Einheitsklausel Eine aussagenlogische Formel ist in disjunktiver Normalform DNF wenn sie nur aus Disjunktionen von Monomen besteht Die Formel x 1 x 2 x 1 x 2 x 3 x 1 displaystyle x 1 land lnot x 2 lor lnot x 1 land x 2 land x 3 lor lnot x 1 nbsp befindet sich in disjunktiver Normalform Definition und Varianten BearbeitenEine Formel F displaystyle F nbsp heisst genau dann erfullbar wenn eine Zuweisung von Werten wahr oder falsch zu jeder Variable existiert sodass die Formel wahr ist Formal ist SAT definiert als die formale SpracheS A T F F displaystyle SAT F F nbsp ist aussagenlogische Formel und erfullbar displaystyle nbsp In der Praxis versteht man unter SAT meistens das Problem herauszufinden ob eine Formel F displaystyle F nbsp erfullbar ist Es existieren zahlreiche Varianten und fur die meisten Komplexitatsklassen existiert eine Variante von SAT die bezuglich dieser Klasse vollstandig ist Polynomiell entscheidbare Varianten von SAT Bearbeiten HORNSAT beschrankt SAT auf Horn Formeln das heisst auf Formeln in konjunktiver Normalform bei der jede Klausel hochstens ein positives Literal enthalt HORNSAT ist P vollstandig und in Linearzeit entscheidbar 6 DNF SAT beschrankt SAT auf Formeln die in disjunktiver Normalform gegeben sind DNF SAT ist in polynomieller Zeit entscheidbar da eine in DNF gegebene Formel genau dann erfullbar ist wenn es ein Monom gibt das keine komplementaren Literale enthalt 2 SAT beschrankt SAT auf Formeln deren Klauseln maximal 2 Literale enthalten 2 SAT ist in Linearzeit entscheidbar 7 3 SAT Bearbeiten Das Problem 3 SAT schrankt die Anzahl Literale auf 3 Literale pro Klausel ein Trotz dieser Einschrankung ist 3 SAT NP vollstandig da SAT sich in polynomieller Zeit auf 3 SAT reduzieren lasst Dasselbe gilt fur alle Probleme k SAT mit k gt 3 P3 SAT Bearbeiten Eine Instanz des Problems 3 SAT bestehend aus p Variablen und q Klauseln lasst sich auch mittels eines Graphen mit p q vielen Knoten darstellen Eine Formel ist in P3 SAT wenn sie in 3 SAT ist und dieser Graph planar ist P3 SAT ist NP vollstandig MAX SAT und MAJ SAT Bearbeiten Das Problem MAX SAT besteht darin die maximale Anzahl erfullbarer Klauseln einer gegebenen Formel zu bestimmen MAX SAT ist NP vollstandig und sogar APX vollstandig Daraus folgt dass kein PTAS fur MAX SAT existieren kann falls P NP 8 MAJ SAT Bearbeiten MAJ SAT ist das Problem zu entscheiden ob die Mehrzahl aller moglichen Variablenbelegungen die Formel erfullt MAJ SAT ist PP vollstandig 9 QBF QSAT Bearbeiten QBF verallgemeinert SAT fur quantifizierte aussagenlogische Formeln also Formeln die Quantoren enthalten QBF ist PSPACE vollstandig Algorithmen BearbeitenDa SAT NP vollstandig ist sind ausschliesslich Exponentialzeitalgorithmen fur SAT bekannt Seit den 2000er Jahren werden aber effiziente und skalierbare Algorithmen SAT Solver entwickelt die praktikables SAT Solving fur zahlreiche Anwendungen erlauben Beispiele fur Anwendungen sind formale Verifikation 2 Kunstliche Intelligenz 3 Electronic Design Automation 4 und verschiedene Planungs und Schedulingalgorithmen 5 SAT Solver konnen aufgrund ihrer Funktionsweise in verschiedene Klassen eingeteilt werden Ein grundlegender randomisierter Algorithmus zur Losung des k SAT Problems stammt von Uwe Schoning 1999 die Randomisierung konnte spater von Robin A Moser vollstandig entfernt werden um 2009 Der schnellste bekannte randomisierte Algorithmus fur allgemeines k SAT ist PPSZ Ramamohan Paturi Pavel Pudlak Michael E Saks Francis Zane 10 11 entstanden aus dem Vorlaufer PPZ von 1999 der nicht so gut wie der Algorithmus von Schoning war und basierend auf Encoding 2014 gab Timon Hertli Verbesserungen fur den Fall unique 3 SAT 12 Backtracking und DPLL Bearbeiten Der Davis Putnam Logemann Loveland Algorithmus DPLL oder DLL aus den 1960er Jahren war der erste SAT Solver der eine systematische Suche mittels Backtracking implementierte 13 14 Er ist nicht zu verwechseln mit dem Davis Putnam Algorithmus auf dem er basiert Viele moderne Ansatze basieren auf dem gleichen Konzept und optimieren oft lediglich die Effizienz des Algorithmus fur bestimmte Klassen von Eingaben wie z B zufallige SAT Instanzen oder Instanzen die in Anwendungen der Industrie auftreten 15 DPLL lost das CNF SAT Problem Das bedeutet die aussagenlogischen Formeln mussen in der konjunktiven Normalform vorliegen Menge von Klauseln Ein grundlegender Backtracking Algorithmus fur eine Formel F displaystyle F nbsp funktioniert wie folgt Wahle ein Literal l displaystyle l nbsp aus F displaystyle F nbsp Weise l displaystyle l nbsp einen Wahrheitswert wahr oder falsch zu Vereinfache F displaystyle F nbsp zu F l displaystyle F l nbsp indem alle Klauseln entfernt werden die nun wahr sind und alle Literale entfernt werden die nun falsch sind Splitting Rule Prufe rekursiv ob F l displaystyle F l nbsp erfullbar ist F l displaystyle F l nbsp ist erfullbar displaystyle implies nbsp F displaystyle F nbsp ist erfullbar F l displaystyle F l nbsp ist nicht erfullbar Weise l displaystyle l nbsp den komplementaren Wahrheitswert zu Vereinfache und prufe dann erneut rekursiv ob die resultierende Formel F l displaystyle F lnot l nbsp erfullbar ist Ist F l displaystyle F lnot l nbsp erfullbar so ist auch F displaystyle F nbsp erfullbar Ist F l displaystyle F lnot l nbsp nicht erfullbar so ist auch F displaystyle F nbsp nicht erfullbar Der Algorithmus terminiert wenn eine Klausel leer wird nicht erfullbar ihr letztes Literal wurde falsch oder wenn alle Variablen belegt sind erfullbar DPLL verbessert den simplen Backtracking Algorithmus durch zwei Regeln Einheitsresolution Unit Propagation Bearbeiten Tritt eine Einheitsklausel ps displaystyle psi nbsp auf so muss ihr einziges Literal wahr sein Weise dem Literal den entsprechenden Wahrheitswert zu und entferne alle Klauseln die ps displaystyle psi nbsp enthalten Entferne Vorkommen des Literals ps displaystyle lnot psi nbsp aus allen Klauseln In der Praxis fuhrt Einheitsresolution oft dazu dass wiederum Einheitsklauseln erzeugt werden und somit der naive Suchraum signifikant verkleinert wird Pure Literal Elimination Bearbeiten Kommt ein Literal als pures Literal vor so kann ihm ein Wert zugewiesen werden sodass alle Klauseln die das Literal enthalten wahr werden Entferne diese Klauseln Der Algorithmus zusammengefasst im Pseudocode function DPLL F set of clauses Konsistent bedeutet es kommt ausschliesslich l oder l vor if F is a consistent set of literals then Hier konnen zusatzlich die Literale zuruckgegeben werden return true if F contains an empty clause then return false for every unit clause l in F do F unit propagate l F for every literal l that occurs pure in F do F pure literal assign l F l choose literal F Mit Kurzschlussauswertung fur das Oder return DPLL F l true or DPLL F l true Dabei wenden unit propagate l F und pure literal assign l F die beiden Regeln entsprechend an und geben die vereinfachte Formel zuruck Die Effizienz von DPLL hangt sehr stark von der Auswahl des Literals l displaystyle l nbsp Branching Literal ab Fur manche Instanzen kann diese Wahl den Unterschied zwischen konstanter und exponentieller Laufzeit ausmachen 16 Darum definiert DPLL vielmehr eine ganze Familie von Algorithmen die unterschiedliche Heuristiken fur die Wahl von l displaystyle l nbsp verwenden Die Probleme von DPLL konnen in drei Punkten zusammengefasst werden Die Entscheidungen fur Branching Literals werden naiv getroffen Aus Konflikten wird nichts gelernt ausser dass die aktuelle partielle Variablenbelegung zu einem Konflikt fuhrt Dabei lassen sich mehr Informationen uber die Ursache des Konfliktes extrahieren und so grosse Teile des Suchraumes ausschliessen Backtracking springt nur jeweils eine Ebene im Suchbaum nach oben was zu einem sehr grossen Suchraum fuhrt In der Praxis werden diese Probleme gelost durch Heuristiken z B in einem Look Ahead Solver Clause Learning CDCL Backjumping CDCL Conflict Driven Clause Learning CDCL Bearbeiten Modernes Conflict driven Clause Learning CDCL erweitert DPLL um die Konzepte Clause Learning und Backjumping implementiert Two Watched Literals TWL 2WL um die Suche nach Einheitsklauseln zu beschleunigen und verwendet Random Restarts um schwierigen Situationen nach einer Reihe von schlechten Entscheidungen fur Variablenbelegungen zu entfliehen Backjumping und Clause Learning Bearbeiten Bei CDCL findet das Backtracking nicht mehr chronologisch statt sondern es werden Ebenen des Suchbaumes ubersprungen Ausserdem werden Informationen uber Variablenbelegungen die in Kombination einen Konflikt verursachen als Klausel der Klauselmenge hinzugefugt nbsp Backtracking ohne Backjumping nbsp Backtracking mit BackjumpingUm Backjumping zu ermoglichen merkt sich CDCL welche Zuweisungen von Wahrheitswerten zu Variablen willkurlich waren und welche Zuweisungen durch Unit Propagation erzwungen wurden In der Praxis funktioniert das mittels eines Implikationsgraphen Ein Implikationsgraph ist ein gerichteter azyklischer Graph G V E displaystyle G V E nbsp Jeder Knoten v V displaystyle v in V nbsp besteht dabei aus einem Tupel x f a l s e t r u e d displaystyle x in false true d nbsp oder einem Element c displaystyle c nbsp Wahrend das Tupel fur eine Zuweisung von wahr oder falsch fur ein Literal x displaystyle x nbsp auf Ebene d displaystyle d nbsp des Suchbaumes steht steht c displaystyle c nbsp fur einen aufgetretenen Konflikt Ein Konflikt tritt auf wenn ein Literal gleichzeitig den Wert wahr und den Wert falsch annehmen musste Wenn der Algorithmus ein Literal willkurlich mit einem Wahrheitswert belegt wird der entsprechende Knoten v displaystyle v nbsp mit dem Tupel das diese Zuweisung reprasentiert zu G displaystyle G nbsp hinzugefugt Erzwingt diese Zuweisung durch Unit Propagation eine weitere Zuweisung so wird ein weiterer Knoten w displaystyle w nbsp und eine Kante e v w displaystyle e v w nbsp zum Graphen hinzugefugt Im Folgenden ein Beispiel mit der Formel x 1 displaystyle x 1 nbsp x 4 displaystyle x 4 nbsp x 1 displaystyle x 1 nbsp x 3 displaystyle lnot x 3 nbsp x 8 displaystyle lnot x 8 nbsp x 1 displaystyle x 1 nbsp x 8 displaystyle x 8 nbsp x 12 displaystyle x 12 nbsp x 2 displaystyle x 2 nbsp x 11 displaystyle x 11 nbsp x 7 displaystyle lnot x 7 nbsp x 3 displaystyle lnot x 3 nbsp x 9 displaystyle x 9 nbsp x 7 displaystyle lnot x 7 nbsp x 8 displaystyle x 8 nbsp x 9 displaystyle lnot x 9 nbsp x 7 displaystyle x 7 nbsp x 8 displaystyle x 8 nbsp x 10 displaystyle lnot x 10 nbsp x 7 displaystyle x 7 nbsp x 1 displaystyle x 1 nbsp x 12 displaystyle lnot x 12 nbsp nbsp Implikationsgraph nach dem 8 Schritt nbsp Implikationsgraph mit KonfliktWahle x 1 displaystyle x 1 nbsp willkurlich und belege es wieder willkurlich mit false Unit Propagation erzwingt eine Belegung von x 4 displaystyle x 4 nbsp mit true Damit wird die Klausel x 1 displaystyle x 1 nbsp x 4 displaystyle x 4 nbsp wahr Wahle x 3 displaystyle x 3 nbsp und belege es mit true Unit Propagation erzwingt nun die Belegung von x 8 displaystyle x 8 nbsp mit false wegen x 1 displaystyle x 1 nbsp false Die Klausel x 1 displaystyle x 1 nbsp x 3 displaystyle lnot x 3 nbsp x 8 displaystyle lnot x 8 nbsp wird wahr Unit Propagation erzwingt die Belegung von x 12 displaystyle x 12 nbsp mit true wegen x 8 displaystyle x 8 nbsp false Die Kausel x 1 displaystyle x 1 nbsp x 8 displaystyle x 8 nbsp x 12 displaystyle x 12 nbsp wird wahr Wahle x 2 displaystyle x 2 nbsp und belege es mit false Unit Propagation erzwingt nun die Belegung von x 11 displaystyle x 11 nbsp mit true Die Klausel x 2 displaystyle x 2 nbsp x 11 displaystyle x 11 nbsp wird wahr Wahle x 7 displaystyle x 7 nbsp und belege es mit true Die Klauseln x 7 displaystyle x 7 nbsp x 8 displaystyle x 8 nbsp x 10 displaystyle lnot x 10 nbsp und x 7 displaystyle x 7 nbsp x 1 displaystyle x 1 nbsp x 12 displaystyle lnot x 12 nbsp werden wahr Ein Konflikt tritt auf fur x 9 displaystyle x 9 nbsp Unit Propagation muss die Klauseln x 7 displaystyle lnot x 7 nbsp x 3 displaystyle lnot x 3 nbsp x 9 displaystyle x 9 nbsp x 7 displaystyle lnot x 7 nbsp x 8 displaystyle x 8 nbsp x 9 displaystyle lnot x 9 nbsp erfullen die inzwischen zu x 9 displaystyle x 9 nbsp x 9 displaystyle lnot x 9 nbsp reduziert wurden Der Konfliktknoten c displaystyle c nbsp wird in den Implikationsgraphen eingefugt Der Algorithmus analysiert nun den Konflikt mithilfe des Implikationsgraphen und entscheidet welche Klausel gelernt werden soll und zu welchem Entscheidungslevel im Suchbaum zuruckgesprungen werden soll In Frage kommende Klauseln heissen conflict clause und sollen verhindern dass die Fehlentscheidung des Algorithmus die zum Konflikt gefuhrt hat wiederholt wird Eine solche conflict clause wird zur Klauselmenge hinzugefugt Das maximale Entscheidungslevel der Variablen aus der conflict clause bestimmt das Entscheidungslevel fur das Backjumping Eine abstrakte Beschreibung von CDCL im Pseudocode sieht wie folgt aus 17 function CDCL F set of clauses G lt Implikationsgraph if unit propagate F G findet Konflikt then return false level 0 while F hat nicht zugewiesene Variablen do level level 1 choose literal F G while unit propagate F G findet Konflikt do Ermittle Ebene fur Backjump und zu lernende Klausel d c analyzeConflict G Lerne F F c Wenn der Konflikt nicht aufgelost werden kann if d lt 0 then return false else backjump F d level d return true Dabei aktualisieren unit propagate F G und choose literal F G jeweils entsprechend den Implikationsgraphen Die Funktion analyzeConflict G wird durch die Strategie des clause learning bestimmt Conflict Clauses Bearbeiten nbsp Implikationsgraph mit Decision Side und Conflict SideUm eine conflict clause zu ermitteln untersucht man Schnitte im Implikationsgraphen Ein Schnitt generiert eine conflict clause genau dann wenn er den Graph so in zwei Halften partitioniert dass eine Halfte die decision side alle decision nodes enthalt und die andere Halfte den Konfliktknoten Die decision nodes sind dabei die willkurlichen Entscheidungen die zum Konflikt gefuhrt haben Aus dem Implikationsgraphen wird ersichtlich dass z B fur x 3 displaystyle x 3 nbsp und x 7 displaystyle x 7 nbsp eine willkurliche Entscheidung getroffen wurde aber die Entscheidung fur die Belegung von x 8 displaystyle x 8 nbsp eine Konsequenz aus der Entscheidung fur die Belegung von x 1 displaystyle x 1 nbsp und x 3 displaystyle x 3 nbsp war Die Knoten fur x 1 displaystyle x 1 nbsp x 3 displaystyle x 3 nbsp x 7 displaystyle x 7 nbsp sind also die decision nodes Ein Beispiel fur einen Schnitt der eine conflict clause generiert ist ein Schnitt durch die eingehenden Kanten des Konfliktknotens roter Schnitt in der Abbildung Die Knoten auf der decision side reprasentieren die Ursache des Konfliktes namlich x 3 x 7 x 8 K o n f l i k t displaystyle x 3 land x 7 land lnot x 8 implies Konflikt nbsp Durch Kontraposition erhalt man K o n f l i k t x 3 x 7 x 8 displaystyle lnot Konflikt implies lnot x 3 lor lnot x 7 lor x 8 nbsp ein Beispiel fur eine conflict clause Eine andere Moglichkeit stellt der blaue Schnitt durch die ausgehenden Kanten der decision nodes dar Er generiert die conflict clause x 1 x 3 x 7 displaystyle lnot x 1 lor x 3 lor x 7 nbsp Diese Variante wurde in Rel sat 18 implementiert einem der ersten CDCL SAT Solver 19 Eine fortgeschrittene Variante wird von der Implementierung GRASP 20 eingesetzt Two Watched Literals TWL 2WL Bearbeiten Es bleibt das Problem Einheitsklauseln fur die Unit Propagation und Konflikte effizient zu finden Lange Zeit haben Solver dafur die Anzahl Literale die in einer Klausel noch nicht mit Wahrheitswerten belegt worden sind mitgezahlt Wenn sich dieser Zahler von 2 auf 1 andert wendet man Unit Propagation an Da uns der genaue Wert des Zahlers aber eigentlich nicht interessiert sondern wir nur wissen mussen wann sich die Zahl auf eins andert verfolgen wir nicht die Klauseln selbst sondern jeweils zwei Literale pro Klausel die two watched literals TWL ist also eine Datenstruktur die die Suche nach Konflikten oder Einheitsklauseln beschleunigt Jede Klausel die noch nicht erfullt ist besitzt zwei watched literals Die Information wird dabei nicht von den Klauseln gespeichert sondern von den Literalen selbst Jeder Literal l displaystyle l nbsp besitzt also eine Liste mit Klauseln in denen er vorkommt Diese Klauseln werden in einer Liste verkettet der watch list Die TWL einer Klausel erfullen folgende Invariante Solange kein Konflikt gefunden wurde darf ein watched literal nur false sein solange der andere watched literal true ist und alle unwatched literals false sind 21 Die Invariante fuhrt dazu dass die Belegung eines unwatched literals mit einem Wahrheitswert niemals zu einer unit propagation oder einem Konflikt fuhren wird Wenn wir nun aber einem watched literal l displaystyle l nbsp einen Wahrheitswert zuweisen mussen wir eventuell die Invariante reparieren unit propagation anwenden oder einen Konflikt auflosen Betrachten wir die Klauseln in denen die Negation von l displaystyle l nbsp also l displaystyle lnot l nbsp vorkommt Diese konnen durch die watch list effizient gefunden werden Wir verfahren fur diese wie folgt Ist der andere watched literal der Klausel true mussen wir nichts tun Ist einer der unwatched literals l displaystyle l nbsp der Klausel nicht false wahlen wir l displaystyle l nbsp als watched literal der l displaystyle lnot l nbsp ersetzt Ist der andere watched literal l displaystyle l nbsp fur diese Klausel noch nicht mit einem Wahrheitswert belegt fuhre unit propagation fur l displaystyle l nbsp durch Ansonsten ist l displaystyle l nbsp false und ein Konflikt wurde gefunden TWL wurde fur den SAT Solver Chaff 22 entwickelt um die unit propagation in der Praxis zu optimieren Random Restart Bearbeiten Random Restarts setzen alle Variablenbelegungen zuruck und starten die Suche mit einer anderen Reihenfolge der Variablenbelegung neu Damit wird das Problem umgangen dass manche dieser Zuweisungsreihenfolgen zu sehr viel langer andauernden Berechnungen mit vielen Konflikten fuhren wahrend geeignete Reihenfolgen das Problem schneller losen Dabei werden gelernte Klauseln und die aktuell zugewiesenen Werte der Variablen ubernommen Wann ein Restart durchgefuhrt wird bestimmt eine Strategie z B fixed nach n Konflikten in Abstanden die einer Reihe wie der geometrischen Reihe folgen oder dynamisch wenn sich Konflikte beginnen zu haufen Restart Strategien sind haufig an eine bestimmte Klasse von Instanzen angepasst und aggressivere Strategien haben sich in vielen Fallen als effizient herausgestellt 23 Lokale Suche Bearbeiten SAT Solver die auf dem Prinzip der lokalen Suche basieren fuhren im Grunde folgende Schritte aus Weise jeder Variable einen Zufallswert true oder false zu Wenn alle Klauseln erfullt sind terminiere und gebe die Variablenbelegung zuruck Ansonsten negiere eine Variable und wiederhole Die aussagenlogische Formel ist dabei als konjunktive Normalform gegeben Unterschiede zwischen SAT Solvern die lokale Suche implementieren finden sich vor allem bei der Wahl der Variable die negiert wird GSAT 24 negiert die Variable die die Zahl an nicht erfullten Klauseln minimiert oder wahlt mit einer gewissen Wahrscheinlichkeit eine zufallige Variable WalkSAT 25 wahlt eine zufallige nicht erfullte Klausel und negiert eine Variable Dabei wird die Variable ausgewahlt die am wenigsten bereits erfullte Klauseln nicht erfullt werden lasst Die Wahrscheinlichkeit dass eine falsche Variablenzuweisung korrigiert wird ist der Kehrwert der Anzahl der Variablen in der Klausel Mit einer gewissen Wahrscheinlichkeit wird auch hier einfach eine zufallige Variable der Klausel ausgewahlt Beide Varianten erlauben zufallige Zuweisungen mit einer gewissen Wahrscheinlichkeit um das Problem der lokalen Maxima zu umgehen Ausserdem werden zufallige Neustarts erlaubt wenn fur eine zu lange Zeit keine Losung gefunden wurde Parallelisierung BearbeitenParallele SAT Solver konnen in drei Kategorien eingeteilt werden Portfolio Divide and conquer und parallele lokale Suche Portfolio Bearbeiten Portfolio SAT Solver beruhen auf der Tatsache dass die meisten SAT Solver auf bestimmten Probleminstanzen effizient sind aber auf anderen Instanzen langsamer sind als andere Algorithmen Gegeben eine beliebige Instanz von SAT so gibt es keine verlassliche Moglichkeit um vorherzusagen welcher Algorithmus die Instanz am schnellsten losen wird Der Portfolio Ansatz verwendet nun verschiedene Ansatze parallel um die Vorteile verschiedener SAT Solver zu kombinieren Ein Nachteil der Methode ist naturlich dass alle parallelen Prozesse im Prinzip die gleiche Arbeit verrichten Trotzdem haben sich Portfolio Solver in der Praxis als effizient herausgestellt Cube And Conquer Bearbeiten Divide and conquer Algorithmen beruhen auf dem Ansatz ein Problem in kleinere Teilprobleme aufzuteilen diese rekursiv zu bearbeiten und die Teilergebnisse zu kombinieren DPLL und CDCL sind divide and conquer Algorithmen die den Suchraum bei jeder Entscheidung fur eine Variablenbelegung in zwei Halften aufteilen Durch unit propagation und pure literal elimination konnen diese Halften aber sehr unterschiedlich schwer zu losende Teilinstanzen von SAT darstellen CDCL verscharft dieses Problem durch die Anwendung weiterer Techniken Cube and conquer ist ein Ansatz der dieses Problem in zwei Phasen lost nbsp Cube phase der Formel F Eine Entscheidungsheuristik wahlt die Variablen aus eine Richtungsheuristik bestimmt welcher Wert true oder false als erstes bearbeitet wird und eine Cutoff Heuristik bestimmt ab wann die Teilprobleme klein genug sind und an den sequentiellen SAT Solver ubergeben werden Cube Phase Die Instanz von SAT wird von einem SAT Solver in viele einige Tausend bis einige Millionen Teilprobleme aufgeteilt sogenannte Wurfel Ein Wurfel ist dabei eine Konjunktion einer Teilmenge der Literale der Originalformel F Konjunktiv mit F verknupft ergibt sich eine neue Formel F die unabhangig von den anderen Teilproblemen gelost werden kann z B CDCL Die Disjunktion aller F ist aquivalent zu F Der Algorithmus terminiert also sobald ein Teilproblem erfullbar ist Fur die Cube Phase wird in der Regel ein Look Ahead Solver eingesetzt da diese sich fur kleine aber schwere Probleme bewahrt haben und globaler arbeiten als z B CDCL 26 Parallele lokale Suche Bearbeiten Parallele lokale Suche ist leicht zu parallelisieren Flips von verschiedenen Variablen werden parallel durchgefuhrt oder ein Portfolio Ansatz wird verwendet indem unterschiedliche Strategien fur die Variablenauswahl gleichzeitig angewandt werden Praxis BearbeitenDie SAT Competition ist ein Wettbewerb 27 fur SAT Solver der jahrlich im Rahmen der International Conference on Theory and Applications of Satisfiability Testing stattfindet 28 In verschiedenen Disziplinen werden unterschiedliche Qualitaten von SAT Solvern evaluiert Sequentielle Performance teilweise existieren separate Wettbewerbe fur bestimmte Klassen von Instanzen z B Instanzen aus dem Automated Planning Massige Parallelisierung auf einer einzelnen Maschine mit Shared Memory Massive Parallelisierung auf verteilten Maschinen Inkrementelle SAT Solver also SAT Solving fur Anwendungen die mehrere Losungsschritte benotigen Dabei wird eine Sequenz verwandter SAT Instanzen gelost wobei bereits gelernte Informationen aus fruheren Instanzen wiederverwendet werden 29 Die SAT Association ist eine Vereinigung die sich zum Ziel gesetzt hat Forschung im Bereich SAT SAT Solver und der formalen Verifikation voranzubringen und die SAT Community zu reprasentieren 30 Sie beaufsichtigt die Organisation der genannten Konferenzen und Wettbewerbe und gibt das Journal on Satisfiability Boolean Modeling and Computation JSAT heraus 31 Siehe auch BearbeitenAussagenlogik Resolution Logik Komplexitatstheorie NP Vollstandigkeit Formale Verifikation Erfullbarkeitsproblem fur SchaltkreiseEinzelnachweise Bearbeiten SAT Competition 2020 Abgerufen am 9 November 2020 a b Randal E Bryant Steven German Miroslav N Velev Microprocessor Verification Using Efficient Decision Procedures for a Logic of Equality with Uninterpreted Functions In Lecture Notes in Computer Science Springer Berlin Heidelberg Berlin Heidelberg 1999 ISBN 3 540 66086 0 S 1 13 a b Henry Kautz Bart Selman Planning as satisfiability In Proceedings of the 10th European conference on Artificial intelligence ECAI 92 John Wiley amp Sons Inc Vienna Austria 1992 ISBN 0 471 93608 1 S 359 363 doi 10 5555 145448 146725 a b Joao P Marques Silva Karem A Sakallah Boolean satisfiability in electronic design automation In Proceedings of the 37th Annual Design Automation Conference DAC 00 Association for Computing Machinery Los Angeles California USA 2000 ISBN 1 58113 187 9 S 675 680 doi 10 1145 337292 337611 a b Hong Huang Shaohua Zhou An efficient SAT algorithm for complex job shop scheduling In Proceedings of the 2018 8th International Conference on Manufacturing Science and Engineering ICMSE 2018 Atlantis Press Paris France 2018 ISBN 978 94 6252 502 3 doi 10 2991 icmse 18 2018 126 William F Dowling Jean H Gallier Linear time algorithms for testing the satisfiability of propositional horn formulae In The Journal of Logic Programming Band 1 Nr 3 1984 S 267 284 doi 10 1016 0743 1066 84 90014 1 Bengt Aspvall Michael F Plass Robert Endre Tarjan A linear time algorithm for testing the truth of certain quantified boolean formulas In Information Processing Letters Band 8 Nr 3 Marz 1979 S 121 123 doi 10 1016 0020 0190 79 90002 4 Christos Papadimitriou Computational Complexity Addison Wesley 1994 Pierluigi Crescenzi Daniel Pierre Bovet Introduction to the theory of complexity Prentice Hall New York 1994 ISBN 0 13 915380 2 Paturi Pudlak Saks Zane An improved exponential time algorithm for K SAT J ACM Band 52 2005 S 337 364 Dominik Schweder John P Steinberger PPSZ for General k SAT Making Hertli s Analysis Simpler and 3 SAT Faster 2017 Online Hertli Breaking the PPSZ Barrier for Unique 3 SAT in Javier Esparza Pierre Fraigniaud Thore Husfeldt Elias Koutsoupias Hrsg Automata Languages and Programming 41st International Colloquium ICALP 2014 Kopenhagen Juli 2014 Proc Teil 1 Proceedings Part I Lecture Notes in Computer Science 8572 Springer 2014 S 600 611 Martin Davis Hilary Putnam A Computing Procedure for Quantification Theory In Journal of the ACM Band 7 Nr 3 Juli 1960 ISSN 0004 5411 S 201 215 doi 10 1145 321033 321034 Martin Davis George Logemann Donald Loveland A machine program for theorem proving In Communications of the ACM Band 5 Nr 7 Juli 1962 ISSN 0001 0782 S 394 397 doi 10 1145 368273 368557 Lintao Zhang Sharad Malik The Quest for Efficient Boolean Satisfiability Solvers In Computer Aided Verification Band 2404 Springer Berlin Heidelberg Berlin Heidelberg 2002 ISBN 3 540 43997 8 S 17 36 doi 10 1007 3 540 45657 0 2 Joao Marques Silva The Impact of Branching Heuristics in Propositional Satisfiability Algorithms In Progress in Artificial Intelligence Band 1695 Springer Berlin Heidelberg Berlin Heidelberg 1999 ISBN 3 540 66548 X S 62 74 doi 10 1007 3 540 48159 1 5 Emina Torlak A Modern SAT Solver Lecture University of Washington PDF Abgerufen am 8 November 2020 englisch Roberto J Bayardo Robert Schrag Using CSP look back techniques to solve exceptionally hard SAT instances In Lecture Notes in Computer Science Springer Berlin Heidelberg Berlin Heidelberg 1996 ISBN 3 540 61551 2 S 46 60 Lintao Zhang S Malik Conflict driven learning in a quantified Boolean satisfiability solver In IEEE ACM International Conference on Computer Aided Design IEEE 2002 ISBN 0 7803 7607 2 doi 10 1109 iccad 2002 1167570 J P Marques Silva K A Sakallah GRASP a search algorithm for propositional satisfiability In IEEE Transactions on Computers Band 48 Nr 5 Mai 1999 S 506 521 doi 10 1109 12 769433 Mathias Fleury Jasmin Christian Blanchette Peter Lammich A verified SAT solver with watched literals using imperative HOL In Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs CPP 2018 ACM Press New York New York USA 2018 ISBN 978 1 4503 5586 5 doi 10 1145 3167080 Matthew W Moskewicz Conor F Madigan Ying Zhao Lintao Zhang Sharad Malik Chaff engineering an efficient SAT solver In Proceedings of the 38th conference on Design automation DAC 01 ACM Press Las Vegas Nevada United States 2001 ISBN 1 58113 297 2 S 530 535 doi 10 1145 378239 379017 Gilles Audemard Laurent Simon Predicting Learnt Clauses Quality in Modern SAT Solvers In Proceedings of the 21st International Joint Conference on Artificial Intelligence IJCAI 2009 B Selman H J Levesque and D G Mitchell A new method for solving hard satisfiability problems 10th AAAI San Jose CA 1992 S 440 446 K Keefe Local search strategies for equational satisfiability Office of Scientific and Technical Information OSTI 21 September 2004 Marijn J H Heule and Hans van Maaren Look Ahead Based SAT Solvers Handbook of Satisfiability Hrsg IOS Press EasyChair 2009 doi 10 29007 g7ss utexas edu PDF abgerufen am 8 November 2020 The International SAT Competition Web Page The International Conferences on Theory and Applications of Satisfiability Testing SAT Katalin Fazekas Armin Biere Christoph Scholl Incremental Inprocessing in SAT Solving In Theory and Applications of Satisfiability Testing SAT 2019 Lecture Notes in Computer Science Springer International Publishing Cham 2019 ISBN 978 3 03024258 9 S 136 154 doi 10 1007 978 3 030 24258 9 9 The SAT Association Journal on Satisfiability Boolean Modeling and Computation ISSN 1574 0617Karps 21 NP vollstandige Probleme Erfullbarkeitsproblem der Aussagenlogik Cliquenproblem Mengenpackungsproblem Knotenuberdeckungsproblem Mengenuberdeckungsproblem Feedback Arc Set Feedback Vertex Set Hamiltonkreisproblem Integer Linear Programming 3 SAT graph coloring problem Covering by cliques Problem der exakten Uberdeckung 3 dimensional matching Steinerbaumproblem Hitting set Rucksackproblem Job sequencing Partitionsproblem Maximaler Schnitt Abgerufen von https de wikipedia org w index php title Erfullbarkeitsproblem der Aussagenlogik amp oldid 232457440