Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Computergestützte Verifikation 7.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 7.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 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

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

5 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

6 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

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

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

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

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

11 11 Zurück zu Graphautomorphismen [V,E,c]; Sei V = {v1,..., vn} Ui = { | ist Graphautomorphismus und (vj) = vj für j i} Orbits O ik bzgl. Ui in U(i-1): { | ist Graphautomorphismus, (vj) = vj für j < i, (vi) = vk} Erzeugendensystem: für alle i {1,.., n} und k {i+1,.., n}: Wenn O ik dann nimm genau ein Element in das Erzeugendensystem auf (für O ii immer id). max. n(n-1)/2 Elemente

12 12 Beispiel id E = {,, ; } j i 1 i g1g2g3 g4 id o id = id id o g4 = g1 o id = g1 o g4 = g2 o id = g2 o g4 = g3 o id = g3 o g4 =

13 Zweites Beispiel 1.Ebene: Ebene 1 1, 2 2,4,5 3.Ebene 1 1, 2 2, 3 3, = 10 Erzeugende für 8 x 3 x 2 = 48 Automorphismen g = g1 o g2 o g3

14 14 Berechnung von Automorphismen - Datenstruktur abstrakte Permutation A1 A2 A3 An B1 B2 B3 Bn C C gdw. (Ai) = Bi (für alle i) A1.... An = V B1.... Bn = V

15 15 Abstrakte Permutation – Bsp. V jede Permutation ist konsistent {v | c(v) = d1} {v | c(v) = dk} alle Permutationen, die Beschriftung der Knoten respektieren {v1} {v(i-1)} {vi} {vk} Rest1 Rest2 Die Automorphismen, die konsistent sind, sind genau die Elemente eines Orbits bzgl. Ui in U(i-1) Berechnungsproblem: geg.: abstrakte Permutation C ges: ein Automorphismus, der mit C konsistent ist

16 16 Komplexität geg: abstrakte Permutation C ges: ein Automorphismus, der konsistent mit C ist ist äquivalent zum Graphisomorphieproblem Graphisomorphismus G1 G2 ist Automorphismus von G1 G2, der konsistent mit V1 V2, V2 V1 ist konsistenter Automorphismus ist Isomorphismus von G auf G, wobei im Urbild c(v) = i falls v in Ai, und im Bild c(v) = i falls v in Bi.

17 17 REFINE # c-Nachbarn in A #c-Nachbarn in B Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist auch mit den neuen Constraints konsistent

18 18 DEFINE Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist mit genau einem der neuen Constraints konsistent

19 19 Automorphismenberechnung a e bfa c cc R* D DD poly exp cc = #Ai #Bi ist selten meistens poly. Laufzeit!!!

20 20 id g11 g12 g13 g14g21 g22 g23g31 g32 Orbitproblem geg: s ges: canrep(s) 1. s1 := MIN{g1i -1 (s), i =...} 2. s2 := MIN{g2i -1 (s1), i =...} 3. s3 := MIN{g3i -1 (s2), i =...} n. sn := MIN{g1i -1 (s[n-1]), i =...} canrep(s) := sn

21 21 Beispiel E = {,, ; } g12g13g14 g s x = 1 x = 2 x = id -1 (s) = id(s) = x = 1 x = 2 x = 3 -1 (s) = x = 3 x = 2 x = 1 (s) = x = 1 x = 2 x = 3 x = 1 -1 (s) =(s) = x = 2 x = 1 x = 3 -1 (s) =(s) = s1

22 22 Beispiel E = {,, ; } g12g13g14 g s x = 1 x = 2 x = 3 id -1 (s1) = id(s1) = x = 1 x = 2 x = 3 x = x = 2 x = 3 x = 1 s x = 1 x = 3 x = 2 -1 (s) =(s) = Resultat Resultat canrep(s) = (s) = x = 1 x = 3 x = 2 x = 1 Globales Min führt nicht immer über min. Zwischenresultate (si)!

23 23 Lösung des Orbit-Problems a)exakte Berechnung von canrep – äquivalent zu Graphisomorphie c) approximative Berechnung nach dem beschriebenen Verfahren – polynomiell, aber zus. Speicherplatz nötig.... Vorteile der approximativen Lösung überwiegen b) ganz andere Lösungen des Orbit-Problems sind bekannt: eins funktioniert gut nur für schmale Symmetriegruppen eins funktioniert gut nur für dichte Symmetriegruppen

24 24 Zusammenfassung Symmetrie Symmetrien können in speziellen Datentypen oder als Automorphismen geeigneter Graphen gefunden werden Datentypsymmetrie: - nur einige spezielle Symmetriegruppen, + Erkennung der Symmetrien trivial + Orbit-Problem effizient lösbar Automorphismen: + viele Symmetriegruppen ( mehr Reduktion) - Erkennung der Symmetrien aufwendig, obwohl meist doch polynomiell - Orbit-Problem langsam oder approximativ

25 25 Übung 1 Bestimme ein Erzeugendensystem für die Automorphismengruppe des folgenden Graphen:

26 26 Übung 2 Wieviele Elemente hat das in der Vorlesung studierte Erzeugendensystem eines a)gerichteten Ringes mit n Knoten, z.B. b)ungerichteten Ringes mit n Knoten, z.B.

27 27 Übung 3 Finde einen (nicht notwendigerweise zusammen- hängenden) Graph mit 6 Knoten 1,...,6, dessen Automorphismengruppe folgende Eigenschaften hat: 1. Die Automorphismengruppe hat 18 Elemente 2. Die Untergruppe U1 derjenigen Automorphismen, die Knoten 1 auf sich selbst abbilden, hat 3 Elemente 3. Die Untergruppe U2 derjenigen Automorphismen, die Knoten 1 und 2 jeweils auf sich selbst abbilden, enthält nur die Identität


Herunterladen ppt "1 Computergestützte Verifikation 7.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