Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Symbolisches Model Checking mit Binary Decision Diagrams Im Rahmen.

Ähnliche Präsentationen


Präsentation zum Thema: "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Symbolisches Model Checking mit Binary Decision Diagrams Im Rahmen."—  Präsentation transkript:

1 WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Symbolisches Model Checking mit Binary Decision Diagrams Im Rahmen des Seminars "Ausgewählte Kapitel des Software Engineering insb. Formale Spezifikation" Andreas Jacobs

2 2 WIRTSCHAFTS INFORMATIKGliederung 1.Motivation 2.Model Checking 3.Binary Decision Diagrams 4.Symbolisches Model Checking 5.Fazit

3 3 WIRTSCHAFTS INFORMATIK 1. Motivation Beweis der Korrektheit Deduktive Verifikation Model Checking Verifikation von Hardware- und Softwaresystemen Testfälle Testen Simulation - Unvollständigkeit + einfache Verfahren + große Erfahrung - aufwendige Verfahren - bei kleinen Systemen + Beweis der Korrektheit

4 4 WIRTSCHAFTS INFORMATIK 1. Motivation Warum Verifikation von Hardware- und Softwaresystemen? Hardware- und Softwaresysteme finden immer größere Verbreitung ­ Eingebettete Systeme (Handys, Autos, usw.) ­ Flächendeckende Verbreitung im betrieblichen Bereich Abhängigkeit von den Systemen Systeme werden immer komplexer ­ Mooresches Gesetz ­ Betriebssystementwicklung Fehler schwieriger zu finden

5 5 WIRTSCHAFTS INFORMATIK 1. Motivation Pentium-Division (1994) Fehler verursachen hohe Kosten Ariane 5 (1996) Die neue "Ariane 5 ESC-A" auf der Startrampe. (Foto: ESA) Quelle:

6 6 WIRTSCHAFTS INFORMATIKGliederung 1.Motivation 2.Model Checking 2.1 Modellbildung 2.2 Spezifikation 2.3 Verifikation 3.Binary Decision Diagrams 4.Symbolisches Model Checking 5.Fazit 2. Model Checking

7 7 WIRTSCHAFTS INFORMATIK 2. Model Checking + automatisch -bei Fehlern Ausgabe eines Fehlerpfades -kein Eingriff während des Algorithmus nötig - endlicher Zustandraum -state expolsion problem

8 8 WIRTSCHAFTS INFORMATIK 2.1 Modellbildung Sei AP eine Menge atomarer Aussagen. Als Kripke-Struktur wird ein Tripel M = (S, R, L) über AP bezeichnet mit einer totalen Transitionsmenge R S×S, so dass jeder Zustand s S einen Nachfolger t S in der Form hat, dass gilt R(s,t), einer Funktion L, die jedem Zustand s S eine Menge der in s wahren atomaren Aussagen zuweist. S als endliche Menge von Systemzuständen,

9 9 WIRTSCHAFTS INFORMATIK 2.1 Modellbildung Ein Pfad mit einem Startzustand s ist eine unendliche Folge von Zuständen π = s 0,s 1,s 2,s 3,…, so dass s 0 = s und R(s i, s i+1 ) für alle i 0 gilt. Beispielsweise s 1,s 2,s 2,s 5,s 6,….

10 10 WIRTSCHAFTS INFORMATIK 2.1 Modellbildung state explosion problem Variable mit n Bits hat 2 n Zustände. Bei n parallelen, unabhängigen Prozessen gibt es n! unterschiedliche Ausführungsreihenfolgen. Lösungsansätze: Symbolische Darstellung der Zustandsmenge Partial Order Reduction

11 11 WIRTSCHAFTS INFORMATIK 2.2 Spezifikation Eine CTL Formel kann folgende Elemente enthalten: Aussagevariablen (atomar): (vgl. Menge AP der Kripke-Struktur), Boolesche Operatoren:,,… (16 Operatoren), Pfadquantoren: A (auf allen Pfaden gilt), E (auf mindestens einem Pfad gilt), temporale Operatoren: X (Nachfolger), F (zukünftig), G (immer), U (bis) und R (Komplement zu U). Auf einen Pfadquantor folgt immer ein temporaler Operator und alle 10 Kombinationen lassen sich durch EX, EG und EU ausdrücken.

12 12 WIRTSCHAFTS INFORMATIK 2.2 Spezifikation CTL Formeln

13 13 WIRTSCHAFTS INFORMATIK 2.3 Verifikation 2.Model Checking 2.1 Modellbildung:Kripke-Struktur 2.2 Spezifikation:CTL Formel 2.3 Verifikation Fixpunkte kleinste/größte Fixpunkte CTL Model Checking 2.3 Verifikation Es muss ein Algorithmus definiert werden, mit dem man in der Lage ist zu prüfen, ob eine Kripke-Struktur einer CTL Formel genügt.

