Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

Ähnliche Präsentationen


Präsentation zum Thema: "1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:"—  Präsentation transkript:

1 1 Computergestützte Verifikation

2 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3: CTL-Model Checking 3.5: Reduktion durch Symmetrie 3.6: Partial Order Reduction 3.7: Tools 4.1: BDD-basiertes CTL-Model Checking 4.2: SAT-basiertes Model Checking 4.3: Tools 3.4: Fairness Kapitel 3 Kapitel 4

3 3 Fazit 3.1 – 3.4 Explizites Model Checking basiert im wesentlichen auf Tiefensuche Die Algorithmen sind extrem leichtgewichtig, arbeiten aber auf riesigen Graphen wichtigstes Mittel zur Leistungssteigerung ist Verkleinerung des Transitionssystems Dies ist Gegenstand der nächsten 2 Abschnitte

4 4 3.5 Symmetrie Grundgedanke: symmetrisch strukturierte Systeme haben symmetrisches Verhalten Quellen für Symmetrie: a)regelmäßig strukturierte Datentypen b)replizierte Komponenten im Gesamtsystem Wenn Verhalten bei s bekannt und s symmetrisch zu s, braucht Verhalten bei s nicht mehr untersucht werden technisch: Äquivalenzrelation; Quotienten-Transitionssystem

5 5 Agenda 1. Formale Definition: symmetrisches Verhalten 2. Konstruktion des Quotientensystems 3. Welche Eigenschaften bleiben erhalten? 4. Erkennung von Datenstruktursymmetrie 5. Erkennung von Komponentensymmetrie

6 Symmetrisches Verhalten Basis: Transitionssystem heißt Symmetrie, wenn: - ist Bijektion S S - s –e s gdw. ex. e: (s) –e (s) -s I gdw. (s) I mit Induktion: s0 s1 s2... Pfad in einem Transitionssystem (s0) (s1) (s2)... ebenfalls -Id ist immer Symmetrie -Wenn Symmetrie, so auch -1 -Wenn 1 und 2 Symmetrien, so auch 1 o 2 TS : Menge aller Symmetrien von TS [ TS,o] ist Gruppe

7 7 Zustandsäquivalenz Analyse der Struktur liefert i.d.R. nicht alle Symmetrien, aber immer eine bzgl. Inversion und Komposition ab- geschlossene Menge von Symmetrien ab jetzt betrachten wir immer eine beliebige Untergruppe TS s ~ s gdw. es ex. mit (s) = s ~ ist Äquivalenzrelation

8 reduziertes Transitionssystem TS = [S/~, E, I/~,* ] E = { [ [s],[s] ] | ex. s [s], ex. s [s] : [s,s] E} Größe des reduzierten Systems: | S/~ | | S | / | | | | kann exponentiell in der Zahl der Elemente eines symm. Datentyps bzw. exponentiell in der Anzahl der replizierten Kompnenten sein

9 9 Beispiel 1 (i,i,1) (r,i,1)(i,r,1) (r,r,1)(c,i,0)(i,c,0) (c,r,0) (r,c,0) g1 = { Id, } ([x,y,z]) = [y,x,z]

10 10 Beispiel 1 (i,i,1) (r,i,1) (r,r,1)(c,i,0) (c,r,0) = { Id, } ([x,y,z]) = [y,x,z]

11 11 Beispiel 2 init(x) {0,1,2} x := (x + 1) mod = {Id, 1, 2 } 1 (0) = 1, 1 (1) = 2, 1 (2) = 0 2 (0) = 2, 2 (1) = 0, 2 (2) = 1 0

12 12 Konstruktion des red. TS S := E := ø; dfs(i) dfs(s) S := S {s}; FOR ALL s: [s,s] E DO IF es kann mit (s) S gefunden werden THEN E := E {[s, (s) ]}; ELSE E := E {[s, s ]}; dfs(s); END approximative Lösungen Das Orbit- Problem

13 Welche Eigenschaften bleiben erhalten? Eigentlich: Wie muß ich wählen, damit gegebene Formel erhalten bleibt? Brauchen: TS gdw. TS/~

14 14 Symmetrische Propositionen Hinreichend: Jede elementare Zustandsaussage ist insensitiv bzgl., d.h wenn s, so (s) für alle Satz: wenn alle verwendeten Zustandsaussagen insensitiv bzgl. Symmetrie sind, dann gilt jede CTL*-Formel in TS/~ gdw. sie in TS gilt. Bsp: G (pc1 critical pc2 critical) atomar

15 15 Symmetrische Propositionen alle elementaren Zustandsaussagen sind symmetrisch kann dahingehend aufgeweicht werden, daß man die durch die Assoziativität und Kommutativität von und, oder,, und eingeführte Symmetrie mit beachtet. Tools: Symmetriegruppe wird so weit eingeschränkt, daß Symmetrie gesichert ist

