Vollständige SAT-Solver

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Schwierigkeit von Aufgabenstellungen
Komplexität und Phasenübergänge
Thema: Algorithmusdesignverfahren Vu Hoang Lam IMN04 HTWK-Leipzig Obersemminar Softwareentwicklung.
Spezialvorlesung Suchalgorithmen
Suche in Texten (Stringsuche )
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Planares 3 SAT ist NP-vollständig
Algorithmen und Komplexität
Gliederung Motivation / Grundlagen Sortierverfahren
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Vortrag: Ingo Gensch, Mathias Reich am:
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Aussagenlogik -- Verfahren zum Finden von Modellen
Beweiser für quantifizierte Boolesche Ausdrücke - QUAFFLE
Recursive Learning und GRASP SAT-Engines-Seminar WS 2000/01 Stefan Disch.
P. Tafertshofer, A. Ganz, M. Henftling
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Übungen zum Vortrag „Backtracking mit Heuristiken“
Verwendung von Maschinellem Lernen in einer einfachen Computerspielumgebung Anglberger Harald Brandl Stephan Mai 2003.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den Brute Force Search Algorithmus schlagen?
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
Das Traveling Salesman Problem (TSP)
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Algorithmen für das Erfüllbarkeitsproblem SAT
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
 Präsentation transkript:

Vollständige SAT-Solver Vortrag im Rahmen des Seminars Automatic Problem Solving Lehrstuhl für Wissensverarbeitung, Prof. Dr. Torsten Schaub Universität Potsdam Ben Hildebrand, Mario Wegner

Gliederung Einleitung DPLL, Tableau, Effizienzsteigerungen Heuristiken BCP SAT-Solver: Grasp Sato Chaff BerkMin siege

Einleitung SAT-Problem: Bestimmung einer Variablenbelegung v, so dass Formel f wahr Grundverfahren DPLL  Vollständig Lokale Suchalgorithmen  Unvollständig Vollständigkeit Existiert eine Lösung, wird diese auch gefunden Der Algorithmus terminiert nach endlicher Laufzeit ohne Lösung, wenn Problem keine Lösung hat