14 14 WIRTSCHAFTS INFORMATIK Fixpunkte ({s1,s2,s3}) bzgl. der Teilmengenrelation

15 15 WIRTSCHAFTS INFORMATIK Fixpunkte

16 16 WIRTSCHAFTS INFORMATIK Kleinste / größte Fixpunkte

17 17 WIRTSCHAFTS INFORMATIK Kleinste / größte Fixpunkte

18 18 WIRTSCHAFTS INFORMATIK function getExtremeFixpoint(τ: Funktional, Z{false,true}):Z; begin Z = τ(Z); while(ZZ)do Z = Z; Z = τ(Z); end while; return(Z); end function CTL Model Checking

19 19 WIRTSCHAFTS INFORMATIK Z = {s 1,s 2,s 3,s 4,s 5,s 6 }Z = {s 1,s 2,s 3,s 5 } Z = true Z= τ( true ) Z= τ(τ( true )) Z= τ(τ(τ( true ))) Z = {s 1,s 2,s 3 } CTL Model Checking: Beispiel 1 s1s1 s2s2 s3s3 s4s4 s5s5 s6s6 Z = true; while(ZZ)do return(Z); Z= τ(Z); Z = Z; Z = τ(Z); end while; pp pr p, r == τ = EG p

20 20 WIRTSCHAFTS INFORMATIK CTL Model Checking: Beispiel 2 1. Hallo 2. Hallo 3. Hallo 4. Hallo E[p U r] =

21 21 WIRTSCHAFTS INFORMATIKGliederung 1.Motivation 2.Model Checking 3.Binary Decision Diagrams 3.1 Ordered Binary Decision Diagrams 3.2 Operationen auf OBDDs 3.3 Komplexitätsbetrachtungen 4.Symbolisches Model Checking 5.Fazit 3. Binary Decision Diagrams

22 22 WIRTSCHAFTS INFORMATIK 3.1 Ordered Binary Decision Diagrams 3.Binary Decision Diagrams 3.1 Ordered Binary Decision Diagrams Definition Binary Decision Diagrams Ordnung und Reduktion Problem der Variablenordnung 3.2 Operationen auf OBDDs 3.3 Komplexitätsbetrachtungen 3.1 Ordered Binary Decision Diagrams

23 23 WIRTSCHAFTS INFORMATIK Definition Binary Decision Diagram Ein Binary Decision Diagram (BDD) stellt eine Boolesche Funktion als einen gerichteten, azyklischen Graphen dar. Alle Endknoten (Blätter) sind entweder mit 0 oder 1 markiert. Jeder andere Knoten k repräsentiert eine binäre Variable x i und hat genau zwei Nachfolger: -lo(k), wenn x i =0 -hi(k), wenn x i =1

24 24 WIRTSCHAFTS INFORMATIK Ordnung und Reduktion Ordered BDD (Randal E. Bryant 1986) 1.Ordnung des BDD -> OBDD 2.Reduktion des OBDD -> (Reduced) OBDD Effiziente Darstellung von (vielen) Booleschen Funktionen durch zwei Einschränkungen auf BDDs:

25 25 WIRTSCHAFTS INFORMATIK Ordnung und Reduktion 1.Ordnung totale Ordnung auf die Menge der Variablen, so dass für jeden Knoten k mit dem Wert x i gilt: - n {lo(k), hi(k)} mit x j, dass gilt: i,j 1..n und ji

26 26 WIRTSCHAFTS INFORMATIK Ordnung und Reduktion 2.Reduktion (zwei Regeln) verdeckung

27 27 WIRTSCHAFTS INFORMATIK Ordnung und Reduktion verdeckung Beispiel:

28 28 WIRTSCHAFTS INFORMATIK Ordnung und Reduktion Ein Ordered Binary Decision Diagram (OBDD) stellt eine Boolesche Funktion als einen gerichteten, azyklischen Graphen dar, der sowohl geordnet als auch reduziert ist. Genau ein Blatt hat den Wert 0, das andere den Wert 1. Jeder andere Knoten k repräsentiert eine binäre Variable x i und hat genau zwei Nachfolger: -lo(k), wenn x i =0 -hi(k), wenn x i =1 Ein OBDD ist eine kanonische Darstellung einer Booleschen Funktion. OBDD

29 29 WIRTSCHAFTS INFORMATIK Problem der Variablenordnung OBDDs zu derselben Funktion

30 30 WIRTSCHAFTS INFORMATIK Problem der Variablenordnung Sifting-Algorithmus // Phase 1: Ermittlung der lokal besten Position von x 2 // x 2 steigt in Richtung der Blätter auf // x 2 sinkt in Richtung des Startknotens ab // alle Positionen durchlaufen x1x1x1x1x1x2x1x1x1x1x1x2 x2x3x3x3x2x1x2x3x3x3x2x1 x3x2x4x2x3x3x3x2x4x2x3x3 x4x4x2x4x4x4x4x4x2x4x4x4 x 1

