1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

Slides:



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

Perceptrons and the perceptron learning rule
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Schwierigkeit von Aufgabenstellungen
Komplexität und Phasenübergänge
Constraint Satisfaction Problems
Spezialvorlesung Suchalgorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Bounded Model Checking II
Algorithmische Anwendung
Suche in Texten (Stringsuche )
4. Logik – und ihre Bedeutung für WBS
Planares 3 SAT ist NP-vollständig
Marco Barz Seminar über Algorithmen SoSe2007
Verifizieren versus Berechnen
Algorithmen und Komplexität
Christian Schindelhauer
Prolog und Prädikatenlogik I
Computergestützte Verifikation
1 Computergestützte Verifikation Abstraktion.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Vollständige SAT-Solver
Algorithmentheorie 6 – Greedy-Verfahren
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Symbolisches Model Checking mit Binary Decision Diagrams
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 4.1.
Fantasieregel Die Aussagenlogik
Algorithmen und Komplexität
Aussagenlogik -- Verfahren zum Finden von Modellen
Beweiser für quantifizierte Boolesche Ausdrücke - QUAFFLE
SAT-Engines Seminar WS 2000/2001
Recursive Learning und GRASP SAT-Engines-Seminar WS 2000/01 Stefan Disch.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den Brute Force Search Algorithmus schlagen?
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Computergestützte Verifikation
Algorithmen für das Erfüllbarkeitsproblem SAT
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Vom graphischen Differenzieren
Algorithmen und Datenstrukturen 1 SS 2002
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?
4. Logik – und ihre Bedeutung für WBS
 Präsentation transkript:

1 Computergestützte Verifikation

2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem und löse dieses. Inhalt Ein effizienter SAT-Solver Noch ein effizienter SAT-Solver LTL Model Checking als SAT-Problem

3 Das Problem SAT geg: aussagenlogischer Ausdruck Frage: Ist erfüllbar? NP-vollständig Viele Algorithmen setzen in bestimmter Form voraus, meist CNF (Klauselmenge) ( 4.2.1). Manche Algorithmen arbeiten auf beliebigen Ausdrücken ( 4.2.2)

SAT-Solver für CNF (Suche nach erfüllender Belegung) Ausgangspunkt: Algorithmus von Davis-Putnam aus den 60ern (x y z) (¬x y) (¬y z) (¬x ¬y ¬z) (y) (¬y z) (¬y ¬z)(y z) (¬y z) x ¬x¬xdecide (z) (¬z) y unit propagation z leere Klauselmenge = SAT! pure literal propagation z () leere Klausel = Konflikt Backtracking zur letzten offenen Entscheidung

5 Davis-Putnam-Algorithmus DP(K) K – Klauselmenge IF K = ø THEN RETURN SAT IF () K THEN RETURN UNSAT IF = ( ) K THEN RETURN DP(K \ { }) IF ( [¬]x i ) K THEN RETURN DP(K/ x i 1[0]) IF K enthält Literal l, aber nicht seine Negation THEN RETURN DP(K \ { | l }) choose i IF DP(K/ x i 1) = SAT THEN RETURN SAT RETURN DP(K/ x i 0) Tautologie unit pure literal decide/ backtrack

6 1. Trick: Schnelles Finden von Unit Klauseln Unit-Klausel = Klausel mit n-1 Literalen auf 0, 1 Literal auf ? Lösung (z.B. in chaff): Pro Klausel 2 Beobachter, die auf ?-Literale zeigen Solange beide Beobachter auf ?-Literale zeigen, wird Klausel nicht angerührt

7 Beispiel x1 x2 x3 x4 x5 x2=0 x1 x2 x3 x4 x5 x1=0 x1 x2 x3 x4 x5 x4,5=0 x1 x2 x3 x4 x5 backtrack x4,x5:= ? x1 := 1 x1 x2 x3 x4 x5 Beim Backtracking bleiben Beobachter, wo sie sind konst. Zeit Beobachter wandern zu selten gesetzten Literalen Klausel muß seltener besucht werden Lernstrategie

8 2. Trick: Konfliktanalyse Konflikt = leere Klausel = Literal, für das sowohl 0 als auch 1 propagiert wird Idee: Grund für den Widerspruch wird explizit als Klausel zur Klauselbasis hinzugefügt Lernen denselben Fehler nicht noch mal machen Suchraum einschränken Grund wird durch Analyse des Implikationsgraphen generiert, der Ursache/Wirkung von Wertzuweisungen dokumentiert

9 3. Trick: Nichtchronologisches Backtracking, Zufällige Restarts Auf Grund der Konfliktanalyse nicht die letzte, sondern eine frühere Entscheidung rückgängig machen Von Zeit zu Zeit einfach von vorn anfangen, und (randomisiert) an anderen Variablen verzweigen Wissen über bisherige Suche in Form der gelernten Klauseln verfügbar Möglichkeit, komplizierten Teilen des Suchraums zu entfliehen

10 4. Trick: Heuristiken für Entscheidungen Grasp: Setze die Variable, die in den meisten offenen Klauseln vorkommt Chaff: Setze Variable, die häufig in gelernten Klauseln vorkommt