DPLL-Grundlage while (true) { if (!decide()) // if no unassigned vars return(satisifiable); while (!bcp()) if (!resolveConflict()) return(not satisfiable); } bool resolveConflict() d = most recent decision not ‘tried both ways’; if (d == NULL) // no such d was found return false; flip the value of d; mark d as tried both ways; undo any invalidated implications; return true;

Tableau Nummerierung von Variablen und Klauseln Jede Variable hat Feld für aktuellen Wert Jeweils eine Liste für Regeln in denen es positiv bzw. negativ vorkommt Jede Regel hat Liste von Literalen Erfüllt-Feld Anzahl unbelegter Variablen

Tableau Unit-Propagation -> Literale kommen auf Stack Hole letztes Literal vom Stack Markiere mit der gewählten Wahrheitszuweisung Markiere jede Klause, in der es positiv vorkommt als erfüllt Alle Klauseln, in denen es negativ vorkommt Wenn Klausel nicht schon erfüllt -> Erniedrige Zähler der Klausel um 1 Wenn Zähler = 1 Lege das unbelegte Literal auf den Stack Merke alle Änderungen, damit Backtracking möglich ist

Effizienzsteigerung Lookahead Lookback Propagationsmechanismus Auswertung von Informationen über verbleibenden Suchraum Entscheidungs-Heuristiken Konsistenzsicherungsmechanismen Forward Checking Lookback Auswertung des bereits durchsuchten Raumes Backjumping (intelligentes Backtracking) Clause Learning Propagationsmechanismus Die meisten modernen SAT-Solver nutzen Mechanismen aus allen Kategorien

Heuristiken Decision-Belegungen hängen von der Entscheidung ab, welche Variable ausgesucht werden soll Strategie bestimmt Variable und so den Suchbaum schwer zu entscheiden, welche Strategie besser bzw. zu bevorzugen ist Anzahl der Entscheidungen/Konflikte?  bewirken nicht alle die gleiche Anzahl von BCP-Operationen Nicht alle Entscheidungen haben den gleichen Rechenaufwand  Suche nach der schnellsten Strategie

RAND Auswahl der nächsten Entscheidung zwischen unbelegten Variablen per Zufall

Formula simplification heuristics Formel F1 ist dann simpler als Formel F2, wenn g(F1) > g(F2), wobei g eine eine exponentiell gewichtete Summe der Klausel-Größe für eine gegebene Formel berechnet Variablen werden nach Stärke eine Formel zu vereinfachen sortiert und vorrangig ausgewählt  g(F|x) · g(F|¬x) soll maximiert werden

Literal count heuristics Einstufung der Variablen anhand der Anzahl ihres Auftretens in unerfüllten Klauseln Variable mit dem höchsten Auftreten wird dann ausgewählt CP(v) = Anzahl des Auftretens von v in unerfüllter Klausel CN(v) = Anzahl des Auftretens von ¬v in unerfüllter Klausel DLCS (dynamic largest combined sum) heuristic: wähle v so, dass CP(v) + CN(v) maximal DLIS (dynamic largest individual sum) heuristic wähle v so, dass CP(v) oder CN(v) maximal

Bohm‘s Heuristik Wähle ein Literal v, für dass der Vektor mit den Komponenten maximal ist. Dabei ist die Anzahle der ungelösten Klauseln der Länge i (verbleibende Literale), in denen v auftritt…α und β werden experimentell ausgewählt Bevorzugt für Literale, die kleine Klauseln erfüllen, wenn sie auf true gesetzt werden die Größe von kleinen Klauseln weiter reduzieren, wenn sie auf false gesetzt werden

MOM‘s Heuristik (Maximales Auftreten in Klauseln minimaler Länge) Wähle Literal v, so dass maximiert wird. f(v) ist dabei die Anzahl des Auftretens eines Literals v in den kleinsten ungelösten Klauseln und k ein tuning-Parameter. Bevorzugt für Klauseln mit einem hohen Auftreten von v oder ¬v Fokus ist auf den aktuell kleinsten Klauseln

Jeroslaw-Wang-Heuristik Für ein gegebenes Literal v sei wobei c = unerfüllte Klausel, in der v auftritt JW-OS (one-sided): wähle ein v, für das J(v) maximal ist  setze v auf wahr JW-TS (two-sided): wähle ein v, für das J(v) + J(¬v) maximal ist  für J(v) ≥ J(¬v) setze v auf wahr, sonst auf falsch

Boolean Constraint Propagation (BCP) Aufgabe: Identifikation von unit-Klauseln nach einer Variablenbelegung Erzeugen einer Implikation BCP - 90% der Laufzeit eines DLL-Solvers Wird häufig ausgeführt Arbeitet weit gefächert und nicht-sequentiell über Datenstruktur „anschauen“ einer Klausel ist sehr kostenaufwendig Problem: Datenstruktur um vieles größer als L2-Cache Industrie-Formeln haben hunderttausende Klauseln und Millionen Literale Clause-learning lässt Formel wachsen Variablenbelegung wirkt sich auf viele Klauseln aus Nur ein winziger Teil der Formel im Cache Große Cache-Miss-Rate bottleneck Ziel: BCP optimieren

GRASP Basis: DPL-Prozedur Features Suchalgorithmus Entscheidungsebenen Nichtchronoligisches Backtracking  Backjumping Kausalitätsketten  Implikationsgraphen Clause Learning Suchalgorithmus Decide() Choice Point mit Heuristik Deduce() BCP Success / Conflict Diagnose() Clause Learning: Aus Konflikten werden neue Formeln gewonnen Erase() Implementiert Backjumping

GRASP Choice-Heuristik Verschiedene Heuristiken implementiert Standard: Variable und Belegung, die die meisten Klauseln erfüllt, wird gewählt Dadurch auch hohe Wahrscheinlichkeit, in der Propagation viel zu produzieren Greedy

GRASP – Decision Levels, Implikationsgraphen

GRASP - Konfliktanalyse Struktur des Konflikts wird analysiert Clause Learning Alle Variablenbelegungen, die ursächlich zum Konflikt geführt haben, können der Klausel-DB als Klausel hinzugefügt werden  Conflict induced Clauses Failure Driven Assertions Wird der Konflikt unter anderen durch die aktuelle Belegung der Decision Variable ausgelöst, kann diese mit umgekehrtem Wert angenommen werden Conflict-Directed Backtracking Wenn alle konfliktauslösenden Variablen auf einer frühreren Entscheidungsebene als aktuell  Backjump zur höchsten enthaltenen Ebene Vorteil: Nutzlose Traversierung von Suchraum ohne Lösungen wird vermieden

GRASP - Konfliktanalyse Space Bounded Diagnosis Problem bisher: Anzahl der Konfliktklauseln steigt mit der Anzahl der Backtracks  im schlechtesten Fall exponentielles Klausel-DB-Wachstum Lösung: Einteilung in grüne und rote Konfliktklauseln abhängig von Größenparameter k Grün: normale Handhabung Rot: nur, solange erfüllt, unerfüllt, oder Unit. Sonst: Löschung Unique Implication Points Umfangreichere Konfliktanalyse  stärkere implizierte Konfliktklauseln (weniger Literale) Dominators

SATO Basiert auf DLL-Algorithmus Hauptmotivation war das Lösen von Latin Square Problemen nutzt optimierten BCP  THL BCP (tail to head literals BCP) Hier werden immer nur die Head- und Tail-Literale beobachtet 2 Techniken haben sehr zur Verbesserung von SATO beigetragen: Kombination der Heuristiken formula simplification und literal count Konfliktanalyse durch intelligentes „backjumping“

CHAFF arbeitet mit DP-Algorithmus scheduled lazy clause deletion Restart Konfliktanalyse, conflict clause addition und UIP-Identifikation wie bei GRASP benutzt optimierten BCP  TWL BCP (two watched literals BCP) 2 Literale einer Klausel werden beobachtet Solange nicht eines der beiden Literale auf 0 gesetzt wird, wird die Klausel nicht besucht verwendet Variable State Independent Decaying Sum (VSIDS) Heuristik Counter für Literale, welcher inkrementiert wird, wenn eine Klausel zur Datenbank hinzugefügt wird, in der das Literal auftritt Im Fall einer notwendigen Entscheidung wird das Literal mit dem höchsten Counter gewählt

BerkMin Nutzt die Entwicklungen von GRASP, CHAFF, SATO Neuerungen Organisation der gelernten Konfliktklauseln Zeitlich geordneter Stack Neueste (gelernte) Klauseln liegen ganz oben Grund: Neue Klauseln haben mehr Propagationspotenzial als alte Andere Berechnung der Variablenaktivität Aktivität = Anzahl Klauseln, die für Konflikte verantwortlich sind und in denen diese Variable vorkommt Periodische Abwertung wie in Chaff, jedoch mit stärkerem Faktor

BerkMin Neuerungen Choice – Heuristik Neues Klausel-DB-Management 1. Basis: Chronologische Reihenfolge der Konfliktklauseln Erste Konfliktklausel vom Stack: Variable mit Max(Aktivität(Variable)) wird verwendet 2. Wenn keine Konfliktklauseln auf Stack: Max(Aktivität(Variable)) Neues Klausel-DB-Management Vor jeder Iteration Konflikt-Klauseln werden entfernt Unwichtige (gemessen an ihrer Aktivität) Zu große Datenstrukturen werden physisch zusammengeschoben

siege basiert auf DLL Verwendete Heuristik: VMFT (variable move-to-front decision) heuristic Counter für Variablen + Variablenliste Score-Schema kann durch VSIDS ergänzt werden Binary und ternary clause BCP (Erweiterung von TWL BCP)

Referenzen [LA97] C. Li and Anbulagan. Heuristics based on unit propagation for satisability problems. In Proceedings of the 15th International Joint Conference on Articial Intelligence (IJCAI'97), pages 366-371, 1997. [BS96] R. Bayardo and R. Schrag. Using csp look-back techniques to solve exceptionally hard sat instances. In Proceedings of the 2nd International Conference on Principles and Practice of Constraint Programming (CP'96), pages 46-60, 1996. [MSS99] J. Marques-Silva and K. Sakallah. Grasp: A search algorithm for propositional satisability. IEEE Transactions on Computers, 48(5):506-521, 1999. [Zha97] H. Zhang. Sato: an ecient propositional prover. In Proceedings of the 14th International Conference on Automated Deduction (CADE'97), pages 272-275, 1997. [MMZ+01] M. Moskewicz, C. Madigan, Y. Zhao, L. Zhang, and S. Malik. Cha: Engineering an ecient sat solver. In Proceedings of the 38th Conference on Design Automation (DAC'01), pages 530-535, 2001. [GN02] E. Goldberg and Y. Novikov. Berkmin: A fast and robust sat solver. In Proceedings of the 5th Conference on Design, Automation and Test in Europe (DATE'02), pages 142-149, 2002. [Rya04] L. Ryan. Ecient algorithms for clause-learning sat solvers. Master's thesis, Simon Fraser University, 2004.