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:

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Fast Fourier Transformation
Christian Scheideler SS 2009
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Eine dynamische Menge, die diese Operationen unterstützt,
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Zusammenfassung der Vorwoche
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8. Formale Sprachen und Grammatiken
Finale Semantik und beobachtbares Verhalten
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Seminar Modellüberprüfung
Marco Barz Seminar über Algorithmen SoSe2007
Verifizieren versus Berechnen
Algorithmen und Komplexität
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Computergestützte Verifikation
Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R Fr R
1 Computergestützte Verifikation Abstraktion.
Computergestützte Verifikation
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Real Time Systeme 5.1 Timed Automata 5.2 TCTL 5.3 Abstraktion durch Regionen 5.4 Abstraktion durch Zonen.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Symbolisches Model Checking mit Binary Decision Diagrams
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Christian Schindelhauer
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
§17 Produkte und Quotienten von Vektorräumen
§24 Affine Koordinatensysteme
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Algorithmen für das Erfüllbarkeitsproblem SAT
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Analyse der Laufzeit von Algorithmen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
 Präsentation transkript:

1 Computergestützte Verifikation

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 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 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 Agenda 1. Formale Definition: symmetrisches Verhalten 2. Konstruktion des Quotientensystems 3. Welche Eigenschaften bleiben erhalten? 4. Erkennung von Datenstruktursymmetrie 5. Erkennung von Komponentensymmetrie

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 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

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 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 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 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 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

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

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 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

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 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 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 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 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 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 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

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 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 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 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 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 Komplexität des Automorphismenproblems eng verwandt: Graphisomorphie NP NPV P ? ? Ein Graph kann exponentiell viele Automorphismen haben

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 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 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 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 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 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 Ü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 Ü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 Übung 3 Bestimme alle Automorphismen des folgenden Graphen: