Computergest ützte Verifikation
description
Transcript of Computergest ützte Verifikation
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: CTL-Model Checking
3.5: Reduktion durch Symmetrie3.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.5 Symmetrie
Grundgedanke: symmetrisch strukturierte Systeme haben symmetrisches Verhalten
Quellen für Symmetrie:a) regelmäßig strukturierte Datentypenb) 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
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 allerSymmetrien von TS
[TS,o] istGruppe
6
3.5.4 Symmetrie in DatentypenFall 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
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 induzierenSymmetrien eines Komponentensystems
Hinter allen Symmetrieansätzen stecken Graphautomorphismen,z.B. auch hinter Datentypsymmetrie:
1
2
4
3=
=
=
=
1
2
4
3=
=
=
=
incr
incrincr
incr
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 kx 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’ Og gibt es genau ein u U mit g’ = g o u
10
Konzept für Erzeugendensystem
U1U2
U3 U1 U2 U3 ... Un = {e}
Eindeutige Darstellung:Jedes Element g von G besitzt genau eine Darstellungder Formg = g1 o g2 o... o gn mit gi aus einem der vonUi in U(i-1) generierten Orbit
11
Zurück zu Graphautomorphismen
[V,E,c]; Sei V = {v1, ..., vn}
Ui = { | ist Graphautomorphismus und (vj) = vj für j i}
Orbits Oik 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 Oik dann nimm genau ein Element indas Erzeugendensystem auf (für Oii immer id).
max. n(n-1)/2 Elemente
12
Beispiel
id
1
2 3
4
E = { , , ; }
1
2 3
4
1
2 3
4
1
2 3
4
ji
1 1
i-1 i-1
1
2 3
4g1 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 =
13
1 2
34
5 678
Zweites Beispiel
1. Ebene: 1 1 ... 8 2. Ebene 1 1, 2 2,4,53. Ebene 1 1, 2 2, 3 3,6
7 + 2 + 1 = 10 Erzeugende für8 x 3 x 2 = 48 Automorphismen
g = g1 o g2 o g3
14
Berechnung von Automorphismen - Datenstruktur “abstrakte Permutation”
416
289
1
36
7 5
3
9
0
4
57
20A1
A2
A3
An
B1
B2
B3
Bn
C
C gdw.(Ai) = Bi (für alle i)
8
.....
A1 .... An = VB1 .... Bn = V
0 71 32 93 54 85 06 67 48 19 2
15
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, dieBeschriftung der Knotenrespektieren
{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 Cges: ein Automorphismus, der mit C konsistent ist
16
Komplexität
geg: abstrakte Permutation Cges: 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
REFINE
01
862
58
71
04 3
924
6
21 35
84 07
# c-Nachbarn in A’3 2 1 0
#c-Nachbarn in B’0 1 2 3
Jeder Automorphismus, der mit dem alten Constraint konsistent ist,ist auch mit den neuen Constraints konsistent
18
DEFINE
2 53 8
4 521
2 53 8
4 5212 5
3 84 5
21
2 53 8
4 5212 5
3 84 5
21
Jeder Automorphismus, der mit dem alten Constraint konsistent ist,ist mit genau einem der neuen Constraints konsistent
19
Automorphismenberechnung
41 8
62
ae
b f a
871
3
5
c
83
32
c c
R*D
R* R* R*D D
R* R* R*R* R*
poly
exp
83
32
c c
= #Ai #Bi ist selten meistens poly. Laufzeit!!!
20
id id
g11 g12 g13 g14 g21 g22 g23 g31 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
Beispiel
1
2 3
4 E = { , , ; }
1
2 3
4
1
2 3
4
1
2 3
4 1
2 3
4g12 g13 g14 g22
1
2 3
4
s
x = 1 x = 1
x = 2x = 3
1
2 3
4
id-1(s) = id(s) = x = 1 x = 1
x = 2x = 3
-1(s) = 1
2 3
4x = 3 x = 2
x = 1x = 1(s) =
1
2 3
4x = 1 x = 2
x = 3x = 1-1(s) = (s) =
1
2 3
4x = 2 x = 1
x = 1x = 3-1(s) = (s) =
s1
22
Beispiel
1
2 3
4 E = { , , ; }
1
2 3
4
1
2 3
4
1
2 3
4 1
2 3
4g12 g13 g14 g22
1
2 3
4
s
x = 1 x = 1
x = 2x = 3
id-1(s1) = id(s1) = 1
2 3
4x = 1 x = 2
x = 3x = 1
1
2 3
4x = 1 x = 2
x = 3x = 1 s1
11
2 3
4x = 1 x = 1
x = 3x = 2-1(s) = (s) =
Resultat
Resultat canrep(s) = (s) = 11
2 3
4x = 1 x = 3
x = 2x = 1
Globales Min führt nicht immer über min. Zwischenresultate (si)!
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
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 dieAutomorphismengruppe des folgenden Graphen:
5
3
2
4
6
1
26
Übung 2
Wieviele Elemente hat das in der Vorlesungstudierte Erzeugendensystem einesa) gerichteten Ringes mit n Knoten, z.B.
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