16 Symmetrie in Datentypen Fall 1: Skalare Datentypen -Menge D von Werten - nur =, in Guards - := (Zuweisung) - als Indexmenge von (einfachen) Arrays anderer Datentypen - Schleifen der Form FOR ALL x D DO... - choose(x) - keine Konstanten Seien x1,..., xn alle Variablen eines skalaren Datentyps D, eine Belegung dieser Variablen mit Werten, und eine Permutation auf D. Setzen zu einer Symmetrie fort

17 17 Symmetrie in Datentypen (s) : (s)(x) = (s(x)), falls x vom Typ D (s)(x[ (i)]) = s(x[i]), falls x array mit D als Indexmenge (s)(x) = s(x), sonst Beispiel: D = {1,2,3,4} : s: x1 = 1 x2 = 3 x3 = hallo x4[1] = A x4[2] = B x4[3] = C x4[4] = C (s): x1 = 2 x2 = 3 x3 = hallo x4[1] = C x4[2] = A x4[3] = C x4[4] = B

18 18 Nachweis der Symmetrieeigenschaft 1.Alle Terme anderer Datentypen liefern in s und (s) die gleichen Werte Beispiel: D = {1,2,3,4} : s: x1 = 1 x2 = 3 x3 = hallo x4[1] = A x4[2] = B x4[3] = C x4[4] = C (s): x1 = 2 x2 = 3 x3 = hallo x4[1] = C x4[2] = A x4[3] = C x4[4] = B x3 x4[x1] 2. Wenn ein Term in s den Wert d D liefert, so liefert er in (s) den Wert (d) x1 x2 3. Ausdrücke sind wahr in s gdw. in (s) x1 = x2 x4[x1] A 4. Zuweisungen erhalten Eigenschaften 1-3 Also: Wenn s s, so (s) (s)

19 19 Das Orbit-Problem geg.: Zustand s, Zustandsmenge S, Symmetriegruppe Frage: gibt es ein mit (s) S ? Lösung (meistens): kanonische Repräsentanten = ein speziell ausgezeichneter, leicht berechenbarer Vertreter der eigenen Äquivalenzklasse -in S werden nur kanonische Repräsentanten gespeichert - Orbitproblem reduziert sich zu: canrep(s) S?

20 20 Implementation von canrep auf skalaren Datentypen Kanonischer Repräsentant = lexikographisch kleinster Vertreter seiner Klasse x1 = 1 x2 = 3 x3 = hallo x4[1] = A x4[2] = B x4[3] = C x4[4] = C x1 = 2 x2 = 3 x3 = hallo x4[1] = C x4[2] = A x4[3] = C x4[4] = B < x1 = 1 1 x2 = 2 3 2x3 = hallo x4[1] = A x4[2] = C x4[3] = B x4[4] = C x1 = x2 = x3 = hallo x4[1] = A x4[2] = C x4[3] = B x4[4] = C Sortieren

21 21 Symmetrie in Datentypen Fall 2: wie skalare Datentypen, mit zusätzlichen Operationen INCR(x) und DECR(x), die wie Addition/Subtraktion von 1 modulo n funktioniert Nur Rotationen (= Permutationen der Form a i a (i+k) mod n ) generieren Symmetrien. andere Permutationen liefern potenziell unverträgliche Werte für Terme der Form INCR(x) Beispiel: s: x1 = 2 : (s): x1 = 1 INCR(x1) = 3 INCR(x1) = 2 (3)

22 22 Letzte Folie zu Symmetrie in Datentypen prinzipiell könnte man die Liste der Datentypen erweitern Tools nutzen meist nur skalare Typen Methode der kanonischen Repräsentanten ist effizient Der Nutzer ist dafür verantwortlich, die Datentypen geeignet zu wählen und damit die Symmetrie dem Tool zu vermitteln Man kann auch mehrere Skalar- und Rotationstypen gleichzeitig handhaben

23 Komponentensymmetrie Basis: System, das aus mehreren identischen Komponenten P1,...., Pn besteht d.h. Variablen sind global oder lokal (d.h. mit einer Instanz pro Komponente) Jede lokale Aktion kann gleichwertig für eine beliebige Komponente ausgeführt werden a[P] Nichtlokale Aktionen betreffen ggf. mehrere Komponenten (z.B. Senden von Nachrichten) a[P,P] Nichtlokale Aktionen müssen nicht notwendigerweise für alle Paare/Tripel... von Komponenten ausführbar sein (z.B. Senden nur zwischen Komponenten, die durch einen Nachrichtenkanal verbunden sind)

24 24 Komponentensymmetrie Symmetrie wird realisiert durch Permutieren der lokalen Zustände zwischen den Komponenten Die nichtlokalen Aktionen definieren die Kommunikationsstruktur des Gesamtsystems Die Kommunikationsstruktur kann als beschrifteter Graph abstrahiert werden (Knoten = Komponenten, Kanten mit Aktionstyp beschriftet) pc = idle x = 2 pc = req x = 3 pc = idle x = 5 pc = idle x = 5 pc = idle x = 2 pc = req x = 3

