Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Aurel Zank Geändert vor über 9 Jahren
1
1 Computergestützte Verifikation 24.5.2002
2
2 Binary Decision Diagrams (BDD) 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
3
3 Binary Decision Tree x1=? x2=? x3=? x4=? x3=?x4=?x3=?x4=? YYYYNNNNNNNNNNNN 0 1 0 0 1 1 0011 c M 1 0 0 0 1000 v M
4
4 Ordered Binary Decision Diagram x1=? x2=? x3=?x4=? YN keine äquivalenten Teilbäume Keine redundanten Knoten Variablen auf jedem Pfad in gleicher Reihenfolge 0 1 0011 c M 1000 v M 0 0 1 1 1 0 (00)
5
5 Mengengröße vs. BDD-Größe Y NYN YN YN 0481216 Elemente in Menge Mengen größe BDD Größe
6
6 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| )
7
7 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| )
8
8 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)
9
9 4.1.3 CTL Model Checking Arbeiten mit SAT = {s | s } - repräsentiert als BDD und T(s,s’) – der Zustandsübergangsrelation, auch als BDD T(s,s’) = 1 gdw. (s,s’) in E T(s,s’) kann aus einer Systembeschreibung als nextstate-Funktion generiert werden System erfüllt gdw. I SAT
10
10 Beispiel:3-bit-Zähler x0’ x0 x1’ (¬ x1 x0) x2’ (¬ x2 (x0 x1 ))
11
11 CTL Model Checking –einfache Fälle 1.Elementare Aussagen – setzen BDD voraus, normalerweise kein Problem 2. ¬ -- einfache Anwendung von APPLY 3. SAT EX y1.... yn[T(x1,...,xn,y1,....,yn) SAT (y1,....,yn)] 4. AX ¬ EX ¬ bleiben: EU und EG – Rest ist dann ableitbar per Tautologien
12
12 Model Checking EU geg: SAT , SAT ges: SAT E( U wissen: SAT SAT E( U wissen auch: Wenn s’ in SAT E( U und s in SAT und T(s,s’), so ist auch s in SAT E( U und schließlich: Weiter nix Z := SAT do Z Z (SAT SAT EX Z until nothing changes SAT E( U :=Z Berechnen kleinsten Fixpunkt eines monoton wachsenden Mengenoperators
13
13 Model Checking EG geg: SAT ges: SAT EG wissen: SAT EG SAT wissen auch: Wenn s’ in SAT EG und s in SAT und T(s,s’), so ist auch s in SAT EG und schließlich: Weiter nix Z := SAT do Z Z SAT EX Z until nothing changes SAT EG := Z Berechnen größten Fixpunkt eines monoton fallenden Mengenoperators
14
14 By the way.... -Kalkül einfache Aussagen (Mengen) + boolesche Operationen (Mengenoperationen) + “kleinster Fixpunkt von... “ + “größter Fixpunkt von...” wird auch als Spezifikationssprache verwendet
15
15 Bottlenecks 1. Größe des BDD für Z in den Fixpunktberechnungen Lösung: Gelegentliches Umordnen der Variablen, z.B. Sifting = tausche 2 benachbarte Variablen und schaue, ob BDD dadurch kleiner wird 2. Das BDD für die Übergangsrelation T Lösung: Partitionierung von T
16
16 Partitionierung der Übergangsrelation Idee: T ist meistens Konjunktion Teilformeln T1: x0’ x0 T2: x1’ (¬ x1 x0) T3: x2’ (¬ x2 (x0 x1)) Beispiel: T T1 T2 T3 Partitionen kleiner als T, günstigenfalls auch in der Summe mindestens: Eine Partition hängt normalerweise nicht von allen Variablen ab, ist also auf jeden Fall flacher als das BDD von T Nutzt das?
17
17 Frühe Quantifizierung T wird verwendet für EX: Y [T(X,Y) SAT (Y)] partitioniert: Y [T1(X,Y) ... Tn(X,Y) SAT (Y)] Normalerweise sind und nicht vertauschbar, es sei denn, in einer Seite von kommt die quantifizierte Variable nicht vor Yi := { y in Y | y kommt nicht in T1...Ti-1 vor} Y1(T1(X,Y) Y2 (T2(X,Y) (... Yn (Tn(X,Y) SAT (Y) ))...)) Effekt: BDD von Yi Ti(X,Y) hängt nicht von Variablen in Yi ab, ist also flacher als das von BDD von Ti(X,Y) kleinere BDDs in Zwischenschritten!!!
18
18 4.1.4 Fairness Arbeiten mit zustandsbasierter Fairness und schwachen Fairnessannahmen geg: BDDs C1,..., Cn, stehen für Fairnessannahmen GF C1,...., GF Cn Ansatz: trickreiche Adaption der Fixpunktoperationen
19
19 Faires EG fair: Z := SAT do Z Z k=1 n SAT EX E( U (Z Ck)) until nothing changes SAT E C G := Z unfair: Z := SAT do Z Z SAT EX Z until nothing changes SAT EG := Z
20
20 Andere faire Operatoren E C ( U ) = E( U ( E C G true)) E C X = EX( E C G true) Rest: Tautologien
21
21 Übung 1 Gib einen eigenen Fixpunktalgorithmus zur Berechnung von SAT EF an!
22
22 Übung 2 Wende die Formel zur frühen Quantifizierung (Folie 17) auf die partitionierte Transitionsrelation des 3-bit-Zählers auf Folie 16 an! Wie groß ist die maximale Tiefe (Zahl der vorkommenden Variablen) eines Zwischenresultats bei dieser Berechnung?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.