1 / 19

Computergest ützte Verifikation

Computergest ützte Verifikation. 21.5.2002. (1. Systeme 2. Spezifikationen 3. explizites Model Checking). 4. Symbolisches Model Checking. 4.1 CTL Model Checking mit Binary Decision Diagrams. (4.2 SAT-basiertes Model Checking). Binary Decision Diagrams (BDD).

riley-moon
Télécharger la présentation

Computergest ützte Verifikation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computergestützte Verifikation 21.5.2002

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

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

  4. x4=? x4=? x3=? x4=? x3=? x4=? x4=? x4=? x4=? x3=? x3=? x2=? x2=? x1=? x4=? Binary Decision Tree 0 1 1 0 0 0 1 0 1 0 Y N N Y N N N N N N N N Y N N Y 0011 c M 1000 v M

  5. x4=? x1=? x2=? x2=? x3=? x4=? x4=? x4=? x3=? Reduktion des Baums 0 1 Y N N Y N N N N

  6. x1=? x2=? x2=? x3=? x4=? x4=? x4=? x3=? Reduktion des Baums 0 1 Y N

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

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

  9. Abhängigkeit von Variablenordnung Manche Funktionen haben kleine (polynomiell große) BDD, unabhängig von der Variablenordnung Manche Funktionen haben (exponentiell) 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

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

  11. Mengen größe N Y BDD Größe Mengengröße vs. BDD-Größe N N Y Y N Y 0 4 8 12 16 Elemente in Menge

  12. 4.1.2 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. Operationen auf BDD APPLY(op,f1,f2) f1,f2 n-stellig f(x1,....,xn) := f1(x1,.....,xn) op f2(x1,.......,xn) “Shannon-Expansion” f(x1,....,xn)  ( x1  f(1,x2,....,xn) )  ( ¬x1  f(0,x2,....,xn) ) x1  ( f1(1,x2,....,xn) op f2(1,x2,...,xn) )  ¬x1  ( f1(0,x2,....,xn) op f2(0,x2,....,xn) )

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

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

  16. Abgeleitete Operationen f(x1,...,0,....,xn)  f(x1,....,1,...,xn) xi . f(x1,...,xi,...,xn) (= 2 x RESTRICT, 1 x APPLY) 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) • Mengenoperationen: • = 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)

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

  18. Übung 2 Welche Funktion repräsentiert dieses BDD? x1=? 0 1 x2=? x2=? x3=? x4=? Y N

  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?

More Related