Top Banner
1 Computergestützte Verifikation 7.5.2002
27

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:

Apr 05, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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:

1

Computergestützte Verifikation

7.5.2002

Page 2: 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:

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

Page 3: 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:

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

Page 4: 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:

4

Agenda

1. Formale Definition: symmetrisches Verhalten

2. Konstruktion des Quotientensystems

3. Welche Eigenschaften bleiben erhalten?

4. Erkennung von Datenstruktursymmetrie

5. Erkennung von Komponentensymmetrie

Page 5: 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:

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

Page 6: 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:

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

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

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

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

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

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

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

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

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

Page 11: 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:

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

Page 12: 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:

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 =

Page 13: 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:

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

Page 14: 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:

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

Page 15: 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:

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

Page 16: 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:

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.

Page 17: 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:

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

Page 18: 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:

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

Page 19: 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:

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

Page 20: 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:

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

Page 21: 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:

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

Page 22: 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:

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

Page 23: 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:

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

Page 24: 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:

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

Page 25: 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:

25

Übung 1

Bestimme ein Erzeugendensystem für dieAutomorphismengruppe des folgenden Graphen:

5

3

2

4

6

1

Page 26: 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:

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.

Page 27: 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:

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