25 25 Formalisierung Betrachten Permutationen : {P1,....,Pn} {P1,....,Pn} (s): (s)(x) = s(x) (x global) (s)( (P).x) = s(P.x) (x lokal) Beschrifteter Graph: [V,E,c] E V x V, c: V E D Damit wirklich das Verhalten symmetrisch wird, darf der lokale Zustand nur dann von P nach P verschoben werden, wenn in P äquivalente nichtlokale Aktionen zu denen in P möglich sind D.h., der Kommunikationsgraph muß erfüllen: Wenn [v,v] E, so [ (v), (v)] E und c([v,v]) = c([ (v), (v)])

26 26 Graphautomorphismen Eine Permutation s: V V heißt Graphautomorphismus, falls für alle v,v aus V gilt: 1.c(v) = c( (v)) 2.Wenn [v,v] E, so [ (v), (v)] E und c([v,v]) = c([ (v), (v)]) Graphautomorphismen des Kommunikationsgraphen induzieren Symmetrien eines Komponentensystems Hinter allen Symmetrieansätzen stecken Graphautomorphismen, z.B. auch hinter Datentypsymmetrie: = = = = = = = = incr

27 27 Graphautomorphismen als Grundlage für Symmetrie So gut wie alle Zusammenhänge lassen sich als Graph darstellen Wenn der Graph alle für das Systemverhalten relevanten Informationen enthält, dann lassen sich die Systemsymmetrien genau aus den Graphautomorphismen ableiten Ab jetzt: betrachten Graphautomorphismen unabhängig von ihrer Herkunft

28 28 Komplexität des Automorphismenproblems eng verwandt: Graphisomorphie NP NPV P ? ? Ein Graph kann exponentiell viele Automorphismen haben

29 29 Weiteres Vorgehen 1.ein bißchen Gruppentheorie, mit dem Ziel: 2.ein polynomiell großes Erzeugendensystem 3.Berechnung des Erzeugendensystems 4.Lösung des Orbit-Problems

30 30 Gruppentheorie [G,o] ist Gruppe, wenn o assoziative Operation auf G ist, es ein neutrales Element e gibt, und jedes Element g ein Inverses g -1 hat. Beispiele: Menge der Graphautomorphismen mit Hintereinander- ausführung. Menge der ganzen Zahlen mit Addition Menge der positiven rationalen Zahlen mit Multiplikation

31 31 Untergruppen U G heißt Untergruppe, wenn o nicht aus U herausführt und [U,o] Gruppe ist. Beispiele: {Id} Die durch k teilbaren ganzen Zahlen (k > 0) mit + diejenigen rationalen Zahlen, wo Zähler und Nenner Zweierpotenzen sind, mit Multiplikation

32 32 Orbits Jede Untergruppe U definiert eine Äquivalenzrelation auf G: g ~ U g gdw. g o g -1 U reflexiv: g o g -1 = e U symmetrisch: Sei g o g -1 = u U g o g -1 = (g o g -1 ) -1 = u -1 U transitiv: Sei g o g -1 = u U und g o g -1 = u U g o g -1 = g o (g -1 o g) o g -1 = (g o g -1 ) o (g o g -1 ) = u o u U Klassen heißen OrbitsBsp: Restklassen modulo k x y mod k gdw. k | x - y

33 33 Orbits endlicher Gruppen Alle Orbits haben gleich viele Elemente, nämlich |U| Sei g G und O g der Orbit, in dem g liegt. O g = { g o u | u U} (Ein Erzeugendensystem für) U + pro Orbit ein (beliebiges!) Element bilden zusammen ein Erzeugendensystem für G Erzeugung ist in einem gewissen Sinne eindeutig: für jedes g O g gibt es genau ein u U mit g = g o u

34 34 Konzept für Erzeugendensystem U1 U2 U3 U1 U2 U3... Un = {e} Eindeutige Darstellung: Jedes Element g von G besitzt genau eine Darstellung der Form g = g1 o g2 o... o gn mit gi aus einem der von Ui in U(i-1) generierten Orbit

35 35 Übung 1 Sei D = { a,b,c,d,e } ein skalarer Datentyp Bestimme den kanonischen Repräsentanten von s: x1 = bla x2[a] = 5 x2[b] = 3 x2[c] = 3 x2[d] = 4 x2[e] = 3 x3 = c x4 = b

36 36 Übung 2 Konstruiere das symmetrisch reduzierte Transitionssystem zu folgendem Programm y1,y2: scalarset {1,2} pc1,pc2: {a,b,c} z: array {1,2} of boolean pc1 = a choose(y1),pc1 := b pc1 = b y2 := y1, pc1 := c pc1 = c pc2 = c pc1 := a, pc2 := a pc2 = a pc1 = c pc2 := b pc2 = b z[y2] := true, pc2 := c init(z) := [false,false] init(pc1) = a init(pc2) = a

37 37 Übung 3 Bestimme alle Automorphismen des folgenden Graphen:


Herunterladen ppt "1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:"

Ähnliche Präsentationen


Google-Anzeigen