Der Stålmarck-Algorithmus patentierter Algorithmus, um Tautologie/Erfüllbarkeit beliebiger Formeln zu entscheiden weicht vom üblichen Decide/Deduce/Backtrack ab

12 Datenstruktur: Triplets nehme für jede Teilformel von eine frische Variable x her, substituiere jede Benutzung von durch x, und nehme x in die Formelmenge auf 1. Beseitige Negationen: de Morgan + ¬ x (x ) p (q p) x1 (q p) x2 (p x1) Beispiel: wird zu Triplet: ( )

13 Start des Algorithmus Tautologie: Setze Top-Level-Variable auf 0, suche konsistente Belegung SAT: Setze Top-Level-Variable auf 1, suche konsistente Belegung

14 Simple Rules 0 (y z) y/1 z/0 x (0 z) x/1 x (x z) x/1 x (y 1) x/1 x (y 0) x/¬y x (y y) x/1 x (1 z) x/z

15 Wirkung der simple rules 0 1 naiv: ? Stålmarck: 0 1 ? ?? ?

16 Dilemma rule 1 2 (x/0) (x/1) 1 2 Ableitung 1 Ableitung 2 = Eine der Subst., falls andere zu Konflikt führt; = diejenigen Subst., die in beiden Zweigen gleich sind, sonst Zusammenführen der Zweige Vermeide redundante Arbeit in verschiedenen Zweigen

17 Ableitungsstufen Stufe 0 x y x Stufe 1 x Stufe 2 yz zy usw. Stålmarcks Algorithmus: for k = 0,..., #Var do ex.? Abl der Stufe k end

18 Härte von Formeln ist k-hart, wenn Algorithmus frühestens in Runde k terminiert Die meisten Formeln aus industriellem Kontext sind 1-leicht ist k-leicht, wenn Algorithmus spätestens in Runde k terminiert 2-hard = too hard Laufzeit von Stålmarcks Algorithmus hängt viel mehr von der Härte des Ausdrucks ab als von seiner Länge

19 Zusammenfassung SAT-Checker arbeiten hevorragend auf Problemen mit Struktur einige – Variablen neben den vollständigen Checkern ex. noch viele unvollständige Verfahren

SAT-basiertes Model Checking Idee: Übersetze Model Checking Problem in ein Erfüllbarkeitsproblem Ausgangspunkt: boolesche Kodierung des Zustandsraums, analog zu BDD-basiertem Model Checking Zustandsüberführungsrelation als boolesche Formel T(x, x), ebenfalls analog BDD-Methode

21 Beispiel:3-bit-Zähler x0 x1 (¬ x1 x0) x2 (¬x2 (x1 x0))

22 Symbolische Pfade Zustand mit Eigenschaft E ist von einem Zustand mit Eigenschaft I in genau k Schritten erreichbar: I(x (0) ) T(x (0),x (1) )... T(x (k-1),x (k) ) E(x (k) ) Suche bis zum kleinsten k, das erfüllt x (0)... x (k) y (0)... y (j-1) I(x (0) ) T(x (0),x (1) )... T(x (k-1),x (k) ) [ I(y (0) ) T(y (0),y (1) )... T(y (j-1),x (k) ) ] j<k

23 Beschränkte Semantik von LTL Idee: beschreiben Gegenbeispiel der Länge k 1 k 1 l k Ziel: Wenn beschränkter Pfad erfüllt, so auch jede unendliche Fortzsetzung Lassopfade: beschr. Semantik = originale Semantik kreisfrei: k F i k: (i) k-i k G false die anderen Operatoren so, wie man es sich denkt

24 Übersetzung der Semantik I(x (0) ) T(x (0),x (1) )... T(x (k-1),x (k) ) 0 k p i k := p(x (i) ) i k := i k i k ¬ i k := ¬ i k G i k := false F i k := j=i k j k X i k := falls i < k, dann i+1 k sonst false U i k := j=i k ( j k n=j k n k ) kreisfrei:

25 Übersetzung der Semantik I(x (0) ) T(x (0),x (1) )... T(x (k-1),x (k) ) T(x (k),x (l) ) l = 0 k l 0 k l p i k := p(x (i) ) l i k := l i k i k l ¬ i k := ¬ l i k l G i k := n=min(j,l) k l n k l F i k := j=min(i,l) k l j k l X i k := l k succ(i) succ(i) = i+1 falls i < k, sonst l l U i k := j=i k ( l j k n=j j-1 l n k ) j=l i-1 ( l j k n=j k l n k n=l j-1 l n k ) Lasso:

26 Übung 1 Löse folgendes Erfüllbarkeitsproblem mit dem Davis-Putnam-Algorithmus! (r s) (¬p q) (¬r s) (¬q p) (¬r ¬s p) (¬p ¬q r) (¬p ¬q ¬r)

27 Übung 2 Konstruiere unter Verwendung des Stålmarck-Algorithmus eine Belegung, die jede der folgenden Formeln erfüllt! (p q), (p r), ((q r) p), (q (s t)), (q (s u)), (q ((t u) s))

28 Übung 3 Generiere die aussagenlogische Formel, die einen kreisfreien Pfad der Länge 2 für den 3-Bit-Zähler (Anfangszustand: alle Bits auf Null) beschreibt, der die Formel F (x1 U ¬ x0) bezeugt! Ist diese Formel erfüllbar?