31 31 WIRTSCHAFTS INFORMATIK 3.2 Operationen auf OBDDs 3.Binary Decision Diagrams 3.1 Ordered Binary Decision Diagrams 3.2 Operationen auf OBDDs Negation Apply AndExists 3.3 Komplexitätsbetrachtungen 3.2 Operationen auf OBDDs

32 32 WIRTSCHAFTS INFORMATIK Negation

33 33 WIRTSCHAFTS INFORMATIK Apply Verknüpfung zweier Boolescher Funktionen mit einem beliebigen zweistelligen Booleschen Operator:

34 34 WIRTSCHAFTS INFORMATIK Apply Gleiche Variablenordnung, rekursiv durch Shannon-Entwicklung Fallunterscheidung beim Aufruf der OBDDs: 1.F und G sind Blätter -> Rekursion beendet 2.F und/oder G sind keine Blätter -> rekursiver Aufruf von Apply 2.1 Startknoten beider OBDD repräsentieren die gleiche Variable 2.2 Startknoten repräsentieren nicht die gleiche Variable Apply-Algorithmus:

35 35 WIRTSCHAFTS INFORMATIK Apply 2.1: Beide Startknoten repräsentieren x 1 Knoten mit x 1 wird erzeugt. Zwei rekursive Aufrufe von Apply.

36 36 WIRTSCHAFTS INFORMATIK Apply 2.2: F repräsentiert die kleinere Variable x 2 Knoten mit x 2 wird erzeugt. Zwei rekursive Aufrufe von Apply.

37 37 WIRTSCHAFTS INFORMATIK Apply 2.2: G repräsentiert die kleinere Variable x 3 Knoten mit x 3 wird erzeugt. Zwei rekursive Aufrufe von Apply.

38 38 WIRTSCHAFTS INFORMATIK Apply 1: F und G sind Blätter Ein Blatt wird entsprechend dem Booleschen Operator erzeugt. Apply wird mehr rekursiv aufgerufen.

39 39 WIRTSCHAFTS INFORMATIK Apply 1: F und G sind Blätter Ein Blatt wird entsprechend dem Booleschen Operator erzeugt. Apply wird mehr rekursiv aufgerufen.

40 40 WIRTSCHAFTS INFORMATIK Apply 2.1: Beide Startknoten repräsentieren x 3 Knoten mit x 3 wird erzeugt. Zwei rekursive Aufrufe von Apply.

41 41 WIRTSCHAFTS INFORMATIK Apply 1: F und G sind Blätter Es wird auf ein bereits berechnetes Ergebnis zurückgegriffen. Kein rekursiver Aufruf von Apply.

42 42 WIRTSCHAFTS INFORMATIK Apply 1: F und G sind Blätter Ein Blatt wird entsprechend dem Booleschen Operator erzeugt. Kein rekursiver Aufruf von Apply.

43 43 WIRTSCHAFTS INFORMATIK Apply 2.2: F repräsentiert die kleinere Variable x 3 Ein Blatt wird entsprechend dem Booleschen Operator erzeugt. Apply ist fertig. Das Ergebnis-OBDD ist nicht reduziert.

44 44 WIRTSCHAFTS INFORMATIK Apply Komplexität von Apply: O(|F|*|G|) Tricks: 1.Frühzeitige Auswertung 2.Hashtabelle zum Speichern der Berechnungen

45 45 WIRTSCHAFTS INFORMATIK AndExists existentielle Quantifizierung von Variablen Für einen Vektor gilt: Für eine Boolesche Funktion ist die existenzielle Quantifizierung bezüglich der Variablen x definiert durch

46 46 WIRTSCHAFTS INFORMATIK AndExists AndExists funktioniert wie Apply mit der Konjunktion ( ) als Booleschen Operator. Die einzige Änderung ist:

47 47 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

48 48 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

49 49 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

50 50 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

51 51 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

52 52 WIRTSCHAFTS INFORMATIK AndExists – Beispiel Das Ergebnis von AndExists ist nicht reduziert.

53 53 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

54 54 WIRTSCHAFTS INFORMATIK AndExists – Beispiel

55 55 WIRTSCHAFTS INFORMATIK 3.3 Komplexitätsbetrachtungen 3.Binary Decision Diagrams 3.1 Ordered Binary Decision Diagrams 3.2 Operationen auf OBDDs 3.3 Komplexitätsbetrachtungen Darstellung Boolescher Funktionen als OBDDs Operationen auf OBDDs 3.3 Komplexitätsbetrachtungen

