fighting state explosion

42
1 Fighting State Explosion Using Petri net Invariants in State Space Construction

Upload: rasia

Post on 08-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Fighting State Explosion. Using Petri net Invariants in State Space Construction. Quelle. K. Schmidt: Using Petri net Invariants in State Space Construction Proc. 9th Conf. Tools and Algorithms for the Construction and Analysis of Systems LNCS 2619: Seite 473-488, Springer, 2003. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fighting State Explosion

1

Fighting State Explosion

Using Petri net Invariants in State Space Construction

Page 2: Fighting State Explosion

2

Quelle

K. Schmidt:

Using Petri net Invariants in State Space Construction

Proc. 9th Conf. Tools and Algorithms for the Construction and Analysis of Systems

LNCS 2619: Seite 473-488, Springer, 2003

Page 3: Fighting State Explosion

3

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 4: Fighting State Explosion

4

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 5: Fighting State Explosion

5

Grundidee

5-speisende-Philosophen-System

• 242 Zustände

Page 6: Fighting State Explosion

6

Grundidee

• 10-Philosophen-System : 59048 Zustände• 500-Philosophen-System: 3500-1 Zustände• Eigenschaften wie Deadlockfreiheit werden durch Aufstellen

des Erreichbarkeitsgraphen verifiziert.

• Problem: Wie können die Zustände in einem begrenzten Speicher gebracht werden, damit z.B. ein Algorithmus zum Aufstellen des Erreichbarkeitsgraphen terminiert?

Page 7: Fighting State Explosion

7

Grundidee

• mögliche Lösungsansätze:

• Die Größe der Zustände wird komprimiert.

S-Invarianten-Technik

• Die Anzahl der gespeicherten Zustände wird reduziert.

T-Invarianten-Technik

Page 8: Fighting State Explosion

8

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 9: Fighting State Explosion

9

Depth-first-Algorithmusvar V: set of markings initial ;var E: set of edges initial ;var current: marking initial MN;procedure StateGraph ()var t: transition;var Enabled: set of transitions:begin V:=V U {current}; Enabled := {t| t T current t - } for t in Enabled do E := E U [current,current+t+-

t -] current = current+t+- t -; if current V then StateGraph(); fi current = current+t - - t+ ; done end.

// t - = W(.,t)

// t + = W(t,.)

Page 10: Fighting State Explosion

10

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 11: Fighting State Explosion

11

S-Invarianten-Technik

Wiederholung:

• Inzidenzmatrix C(N):• jede Stelle sS einer Zeile und jede Transition tT entspricht

einer Spalte der Inzidenzmatrix • C(s,t) = W(t,s) + W(s,t)

• S-Invariante:• Zeilenvektor y, mit y . C(N) = 0 (0 entspricht Nullvektor)

• M [MN : y. M = y. MN

Page 12: Fighting State Explosion

12

S-Invarianten-Technik• Modifiziertes Producer-Consumer-Petrinetz

Inzidenzmatrix:

Page 13: Fighting State Explosion

13

S-Invarianten-Technik

S-Invariante: (1,1,0,0,0,0,0,0)

Page 14: Fighting State Explosion

14

• Ziel der S-Invarianten-Technik: Zustandskompression

Sei y eine S-Invariante mit y(s) ≠ 0 :

y. M = y. MN sS y(s) . M(s) = y. MN

y(s) . M(s) = y. MN - s'S\{s} y(s') . M(s')

y. MN - s'S\{s} y(s') . M(s')M(s) =

y(s)

S-Invarianten-Technik

Page 15: Fighting State Explosion

15

S-Invarianten-Technik

• Producer-Consumer-Beispiel:

y. MN - s'S\{s2} y(s') . M(s')

M(s2) = =

y(s2)

(1,1,0,0,0,0,0,0) * (1,0,0,1,1,0,0,1) - M(s1)

= = 1 - M(s1) 1

Nach Schalten von p: M(s2) = 1 - M(s1) = 1 - 0 = 1

Page 16: Fighting State Explosion

16

S-Invarianten-Technik

• Partitionierung der Stellenmenge S:

PR s1

s5

s3s2

s4

s6

s7

s8

P = signifikante StellenR = redundante Stellen

S = P U R, P ∩ R = 0

für jede Stelle rR: S-Invariante y mit y(r) ≠ 0 und r'R\{r}: y(r') = 0

Markierungen aller redundanten Stellen können durch die Markierungen der signifikanten Stellen berechnet werden

Page 17: Fighting State Explosion

17

S-Invarianten-Technik• Wie erfolgt die Partitionierung der Stellenmenge S ?

