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

Fighting State Explosion

Jan 08, 2016

Download

Documents

rasia

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