56 56 WIRTSCHAFTS INFORMATIK Darstellung Boolescher Funktionen als OBDDs FunktionsklasseKomplexität bester Fallschlechtester Fall symmetrischlinearquadratisch Integer Additionlinearexponentiell Integer Multiplikationexponentiell

57 57 WIRTSCHAFTS INFORMATIK Operationen auf OBDDs AlgorithmusKomplexität Reduktion von Fproportional zur Knotenanzahl: O(F) Variablenordnung mit SiftingO(n 2 ) Vertauschungen zweier Variablen Negationkonstant (Vertauschung der Blätter) Apply(F,G,*)quadratisch: O(|F|*|G|) AndExists((x 1,…,x n ),F,G)exponentiell: O(|F|*|G|*2 2n )

58 58 WIRTSCHAFTS INFORMATIKGliederung 1.Motivation 2.Model Checking 3.Binary Decision Diagrams 4.Symbolisches Model Checking 4.1 Modellbildung 4.2 Spezifikation 4.3 Verifikation 5.Fazit 4. Symbolisches Model Checking

59 59 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung Symbolische Darstellung der Kripke-Struktur

60 60 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung Ein Zustand kann durch einen Vektor Boolescher Werte ausgedrückt werden: Eine Menge von Zuständen kann eindeutig durch ein Funktional dargestellt werden: z.B. s 1 (0,0) - OBDD p enthält nur die Variablen x 1,…,x n - p ist eine Menge von Booleschen Vektoren p M = (S, S 0, R, L)

61 61 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung Beispiel zur Menge von Zuständen: p Boolescher Vektor (x 2, x 1 ): = p (1) Menge der Zustände, in denen r AP gilt. M = (S, S 0, R, L) s 3 und s 4 :

62 62 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung Ein Zustandsübergang wird durch ein Paar von Zuständen ausgedrückt: Eine Menge von Zustandsübergängen kann eindeutig durch ein Funktional dargestellt werden: z.B. (s 1,s 2 ) ( (0,0), (0,1) ) - OBDD R enthält nur die Variablen x 1,…, x n, x 1 ´,…, x n ´ - R ist eine Menge von Paaren Boolescher Vektoren R M = (S, S 0, R, L)

63 63 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung M = (S, S 0, R, L) R R = ((s 1,s 2 ), (s 2,s 2 ), (s 2,s 3 ), (s 3,s 4 )) Überlagerung

64 64 WIRTSCHAFTS INFORMATIK 4.1 Modellbildung Anhand einer atomaren Aussage wird ein OBDD mit denjenigen Zuständen zurückgegeben, in denen die Aussage gilt. M = (S, S 0, R, L) L(p) =

65 65 WIRTSCHAFTS INFORMATIK 4.2 Spezifikation Zur Erinnerung:

66 66 WIRTSCHAFTS INFORMATIK 4.2 Spezifikation Gesucht: CTL-Operator EX auf symbolischer Kripke-Struktur Gegeben: EXp Nachfolger Übergang Lösung:

67 67 WIRTSCHAFTS INFORMATIK 4.2 Spezifikation AndExists Algorithmus

68 68 WIRTSCHAFTS INFORMATIK 4.3 Verifikation Analyse der Formel AndExists kleinster Fixpunkt größter Fixpunkt

69 69 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel EG p

70 70 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

71 71 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

72 72 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

73 73 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

74 74 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

75 75 WIRTSCHAFTS INFORMATIK 4.3 Verifikation: Beispiel

76 76 WIRTSCHAFTS INFORMATIKGliederung 1.Motivation 2.Model Checking 3.Binary Decision Diagrams 4.Symbolisches Model Checking 5.Fazit

77 77 WIRTSCHAFTS INFORMATIK 5. Fazit Der vorgestellte Algorithmus zum Symbolischen Model Checking ist ein effizientes Verfahren zur automatischen Verifikation. Grenzen des Model Checking: -endlicher Zustandsraum -state explosion problem Symbolic Model Verifier (SMV) System in der Praxis -Cache-Protokoll im IEEE-Futurebus+ (1992) bisherige Erfolge vor allem im Hardwarebereich und bei Kommunikationsprotokollen

78 78 WIRTSCHAFTS INFORMATIK 5. Fazit große Unternehmen aktiv im Bereich Model Checking -SLAM Projekt von Microsoft: Treiberverifikation bei Windows XP aktuelle Forschungsrichtung: Software Model Checking Verbesserungen notwendig -einheitlicher Ansatz mit deduktiver Verifikation

79 79 WIRTSCHAFTS INFORMATIK Vielen Dank für die Aufmerksamkeit!


Herunterladen ppt "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Symbolisches Model Checking mit Binary Decision Diagrams Im Rahmen."

Ähnliche Präsentationen


Google-Anzeigen