1. Inzidenzmatrix C(N) transponieren

2. Transponierte Matrix CT(N) in Obere-Dreiecks-Form umwandeln

3. Einteilung in head- und tail-Variablen

(signifikante Stellen = head-Variablen,

redundante Stellen = tail-Variablen)

4. partial-assignment durchführen

(eine tail-Variable wird mit 1, allen anderen mit 0 belegt)

5. Gleichung CT(N) . y = 0 lösen

Page 18: Fighting State Explosion

18

S-Invarianten-Technik

• Ergebnis:

• Bei n linear-unabhängigen S-Invarianten können n Komponenten der Markierung weggelassen werden

• für zwei erreichbare Markierungen M und M' :

M = M' sP: m(s) = m'(s)

Page 19: Fighting State Explosion

19

S-Invarianten-Technikvar V: set of markings initial ;var E: set of edges initial ;var current: marking initial MN;procedure StateGraph ()var t: transition;var Enabled: set of transitions:begin V:=V U {current}; Enabled := {t| t T current t - } for t in Enabled do E := E U [current,current+t+-

t -] current = current+t+- t -; if current V then StateGraph(); fi current = current+t - - t+ ; done end.

• der aktuelle Zustand ist immer komplett (current) bekannt

• P-Teil (current) der Markierung wird in V und E gespeichert • Korrektheit bleibt erhalten

• S-Invarianten müssen nicht bekannt sein

• kleinere Vektoren beschleunigen Suchen und Einfügen in V

Page 20: Fighting State Explosion

20

S-Invarianten-Technik

• Nach Terminierung des Algorithmus sind folgende Erreichbarkeitsgraphen des Producer-Consumer-Beispiel gespeichert:

Ohne S-Invarianten Kompression Mit S-Invarianten Kompression

Page 21: Fighting State Explosion

21

S-Invarianten Technik• Zusammenfassung:

• 30 – 50% einer Markierung muss nicht in die Datenstruktur gespeichert werden

• Laufzeitverbesserung durch Beschleunigung von Such- und Einfügeoperationen aufgrund von geschrumpften Vektoren in der Datenstruktur

• Der Aufwand zur Berechnung der nötigen Informationen wird überkompensiert.

• Informationen können aus der Inzidenzmatrix gewonnen werden

Page 22: Fighting State Explosion

22

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 23: Fighting State Explosion

23

T-Invarianten-Technik

• Wiederholung:

• Zustandsgleichung: M' = M + C(N) . Parikh(w) • T-Invariante:

• Ganzzahliger Spaltenvektor x, mit C(N) . x = 0• x ist trivial, wenn x = 0 gilt.

