1 / 27

Computergest ützte Verifikation

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

zach
Télécharger la présentation

Computergest ützte Verifikation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computergestützte Verifikation 7.5.2002

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

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

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

  7. = = 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:

  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 Orbits Bsp: Restklassen modulo k x  y mod k gdw. k | x - y

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

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

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

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

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

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

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

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

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

  19. 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*

  20. 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 = ...}

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

  22. 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)!

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

  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. Übung 1 Bestimme ein Erzeugendensystem für die Automorphismengruppe des folgenden Graphen: 6 4 5 3 1 2

  26. Ü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.

  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

More Related