Universität Augsburg Institut für Informatik Lehrstuhl für Softwaretechnik und Programmiersprachen Theoretische Informatik Prof. Dr. Walter Vogler Seminar Petrinetze, 9.5.2005 Jannis Hermanns Fighting State Explosion Automatische Berechnung eines Fortschrittsmaßes für die Sweep-Line- Methode
42
Embed
Universität Augsburg Institut für Informatik Lehrstuhl für Softwaretechnik und Programmiersprachen Theoretische Informatik Prof. Dr. Walter Vogler Jannis.
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
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Fighting State Explosion
Automatische Berechnung eines
Fortschrittsmaßes für die Sweep-
Line-Methode
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Quelle• Paper zu einem Vortrag von
Dr. habil. Karsten Schmidt im Rahmen der Konferenz „Tools and Algorithms for the Construction and Analysis of Systems“ (29.3.-2.4.2004) in Barcelona
• Originaltitel „Automated generation of a progress measure for the sweep-line method“
• Veröffentlicht in: LNCS 2988, Springer-Verlag 2004, S. 192-204.
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Problem
• Effiziente Beantwortung von
Erreichbarkeitsfragen für beschränkte
Petrinetze
• 12 Speisende Philosophen: 60 Stellen, 48
Transitionen & beschränkt
• Aber: 531.440 erreichbare Zustände
Problem: State-Explosion!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Ziel
• Jeden erreichbaren Zustand
mindestens einmal betrachten
• Darauf verzichten, dabei den gesamten
Zustandsraum speichern zu müssen
Speicherplatz sparen!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Lösung
• Bestimmte Eigenschaften des Netzes kurz analysieren
• Während der Erforschung des Zustandsraumes bestimmte Zustände aussortieren
Immer nur einen Teil der erreichbaren Markierungen im Speicher haben!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
Inhalt
1. Sweep-Line-Methode
2. Theorie: Monotones Fortschrittsmaß
3. Allgemeine Sweep-Line-Methode
4. Praxis: Inkrementelles Fortschrittsmaß
5. Geometrische Interpretation
6. Optimierungsmöglichkeiten
7. Kombination mit anderen Reduktionstechniken
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
1. Sweep-Line-Methode
• Unterteilung der Zustände in drei
Gruppen
1. Unbekannte Zustände
2. Gesehene Zustände (noch nicht fertig
abgearbeitet)
3. Komplett abgearbeitete Zustände
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
1. Sweep-Line-Methode
• Die zweite Gruppe wird als „Front“
bezeichnet
• Die dritte Gruppe soll möglichst klein
gehalten werden
• Darf man Zustände aus der dritten
Gruppe einfach löschen?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
1. Sweep-Line-Methode
• Man darf Zustände, die nie wieder
vorkommen können, löschen
• Während der Erforschung des
Zustandsraumes Erreichbarkeitsfragen für
jeden Zustand beantworten
• Wie kann man entscheiden, welche Zustände
frühzeitig gelöscht werden dürfen
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Ein Fortschrittsmaß ist eine Funktion
p:MN (N sei beliebige Menge mit
partieller Ordnung ≤)
• p(M) liefert den Fortschrittswert der
Markierung M
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Folgt aus M[tM‘, dass p(M) ≤ p(M‘) so heißt
das Fortschrittsmaß monoton
• Jedes Feuern einer Transition bedeutet einen
Fortschritt des Systems (bzw. keinen
Rückschritt)
• Antwort auf die Frage, welche Zustände
frühzeitig gelöscht werden dürfen
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Ziel der S-L-M: Speicherplatz sparen
• S-L-M benutzt ein Fortschrittsmaß, um Zustände während der Erforschung des Zustandsraumes löschen zu können
• Welche Zustände dürfen gelöscht werden?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Start: Front besteht nur
aus MN
• Alle aktivierten
Transitionen werden
geschaltet und die
erreichten Zustände zur
Front hinzugefügt
• MN verlässt die Front
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Front besteht aus
unmittelbaren
Folgezuständen von MN
• MN ist (in) „komplett
erforscht“
• Entscheidung: MN
löschen, oder noch
nicht?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Warum MN nicht einfach
löschen?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Warum MN nicht einfach
löschen?
• MN könnte auf einem
Kreis liegen,
• Algorithmus würde in
Endlosschleife geraten!
• Wann darf MN gelöscht
werden?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Regel: Aus „komplett
erforscht“ dürfen alle
die Zustände gelöscht
werden, deren
Fortschrittswert kleiner
ist als der minimale in
der Front
• Sie kommen nie mehr
vor
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
2. Monotones Fortschrittsmaß
• Ein monotones Fortschrittsmaß ermöglicht erst das Anwenden der Sweep-Line-Methode
• Dieser Ansatz hat nur begrenzte Reichweite
• Was passiert bei Kreisen im Erreichbarkeitsgraphen?
• Hier besteht Verbesserungsbedarf!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Verallgemeinerung der klassischen Sweep-Line-Methode:Forderung der Monotonie an das Fortschrittsmaß wird fallen gelassen
• System kann „zurückfallen“, d.h. der Fortschrittswert wird durch das Feuern einer Transition verringert. Problem!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Zwei Markierungen M und M‘ mit M[tM‘ und p(M)>p(M‘) bilden eine Rückschrittskante
• Problem: Algorithmus weiß nicht, ob er M‘ schon untersucht hat
• Lösung: Markierungen wie M‘ werden als persistent markiert.
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Bei Entdeckung einer
Rückschrittskante wird
die erreichte Markierung
sofort aus der Front
entfernt und als
persistent markiert
• Mit dem Rest der
Markierungen wird wie
gewohnt verfahren
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Nachdem alle Zustände erforscht worden sind, bleibt eine Menge von als persistent markierten Zuständen
• Diese werden als Front für eine weiteren Durchgang der S-L-M benutzt
• So können zwar weitere Durchgänge nötig werden, aber es wird schließlich jede Markierung mindestens einmal besucht
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Warum terminiert der Algorithmus?
• Sweep-Line-Methode funktioniert nur
mit beschränkten Petrinetzen
• Wurde ein Zustand einmal als persistent
markiert, wird er nicht mehr gelöscht
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
3. Allgemeine Sweep-Line-Methode
• Jeder neue Durchgang benötigt eine „frische“ persistente Markierung
• Der Vorrat an Markierungen ist begrenzt
Algorithmus besucht jede erreichbare Markierung mindestens ein Mal und terminiert
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Fortschrittsmaß soll sich einfach und schnell berechnen lassen
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Ist einfach und schnell in der Handhabung,
aber wie gewinnt man es?
Fortschrittswert der Anfangsmarkierung
beliebig, Abstände der Transitionen dürfen
jedoch nicht willkürlich gewählt werden
• Problem: Jeder Markierung muss genau ein
Fortschrittswert zugeordnet werden
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Lässt sich eine Markierung durch zwei verschiedene Schaltfolgen erzeugen, müssen die Summen der Abstände beider Schaltfolgen gleich sein
• Sei M[wM‘ und M[w‘M‘ undparikh(w)parikh(w‘) sowie w=t1...tn und w‘=tn+1...tm
• Dann ist mindestens eine Transition in {t1,...,tm}
linear abhängig von den restlichen
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Diese lineare Abhängigkeit ist zentrale Eigenschaft der automatischen Berechnung eines Fortschrittsmaßes:1. Bestimmung einer maximale Teilmenge U von
linear unabhängigen Transitionen
2. Definieren der Abstände der Transitionen in U
3. Berechnung der Abstände der restlichen Transitionen
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Transitionen in U sind
linear unabhängig, ihre
Abstände deshalb
beliebig wählbar
• Abstände der restlichen
Transitionen lassen sich
jetzt leicht berechnen!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Wir wissen: alle tU
sind linear abhängig
von t1,...,tnU
• Also gilt:
∆t= 1∆t1+...+n∆tn
• Als Abstand für t ergibt
sich
o(t)= 1o(t1)+...+ no(∆tn)
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Dieses Fortschrittsmaß ist leicht zu
berechnen und einfach zu handhaben
• Allerdings ist die Berechnung in zwei
Punkten nicht deterministisch:
1. Wahl von U
2. Wahl der Abstände der Transitionen in U
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
4. Inkrementelles Fortschrittsmaß
• Negative Abstände sind schlecht
• Jeder Zustand, der durch eine Transition mit negativem Abstand erreicht wird, muss gespeichert werden
• Je mehr Transitionen mit negativem Abstand, desto geringer die Speicherplatzersparnis
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
5. Geometrische Interpretation
• Für n linear unabhängige Transitionen lässt sich das Fortschrittsmaß als n-dimensionales Koordinatensystem verstehen
• Jeder erreichbare Markierung entspricht einem Punkt
• ∆t wird als Vektor betrachtet: M[tM‘ wird verstanden als die Verschiebung des Punktes M durch den Vektor t auf den Punkt M‘
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
5. Geometrische Interpretation
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
6. Optimierungsmöglichkeiten
• Vorgehensweise zur automatischen Berechnung von p() ist in zwei Punkten nicht deterministisch:
1. Wahl von U
2. Abstände von Transitionen in U
• Kann man so die Qualität von p() beeinflussen?
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
6. Optimierungsmöglichkeiten
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
6. Optimierungsmöglichkeiten
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
6. Optimierungsmöglichkeiten
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
6. Optimierungsmöglichkeiten
• U sollte so gewählt werden, dass möglichst
viele Transitionen einen kleinen positiven,
möglichst wenige einen großen negativen
Abstand erhalten
• Beides konnte aber noch nicht als lineares
Optimierungsproblem formuliert werden
• Future research!
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler
Seminar Petrinetze, 9.5.2005Jannis Hermanns
7. Kombination mit anderen Reduktionstechniken
• Nicht mit allen Reduktionstechniken für
Zustandsräume kompatibel
• Tiefensuche macht Anwenden der S-L-
M sinnlos (warum?)
• Besonders effektiv im Zusammenspiel
mit „Partial-Order-Reduction“
Universität AugsburgInstitut für InformatikLehrstuhl für Softwaretechnik und ProgrammiersprachenTheoretische InformatikProf. Dr. Walter Vogler