• Gilt M [w M (Zyklus), dann ist Parikh(w) eine T-Invariante.

Page 24: Fighting State Explosion

24

T-Invarianten-Technik• Producer-Consumer-Petrinetz

Inzidenzmatrix:

Page 25: Fighting State Explosion

25

T-Invarianten-Technik

T-Invariante: (1,1,1,1)

Page 26: Fighting State Explosion

26

• Ziel der T-Invarianten-Technik: Zustandsreduktion

• Jedoch müssen so viele Zustände gespeichert werden, damit der depth-first-Algorithmus terminiert.

• Zyklen gefährden das Terminieren des depth-first-Algorithmus

• Mindestens ein Zustand jedes Zyklus muss abgespeichert werden.

T-Invarianten-Technik

Page 27: Fighting State Explosion

27

Gesucht ist eine Menge Z [MN von Zuständen, so dass jeder Zyklus im Erreichbarkeitsgraphen mindestens eine Markierung in Z hat.

T-Invarianten-Technik

• Jeder Zyklus kann durch eine T-Invariante ausgedrückt werden

• Ermittle Menge U von Transitionen, wobei U mindestens eine Transition jeder nicht trivialen T-Invariante hat und somit mindestens eine Transition jedes Zyklus enthält.

Page 28: Fighting State Explosion

28

T-Invarianten-Technik

T-Invariante x

T-Invariante z

T-Invariante y

a

b

c

U

Erreichbarkeitsgraph

• jeder Zyklus im Erreichbarkeitsgraph hat einen Zustand, der mit einer Kante versehen ist, die mit einer Transition aus U gekennzeichnet ist.

Page 29: Fighting State Explosion

29

T-Invarianten-Technik

Die Menge von Zuständen, bei denen mindestens ein Element aus U aktiviert wird, erfüllt die Anforderungen von Z.

Page 30: Fighting State Explosion

30

T-Invarianten-Technik

• Wie findet man die Menge U ?

Menge U = Menge der tail-Variablen

• Für jede T-Invariante x gilt: C(N) . x = 0

• C(N) wird in Obere-Dreiecks-Form gebracht

• Wird allen tail-Variablen die 0 zugeordnet, so wird der 0-Vektor als Lösung berechnet.

• keine T-Invariante hat bei allen tail-Variablen eine 0.

Page 31: Fighting State Explosion

31

T-Invarianten-Technik

• Wie findet man die Menge U ?

1. Inzidenzmatrix C(N) aufstellen

2. C(N) in Obere-Dreiecks-Form umwandeln

3. Einteilung in head- und tail-Variablen vornehmen

4. Die Menge der tail-Variablen bilden U.

Page 32: Fighting State Explosion

32

T-Invarianten-Technikvar V: set of markings initial ;var current: marking initial MN;var depth: integer initial 0;procedure TStateGraph ()var t: transition;var Enabled: set of transitions:beginEnabled := {t| t T current t - }if Enabled ∩ U ≠ or depth mod k = 0

then V:=V U {current};fi for t in Enabled do current = current+t+- t -;

depth := depth + 1; if current V then TStateGraph(); fi current = current+t - - t+ ;

depth := depth - 1; done end.

Page 33: Fighting State Explosion

33

T-Invarianten-Technik

Ursprünglicher Erreichbarkeitsgraph Abgespeicherte Zustände

Page 34: Fighting State Explosion

34

T-Invarianten Technik• Zusammenfassung:

• Erheblich weniger Speicheraufwand nötig

• Laufzeit-Speicher-Verhältnis durch Variable k konfigurierbar

• T-Invarianten müssen nicht berechnet werden

• Informationen können aus der Inzidenzmatrix gewonnen werden

Page 35: Fighting State Explosion

35

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 36: Fighting State Explosion

36

Praktische Versuche

• S-Invarianten-Technik:• n-Philosophen-System: 5n Stellen, 2n linear unabhängige S-

Invarianten gespeicherter Vektor um 40% reduziert

• Laufzeit:

10 phil 11 phil 12 phil

Zustände 59048 117146 531440

Zeit (sec) ohne Reduktion 2.7 9.8 37.7

Zeit (sec) mit Reduktion 2.1 7.7 30.3

Page 37: Fighting State Explosion

37

Praktische Versuche

5 phil 6 phil 7 phil 8 phil 9 phil Zustände ohne Red. 242 728 2186 6560 19682Zeit (sec) ohne Red. 0.03 0.04 0.08 0.23 0.76Zustände mit Red. (k=5000) 160 530 1708 5417 16952Zeit (sec) mit Red. (k=5000) 0.09 0.7 9.7 136.0 2177.6Zustände mit Red. (k=20) 186 591 1828 5664 17545Zeit (sec) mit Red. (k=20) 0.05 0.1 0.36 3.19 10.8Zustände mit Red. (k=10) 201 629 1947 5984 18289Zeit (sec) mit Red. (k=10) 0.04 0.07 0.19 0.59 1.8

• T-Invarianten-Technik:

Page 38: Fighting State Explosion

38

Praktische Versuche

100 phil 200 phil Zustände mit partial order reduction 29702 119402Zeit (sec) mit partial order reduction 2.2 16.4Zustände mit beiden Red. (k=5000) 10311 41093Zeit (sec) mit beiden Red. (k=5000) 45.3 395.3Zustände mit beiden Red. (k=20) 14502 59002Zeit (sec) mit beiden Red. (k=20) 3.5 26.5Zustände mit beiden Red. (k=10) 17702 71402Zeit (sec) mit beiden Red. (k=10) 2.8 21.4

• T-Invarianten-Technik in Kombination mit partial order reduction:

Page 39: Fighting State Explosion

39

Überblick

Grundidee Depth-first-Algorithmus S-Invarianten-Technik T-Invarianten-Technik Praktische Versuche Fazit

Page 40: Fighting State Explosion

40

Fazit

• S-Invarianten-Technik:

• Verbesserung in Speicherbedarf und Laufzeit• Kompatibel zu anderen Techniken• Keine besondere Vorsicht bei Einsatz notwendig• In den Programmen LoLA, INA verwendet

Page 41: Fighting State Explosion

41

Fazit

• T-Invarianten-Technik:

• Als „standalone“-Technik nicht geeignet• Wertvoll in Kombination mit anderen Techniken• Parameter k muss sinnvoll gewählt werden• In dem Programm UPPAAL verwendet

Page 42: Fighting State Explosion

42

Vielen Dank

für die

Aufmerksamkeit !!!