Fighting State Explosion Automatische Berechnung eines Fortschrittsmaßes für die Sweep-Line-Methode
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.
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!
Ziel Jeden erreichbaren Zustand mindestens einmal betrachten Darauf verzichten, dabei den gesamten Zustandsraum speichern zu müssen Speicherplatz sparen!
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!
Inhalt Sweep-Line-Methode Theorie: Monotones Fortschrittsmaß Allgemeine Sweep-Line-Methode Praxis: Inkrementelles Fortschrittsmaß Geometrische Interpretation Optimierungsmöglichkeiten Kombination mit anderen Reduktionstechniken
1. Sweep-Line-Methode Unterteilung der Zustände in drei Gruppen Unbekannte Zustände Gesehene Zustände (noch nicht fertig abgearbeitet) Komplett abgearbeitete Zustände
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?
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
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
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
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?
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
2. Monotones Fortschrittsmaß Front besteht aus unmittelbaren Folgezuständen von MN MN ist (in) „komplett erforscht“ Entscheidung: MN löschen, oder noch nicht?
2. Monotones Fortschrittsmaß Warum MN nicht einfach löschen?
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?
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
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!
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!
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.
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
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
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
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
4. Inkrementelles Fortschrittsmaß Fortschrittsmaß soll sich einfach und schnell berechnen lassen Idee: inkrementelles Fortschrittsmaß, bestehend aus: Fortschrittswert der Anfangsmarkierung MN Abstandsfunktion für Transitionen o:TQ Für alle M[tM‘ gilt p(M‘)=p(M)+o(t)
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
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‘ und parikh(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
4. Inkrementelles Fortschrittsmaß Diese lineare Abhängigkeit ist zentrale Eigenschaft der automatischen Berechnung eines Fortschrittsmaßes: Bestimmung einer maximale Teilmenge U von linear unabhängigen Transitionen Definieren der Abstände der Transitionen in U Berechnung der Abstände der restlichen Transitionen
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!
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)
4. Inkrementelles Fortschrittsmaß Dieses Fortschrittsmaß ist leicht zu berechnen und einfach zu handhaben Allerdings ist die Berechnung in zwei Punkten nicht deterministisch: Wahl von U Wahl der Abstände der Transitionen in U
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
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‘
5. Geometrische Interpretation
6. Optimierungsmöglichkeiten Vorgehensweise zur automatischen Berechnung von p() ist in zwei Punkten nicht deterministisch: Wahl von U Abstände von Transitionen in U Kann man so die Qualität von p() beeinflussen?
6. Optimierungsmöglichkeiten
6. Optimierungsmöglichkeiten
6. Optimierungsmöglichkeiten
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!
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“
7. Kombination mit anderen Reduktionstechniken
Vielen Dank für eure Aufmerksamkeit