270 likes | 366 Views
Computergest ützte Verifikation. 7.5.2002. Model Checking f ür finite state systems. Kapitel 3. explizit:. symbolisch:. Kapitel 4. 3.1: Tiefensuche. 4.1: BDD-basiertes CTL-Model Checking. 3.2: LTL-Model Checking. 3.3: CTL-Model Checking. 4.2: SAT-basiertes
E N D
Computergestützte Verifikation 7.5.2002
Model Checking für finite state systems Kapitel 3 explizit: symbolisch: Kapitel 4 3.1: Tiefensuche 4.1: BDD-basiertes CTL-Model Checking 3.2: LTL-Model Checking 3.3: CTL-Model Checking 4.2: SAT-basiertes Model Checking 3.4: Fairness 4.3: Tools 3.5: Reduktion durch Symmetrie 3.6: Partial Order Reduction 3.7: Tools
3.5 Symmetrie Grundgedanke: symmetrisch strukturierte Systeme haben symmetrisches Verhalten • Quellen für Symmetrie: • regelmäßig strukturierte Datentypen • 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
Agenda 1. Formale Definition: symmetrisches Verhalten 2. Konstruktion des Quotientensystems 3. Welche Eigenschaften bleiben erhalten? 4. Erkennung von Datenstruktursymmetrie 5. Erkennung von Komponentensymmetrie
3.5.1 Symmetrisches Verhalten Basis: Transitionssystem STS: Menge aller Symmetrien von TS • heißt Symmetrie, wenn: • - s ist Bijektion S S • s –e s’ gdw. ex. e’: s(s) –e’s(s’) • s I gdw. s(s) I mit Induktion: s0 s1 s2 ... Pfad in einem Transitionssystem s(s0) s(s1) s(s2) ... ebenfalls -Id ist immer Symmetrie -Wenn s Symmetrie, so auch s-1 -Wenn s1 und s2 Symmetrien, so auch s1 o s2 [STS,o] ist Gruppe
3.5.4 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, b eine Belegung dieser Variablen mit Werten, und p eine Permutation auf D. Setzen p zu einer Symmetrie s fort
= = 2 2 incr incr = = 1 3 1 3 = = incr incr = = 4 4 Graphautomorphismen • Eine Permutation s: V V heißt Graphautomorphismus, • falls für alle v,v’ aus V gilt: • c(v) = c(s(v)) • Wenn [v,v’] E, so [s(v),s(v’)] E und c([v,v’]) = c([s(v),s(v’)]) Graphautomorphismen des Kommunikationsgraphen induzieren Symmetrien eines Komponentensystems Hinter allen Symmetrieansätzen stecken Graphautomorphismen, z.B. auch hinter Datentypsymmetrie:
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 Orbits Bsp: Restklassen modulo k x y mod k gdw. k | x - y
Orbits endlicher Gruppen Alle Orbits haben gleich viele Elemente, nämlich |U| Sei g G und Og der Orbit, in dem g liegt. Og = { 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’ Oggibt es genau ein u U mit g’ = g o u
Konzept für Erzeugendensystem U1 U2 U1 U2 U3 ... Un = {e} U3 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
Zurück zu Graphautomorphismen [V,E,c]; Sei V = {v1, ..., vn} Ui = {p | p ist Graphautomorphismus und p(vj) = vj für j i} Orbits Oik bzgl. Ui in U(i-1): {p | p ist Graphautomorphismus, p(vj) = vj für j < i, p(vi) = vk} • Erzeugendensystem: für alle i {1, .. , n} und k {i+1, .. , n}: Wenn Oik dann nimm genau ein Element in das Erzeugendensystem auf (für Oii immer id). max. n(n-1)/2 Elemente
2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 1 1 1 1 1 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 = 1 1 Beispiel id i-1 i-1 i j E = { , , ; } g4 g1 g2 g3
Zweites Beispiel 8 7 6 5 3 g =g1og2o g3 4 1 2 • Ebene: 1 1 ... 8 • Ebene1 1, 2 2,4,5 • Ebene 1 1, 2 2, 3 3,6 7 + 2 + 1 = 10 Erzeugende für 8 x 3 x 2 = 48 Automorphismen
Berechnung von Automorphismen - Datenstruktur “abstrakte Permutation” 7 0 A1 .... An = V B1 .... Bn = V 5 2 A1 B1 9 4 3 A2 B2 4 6 2 s C gdw. s(Ai) = Bi (für alle i) 1 8 6 9 0 7 1 3 2 9 3 5 4 8 5 0 6 6 7 4 8 1 9 2 B3 3 A3 7 0 5 ..... An Bn 8 1 C
V V jede Permutation ist konsistent {v | c(v) = d1} {v | c(v) = d1} ....... {v | c(v) = dk} {v | c(v) = dk} alle Permutationen, die Beschriftung der Knoten respektieren {v1} {v1} ...... {v(i-1)} {v(i-1)} {vi} {vk} Rest1 Rest2 Die Automorphismen, die konsistent sind, sind genau die Elemente eines Orbits bzgl. Ui in U(i-1) Abstrakte Permutation – Bsp. Berechnungsproblem: geg.: abstrakte Permutation C ges: ein Automorphismus, der mit C konsistent ist
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.
#c-Nachbarn in B’ 0 1 2 3 # c-Nachbarn in A’ 3 2 1 0 REFINE 8 9 8 6 6 1 4 0 5 2 1 4 3 7 0 2 8 7 2 4 5 1 0 3 Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist auch mit den neuen Constraints konsistent
2 1 5 2 8 3 4 5 2 1 2 1 5 2 5 2 8 8 3 3 4 5 4 5 2 1 2 1 5 2 5 2 8 8 3 3 4 5 4 5 DEFINE Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist mit genau einem der neuen Constraints konsistent
poly 2 2 3 3 8 8 3 3 exp c c c c ist selten meistens poly. Laufzeit!!! = #Ai #Bi Automorphismenberechnung 3 4 2 1 1 8 8 6 7 5 a b f a e c R* D R* R* R* D D R* R* R* R* R*
Orbitproblem id id g11 g12 g13 g14 g21 g22 g23 g31 g32 geg: s ges: canrep(s) ........ n. sn := MIN{g1i-1(s[n-1]), i = ...} 1. s1 := MIN{g1i-1(s), i = ...} 2. s2 := MIN{g2i-1(s1), i = ...} canrep(s) := sn 3. s3 := MIN{g3i-1(s2), i = ...}
2 2 2 2 2 2 3 3 3 3 3 3 2 2 2 2 3 3 3 3 4 4 4 4 4 4 1 1 1 1 1 1 4 4 4 4 1 1 1 1 x = 3 x = 2 x = 3 x = 2 s id-1(s) = id(s) = x = 1 x = 1 x = 1 x = 1 x = 1 x = 1 -1(s) = (s) = x = 2 x = 3 x = 3 x = 1 -1(s) = (s) = x = 1 x = 2 x = 1 x = 3 -1(s) = (s) = x = 2 x = 1 Beispiel E = { , , ; } g22 g12 g13 g14 s1
2 2 2 2 2 2 3 3 3 3 3 3 2 2 2 2 3 3 3 3 4 4 4 4 4 4 1 1 1 1 1 1 4 4 4 4 1 1 11 11 x = 1 x = 3 id-1(s1) = id(s1) = x = 2 x = 1 x = 2 x = 3 -1(s) = (s) = x = 1 x = 1 x = 1 x = 2 Resultat canrep(s) = (s) = x = 3 x = 1 Beispiel E = { , , ; } g22 g12 g13 g14 x = 3 x = 2 s Resultat x = 1 x = 1 x = 1 x = 3 s1 x = 2 x = 1 Globales Min führt nicht immer über min. Zwischenresultate (si)!
Lösung des Orbit-Problems • exakte Berechnung von canrep – äquivalent zu • Graphisomorphie 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 c) approximative Berechnung nach dem beschriebenen Verfahren – polynomiell, aber zus. Speicherplatz nötig .... Vorteile der approximativen Lösung überwiegen
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
Übung 1 Bestimme ein Erzeugendensystem für die Automorphismengruppe des folgenden Graphen: 6 4 5 3 1 2
Übung 2 • Wieviele Elemente hat das in der Vorlesung • studierte Erzeugendensystem eines • gerichteten Ringes mit n Knoten, z.B. • ungerichteten Ringes mit n Knoten, z.B.
Ü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