Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Computergestützte Verifikation 21.5.2002. 2 4. Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Computergestützte Verifikation 21.5.2002. 2 4. Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen."—  Präsentation transkript:

1 1 Computergestützte Verifikation

2 2 4. Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen 3. explizites Model Checking) (4.2 SAT-basiertes Model Checking)

3 3 Binary Decision Diagrams (BDD) Ausgangspunkt: Boolesche Funktionen = Mengen von Bit-Vektoren: M f M f M (x1,....,xn) = W gdw. [x1,....,xn] M Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model Checking mit BDD Fairness

4 4 Binary Decision Tree x1=? x2=? x3=? x4=? x3=?x4=?x3=?x4=? YYYYNNNNNNNNNNNN c M v M

5 5 Reduktion des Baums x1=? x2=? x3=?x4=? x3=?x4=? YYNNNNNN 0 1

6 6 Reduktion des Baums x1=? x2=? x3=?x4=? x3=? YN 0 1

7 7 Ordered Binary Decision Diagram x1=? x2=? x3=?x4=? YN keine äquivalenten Teilbäume Keine redundanten Knoten Variablen auf jedem Pfad in gleicher Reihenfolge c M 1000 v M (00)

8 8 Verschiedene Variablenordnungen YN x1=? x2=? x3=? x4=? x1=? x3=? x2=? x4=? Y N

9 9 Abhängigkeit von Variablenordnung Manche Funktionen haben kleine (polynomiell große) BDD, unabhängig von der Variablenordnung Für viele Funktionen kann die Größe des BDD zwischen poly und exp schwanken, abhängig von Variablenordnung Optimale Variablenordnungen sind nicht effizient berechenbar Viele, viele Heuristiken Reordering (statisch oder dynamisch) hilft bei Speicherproblemen Manche Funktionen haben (exponentiell) große BDD, unabhängig von der Variablenordnung

10 10 Normalform Bei gegebener Variablenordnung ist das entstehende BDD eindeutig bestimmt! Mengengleichheit, Emptiness können effizient entschieden werden

11 11 Mengengröße vs. BDD-Größe Y NYN YN YN Elemente in Menge Mengen größe BDD Größe

12 Operationen auf BDD Eingabe: 1-2 (reduzierte!) BDD Ausgabe: neues (auch reduziertes!) BDD einfaches RESTRICT: f n-stellig b in {0,1} RESTRICT(f,b) (n-1)-stellig f(x2,.....,xn) := f(b,x2,....,xn) Implementation: root := root.child[b]

13 13 Operationen auf BDD APPLY(op,f1,f2) f1,f2 n-stellig f(x1,....,xn) := f1(x1,.....,xn) op f2(x1, ,xn) f(x1,....,xn) ( x1 f(1,x2,....,xn) ) ( ¬x1 f(0,x2,....,xn) ) Shannon-Expansion x1 ( f1(1,x2,....,xn) op f2(1,x2,...,xn) ) ¬x1 ( f1(0,x2,....,xn) op f2(0,x2,....,xn) )

14 14 Implementation von APPLY Y N e b YN f = a c d g h i af bg dY Y dY Y eN YN YN Y N NN NN N A eN A bg B B ch eN Ni NN NY NY Y Y N A Y A B Ni A ch A af C C B A C O ( |BDD1| |BDD2| )

15 15 RESTRICT geg: f n-stellig b in {0,1} i in {1,...,n} f(x1,......,xn) := f(x1,....x i-1,b,x i+1,.....,xn) Implementation ähnlich zu APPLY O( |BDD| )

16 16 Abgeleitete Operationen xi. f(x1,...,xi,...,xn) f(x1,...,0,....,xn) f(x1,....,1,...,xn) (= 2 x RESTRICT, 1 x APPLY) Mengenoperationen: 4 = APPLY(, ) Komplement = tausche Y und N = APPLY(, ) Relation = Menge von Paaren = BDD der Länge 2n R1 o R2: y1... yn f1(x1,...,xn,y1,...,yn) f1(y1,...,yn,z1,...,zn) Substitution: h(x1,...,xn) := f(x1,....g(x1,....,xn),....,xn = g f(x1,...,1,...xn) ¬g f(x1,....,0.,....,xn) ( = 2 x RESTRICT, 3 x APPLY)

17 17 Übung 1 Konstruiere ein reduziertes BDD zu folgender Funktion x1 x2 x3 f(x1,x2,x3)

18 18 Übung 2 Welche Funktion repräsentiert dieses BDD? YN x1=? x2=? x3=? x4=? 01

19 19 Übung 3 Wieviele Anwendungen von APPLY und RESTRICT sind notwendig, um zu gegebenen BDDs für Mengen M,N und K ein BDD für (M \ N) (N \K) zu konstruieren?


Herunterladen ppt "1 Computergestützte Verifikation 21.5.2002. 2 4. Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen."

Ähnliche Präsentationen


Google-Anzeigen