Computergestützte Verifikation 7.5.2002
Model Checking für finite state systems explizit: Kapitel 3 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 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 STS: Menge aller Symmetrien von TS 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
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: 1 2 4 3 = 1 2 4 3 = incr
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’ Og gibt es genau ein u U mit g’ = g o u
Konzept für Erzeugendensystem 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
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
Beispiel 1 2 3 4 1 1 id 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 i-1 i-1 E = { , , ; } i j g1 g2 g3 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 =
Zweites Beispiel 8 7 6 5 3 g = g1 o g2 o g3 4 1 2 Ebene: 1 1 ... 8 7 + 2 + 1 = 10 Erzeugende für 8 x 3 x 2 = 48 Automorphismen
Berechnung von Automorphismen - Datenstruktur “abstrakte Permutation” 7 A1 .... An = V B1 .... Bn = V A1 5 2 B1 9 4 A2 3 4 B2 2 6 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 A3 3 7 5 ..... An Bn 8 1 C
Abstrakte Permutation – Bsp. 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) 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.
REFINE # c-Nachbarn in A’ 3 2 1 0 #c-Nachbarn in B’ 0 1 2 3 8 9 8 6 6 3 2 1 0 #c-Nachbarn in B’ 0 1 2 3 8 9 8 6 6 1 4 5 2 1 4 3 7 2 8 7 2 4 5 1 3 Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist auch mit den neuen Constraints konsistent
DEFINE 2 5 3 8 4 1 2 5 3 8 4 1 Jeder Automorphismus, der mit dem alten Constraint konsistent ist, ist mit genau einem der neuen Constraints konsistent
Automorphismenberechnung poly 4 3 1 2 8 1 6 7 8 5 a b f a e c R* D R* R* R* D D R* R* R* R* R* 8 3 2 c 8 3 2 c exp = #Ai #Bi ist selten meistens poly. Laufzeit!!!
Orbitproblem id id geg: s ges: canrep(s) g11 g12 g13 g14 g21 g22 g23 g31 g32 geg: s ges: canrep(s) 1. s1 := MIN{g1i-1(s), i = ...} ........ n. sn := MIN{g1i-1(s[n-1]), i = ...} 2. s2 := MIN{g2i-1(s1), i = ...} 3. s3 := MIN{g3i-1(s2), i = ...} canrep(s) := sn
Beispiel 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 E = { , , ; } g12 g13 g14 g22 1 2 3 4 s x = 1 x = 2 x = 3 1 2 3 4 id-1(s) = id(s) = x = 1 x = 2 x = 3 -1(s) = 1 2 3 4 x = 3 x = 2 x = 1 (s) = 1 2 3 4 x = 2 x = 1 x = 3 -1(s) = (s) = 1 2 3 4 x = 1 x = 2 x = 3 -1(s) = (s) = s1
Beispiel 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 E = { , , ; } g12 g13 g14 g22 x = 3 x = 2 1 2 3 4 s id-1(s1) = id(s1) = 1 2 3 4 x = 1 x = 2 x = 3 Resultat x = 1 x = 1 x = 1 1 2 3 4 x = 3 11 2 3 4 x = 1 x = 3 x = 2 -1(s) = (s) = s1 x = 2 x = 1 Resultat canrep(s) = (s) = 11 2 3 4 x = 1 x = 3 x = 2 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