4. OBDDs und Modellüberprüfung

Werbung
4. OBDDs und Modellüberprüfung
OBDD – “Ordered Binary Decision Diagrams”
“Geordnete binäre Entscheidungsdiagramme”
Binäres Entscheidungsdiagramm: in der einfachsten Form ein binärer Entscheidungsbaum, in dem bei jedem (inneren) Knoten eine binäre Entscheidung bezüglich eines
aussagenlogischen Symbols x (einer “Variablen”) getroffen wird, d.h. verzweigt mit
“x wahr” bzw. “x falsch”.
Geordnet: die aussagenlogischen Symbole sind (total) geordnet bezgl. der Reihenfolge,
in der sie entlang jedes Pfades von Wurzel zu Blatt auftreten.
• OBDD-Verfahren zum schnellen Entscheiden der Gültigkeit von aussagenlogischen
Formeln
• ursprünglich im Kontext der Hardware-Verifikation entwickelt
• In diesem Anwendungsbereich sehr effizient (z.B. als Methoden zum Nachweis der
Äquivalenz von aussagenlogischen Ausdrücken);
oft um mehrere Größenordnungen schneller als andere Verfahren.
• Grundlage der Implementierung vieler Systeme zur Modellüberprüfung
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–1
OBDDs: Grundidee
- Logische Formel wird umgeformt in eine äquivalente Formel in bedingter Normalform: alle logischen Verknüpfungen werden durch (Kombinationen von)
if then else ersetzt.
Bem.: Bedingte Normalformen allein sind nicht eindeutig.
- Bei der Umformung werden die zu testenden Symbole in eine vorgegebene Reihenfolge gebracht.
Dadurch wird eine kanonische, eindeutige bedingte Normalform erreicht.
Der Test, ob zwei aussagenlogische Formeln äquivalent sind, wird dadurch reduziert
auf den Test, ob ihre kanonischen Normalformen identisch sind.
- Die Umformung in bedingte Normalform kann zu exponentiellem Wachstum der
Größe führen.
Durch Anwendung verschiedener Codierungstechniken kann die Effizienz enorm
gesteigert werden.
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–2
OBDDs: Umformung in bedingte Form
mit if (A, B , C ) als Kurzform für if A then B else C
logisch äquivalent zu A ∧ B ∨ ¬A ∧ C
Transformationen (A, B , C sind beliebige Terme):
A∧B
A∨B
¬A
A⇒B
A⇔B
A⊕B
→
→
→
→
→
→
if (A, B , F)
if (A, W, B )
if (A, F, W)
if (A, B , W)
if (A, B , if (B , F, W))
if (A, if (B , F, W), B )
v.Henke: Computergestützte Modellierung und Verifikation SS2007
(“exkl. Oder”)
3–3
OBDDs: Umformung in bedingte Form (2)
x steht für eine Variable
A[W/x ] bezeichnet die Formel, die sich ergibt, wenn jedes Vorkommen von x in
Formel A durch W ersetzt wird; analog A[F/x ]
(1)
(2)
(3)
(4)
(5)
(6)
if (W, A, B )
if (F, A, B )
if (A, B , B )
if (if (A, B , C ), D, E )
if (x , A, B )
x
→
→
→
→
→
→
A
B
B
if (A, if (B , D, E ), if (C , D, E ))
if (x , A[W/x ], B [F/x ])
if (x , W, F)
für Variable (Symbol) x als Blatt
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–4
OBDDs: Bedingte Normalformen
• Die Konstanten W oder F, oder
• ein Term der Form if (x , A, B ), in dem
- x ein Symbol ungleich einer der Konstanten W oder F ist (Regeln (1), (2), (4));
- A und B
- ungleich (Regel (3)) und
- in bedingter Normalform sind (rekursiver Prozeß bzw. Regel (6) im letzten
Schritt) und
- kein Vorkommen von x enthalten (Regel (5)).
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–5
OBDDs: Beispiel einer Normalisierung
if (if (a, c, b), if (a, b, W), W)
= if (a, if (c, if (a, b, W), W), if (b, if (a, b, W), W))
= if (a, if (c, if (W, b, W), W), if (b, if (F, b, W), W))
= if (a, if (c, b, W), if (b, W, W))
= if (a, if (c, b, W), W)
= if (a, if (c, if (b, W, F), W), W)
v.Henke: Computergestützte Modellierung und Verifikation SS2007
(4)
(5)
(1), (2)
(3)
(6)
3–6
OBDDs: Kanonische (bedingte) Normalform
Kanonische (bedingte) Normalform: Bedingte Normalform, in der die Folge von
Symbolen in Testpositionen entlang eines jeden Pfads von der “Wurzel” zu einem
“Blatt” einer vorgegebenen Ordnung auf der Menge der Symbole genügt.
Jeder aussagenlogische Ausdruck kann in eine solche kanonische Normalform gebracht
werden durch “Liften” des kleinsten Symbols x aus dem Ausdruck A, d.h. durch eine
Transformation
A → if (x , A[W/x ], A[F/x ])
und anschließender weiterer Reduktion und Kanonisierung.
Beispiel: (x ⊕ z ) ⊕ y
Alphabetische Ordnung der Symbole ergibt kanonische bedingte Normalform:
if (x , if (y, if (z , W, F), if (z , F, W)), if (y, if (z , F, W), if (z , W, F)))
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–7
Reduziertes BDD
x
y
1
y
0
x
x
y
0
0
gestrichelte Linie:
0 (= F)
durchgezogene Linie:
1
y
y
0
1
0
1 (= W)
1. Schritt: Verschmelzung gleicher Blattknoten
2. Schritt: Eliminierung von Knoten ohne Entscheidung
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–8
Reduktion von OBDDs: reduce
Systematisches Vorgehen zur Reduktion: Markierung der Knoten des OBDD (z.B. mit
natürlichen Zahlen in Folge)
• Markiere die Blattknoten (z.B. mit 0 und 1);
Blattknoten mit gleichem Wert erhalten dieselbe Marke.
• Ausgehend von den Blättern werden schichtenweise die inneren Knoten markiert.
• Ein Knoten n, dessen 0- und 1-Nachfolger dieselbe Marke tragen, wird auch mit
dieser Marke markiert.
• Wenn es einen weiteren Knoten m mit derselben Variablen gibt, so dass die Marken
der 0- bzw. 1-Nachfolger von n und m jeweils übereinstimmen, erhält Knoten n
die Marke von m.
• Andernfalls erhält n eine neue Marke.
Nach Abschluß der Markierung werden alle gleich-markierten Knoten verschmolzen
und Kanten entsprechend modifiziert.
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3–9
reduce – Beispiel
#4
#3
#4
x1
#2
x2
#3
x2
x1
x2
Reduce
=⇒
#2
#0
0
#2
x3
#1
1
#2
#0
0
#1
x3
x3
1
v.Henke: Computergestützte Modellierung und Verifikation SS2007
#0
0
#1
1
3 – 10
Effekt der Variablenordnung
OBBD für die Formel (x1 + x2) · (x3 + x4) · (x5 + x6) mit Variablenordnung:
(a) (x1, x2, x3, x4, x5, x6),
(b) (x1, x3, x5, x2, x4, x6)
x1
x1
x3
x2
x3
x4
x3
x5
x2
x5
x2
x5
x2
x5
x5
x2
x4
x4
x6
x6
0
1
0
v.Henke: Computergestützte Modellierung und Verifikation SS2007
1
3 – 11
Operationen auf OBDDs
Im folgenden werden abkürzende Schreibweisen verwendet:
0, 1 stehen für F und W;
· und + stehen für ∧ bzw. ∨
x steht für ¬x
Bf bezeichnet das OBDD für die boolsche Formel f usw.
op ist eine boolsche Operation
Benötigte Hilfsoperationen:
apply, restrict, exists
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 12
OBDD-Operationen: apply
apply(op, Bf , Bg ) – berechnet das reduzierte OBDD für die Formel f op g
op eine logische Verknüpfung
Bf , Bg als OBDDs für f bzw. g bereits vorhanden
Vorgehen beruht auf Shannon-Expansion (vgl. oben):
f ⇔ x · f [1/x ] + x · f [0/x ]
Für apply:
f op g ⇔ x · (f [1/x ] op g[1/x ]) + x · (f [0/x ] op g[0/x ])
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 13
OBDD-Operationen: apply (2)
Fallunterscheidung je nach den Markierungen vf bzw. vg der Wurzelknoten von Bf
und Bg :
(a) vf = vg : Bfopg = if (vf , apply(op, tA, tB ), apply(op, fA, fB ))
(b) vf < vg : Bfopg = if (vf , apply(op, tf , Bg ), apply(op, ff , Bg )) Wegen Ordnung kann
vA in B nicht auftreten; es reicht, die Teilausdrücke zu kanonisieren.
(c) vg < vf : symmetrisch zu (b)
Das Ergebnis muss im allgemeinen anschließend reduziert werden.
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 14
apply – Beispiel
R1
R2
S1
x1
x1
x2
x3
R3
x3
S2
+
R4
S3
x4
R5
R6
0
1
v.Henke: Computergestützte Modellierung und Verifikation SS2007
x4
S4
S5
0
1
3 – 15
(R1 , S1 )
x1
(R2 , S3 )
x2
(R4 , S3 )
x4
(R5 , S4 )
(R3 , S2 )
x3
(R3 , S3 )
x3
(R4 , S3 )
x4
(R6 , S5 )
(R6 , S5 ) (R4 , S3 )(R6 , S3 )(R5 , S4 )(R6 , S5 )
x4
x4
(R5 , S4 ) (R6 , S5 ) (R6 , S4 ) (R6 , S5 )
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 16
x1
x2
x3
x4
0
v.Henke: Computergestützte Modellierung und Verifikation SS2007
1
3 – 17
OBDD-Operationen: restrict
restrict(b, x , Bf ) – berechnet reduziertes OBDD für f [b/x ] mit derselben Variablenordnung wie Bf (b ∈ {0, 1})
Vorgehen:
Für jeden mit x markierten Knoten werden hereinkommende Kanten zum entsprechenden Nachfolger-Knoten umgeleitet; der Knoten selbst wird entfernt.
Der sich ergebende BDD muss anschließend reduziert werden.
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 18
restrict – Beispiel
f := x1 · y1 + x2 · y2 + x3 · y3 und Restriktionen bezgl. x3
x1
x1
x1
y1
y1
y1
x2
x2
x2
y2
y2
y2
x3
y3
0
y3
1
0
v.Henke: Computergestützte Modellierung und Verifikation SS2007
1
0
1
3 – 19
OBDD-Operationen: exists
exists(x , Bf ) – berechnet reduziertes OBDD für die existentiell quantifizierte
Formel ∃ x .f
∃ x .f := f [0/x ] + f [1/x ]
Entsprechend kann exists implementiert werden als
exists(x , Bf ) = apply(+, restrict(0, x , Bf ), restrict(1, x , Bf ))
Effizienteres Vorgehen: OBDD bleibt oberhalb des Auftretens von x unverändert.
Daher:
Für jedes Auftreten von x , berechne + der beiden Unter-BDDs, setze das Ergebnis
für Knoten ein.
v.Henke: Computergestützte Modellierung und Verifikation SS2007
3 – 20
exists – Beispiel
f wie vorher; B1 = restrict(0, x3, Bf ), B2 = restrict(1, x3, Bf )), apply(+, B1, B2)
x1
x1
x1
y1
y1
y1
x2
x2
x2
y2
y2
y2
y3
0
1
0
v.Henke: Computergestützte Modellierung und Verifikation SS2007
y3
1
0
1
3 – 21
exists – Beispiel (2)
f wie vorher, ∃ x3.f , ∃ x2. ∃ x3.f
x1
x1
x1
y1
y1
y1
x2
x2
y2
y2
y2
x3
0
y3
y3
y3
1
0
v.Henke: Computergestützte Modellierung und Verifikation SS2007
1
0
1
3 – 22
Herunterladen