Einführung in Petri-Netze Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: D 4 B 1 A • Motivation 6 C 5 • Petri-Netze Nur eine beste Anordnung der Aktionen ist gesucht für eine einmalige Ausführung (Graph zyklenfrei). Verarbeitete Objekte, Signale werden nicht repräsentiert. • Markierungen Flussgraphen: • Invarianten 13 a d 10 38 1 2 8 e 8 s Credits: L. Priese, H. Wimmel: Petri-Netze, Theoretische Informatik, Springer 2003 G. Goos: Vorlesungen über Informatik, Springer 2000 http://www.daimi.au.dk/PetriNets/introductions/pn2000_introtut.pdf http://www.fh-augsburg.de/informatik/projekte/emiel/petrinetze b 1 c 26 7 7 t 1 24 2 27 f Materialfluss ist kontinuierlich, einzelne Objekte darin werden nicht modelliert. Insgesamt gibt es keine Unterscheidung des fließenden Materials. Zyklische Abläufe innerhalb des Netzes sind nicht modellierbar. Endliche Automaten: 1 q0 0 1 0 q1 0 1 0 q2 1 q3 Keine Möglichkeit der Modellierung von Nebenläufigkeit. Abhängigkeit von externen Eingaben. c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-1 c LETTMANN 2003/04 Modellierung von Abläufen und Prozessen (2) • Kanal-Instanzen-Netz Einsatz in der Entwurfsplanung; passive Knoten, sog. Kanäle (Stellen) als Informationsbestände und -wege, aktive Knoten, sog. Instanzen (Transitionen) als Funktionen und Aktivitäten. Münzeinwurf fertig für Münzeinwurf fertig für Münztest Münzrückgabe fertig für Warenausgabe VIII-2 Klassifikation von Petri-Netzen (1) Modellierung eines einfachen Verkaufsautomaten: Warenausgabe Modellierung — Petri-Netze Münze akzeptiert Nachfüllen und Entnehmen als konkurrierende Prozesse: • Bedingungs-Ereignis-Netz, B/E-Netz Modellierung dynamischer Systeme; Übergang der Zustände oder Bedingungen (Stellen) bei Eintritt eines Ereignisses (Schalten der Transition); gültige Bedingung als Knoten mit Marke; Ereignisse, deren Bedingungen erfüllt sind, lassen Marken weiterwandern und erfüllen so neue Bedingungen. Münzeinwurf fertig für Münzeinwurf fertig für Münztest Warenvorrat Ware nachfüllen Warenausgabe Münzrückgabe Nachfüllanforderung fertig für Warenausgabe Modellierung/Erkennung von Nebenläufigkeiten, Konflikten und Verklemmungen Münze akzeptiert Münzzähler und beschränkter Vorrat: Münzeinwurf fertig für Münzeinwurf k=4 Münzzähler fertig für Münztest Warenvorrat Ware nachfüllen 4 Warenausgabe Münzrückgabe Nachfüllanforderung fertig für Warenausgabe c LETTMANN 2003/04 Münze akzeptiert Modellierung — Petri-Netze VIII-3 c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-4 Netze Klassifikation von Petri-Netzen (2) • Stellen-Transitions-Netz, S/T-Netz Verallgemeinerung der B/E-Netze; Stellen können mehrere Marken aufnehmen bis zu einer jeweils maximalen Kapazität, Transitionen übertragen auch mehrere Marken von Stelle zu Stelle Modellierung/Erkennung von Nebenläufigkeiten, Konflikten, Verklemmungen, Engpässen und Staueffekten 1 Definiton Ein Netz N = (S, T, F ) besteht aus einer endlichen Menge S von Stellen, einer endlichen Menge T von Transitionen und einer Flussrelation F ⊆ (S × T ) ∪ (T × S). Zur Vereinfachung betrachten wir S und T als geordnete Mengen, d.h. S = {s1, s2, ..., sm} T = {t1, s2, ..., tn} 2 k=4 k=3 • Prädikat-Transitionen-Netz, P/T-Netz Verallgemeinerung der S/T-Netze; Objekte mit individuellen Eigenschaften (Prädikate) als Marken auf Stellen, Transitionen prüfen Eingangsbedingungen und garantieren Ausgangsbedingungen s1 t1 s2 t2 s5 s3 t3 s6 t4 s4 Muttern 4 2 ∅S = ∅M Schrauben 4 4 2 s7 Ein Netz beschreibt die statische Struktur eines Systems. 1 3 c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-5 c LETTMANN 2003/04 Vorbereiche und Nachbereiche Modellierung — Petri-Netze Beispiele zu Vor- und Nachbereichen Anzahl der Transitionen, die mit einer Stelle in Beziehung stehen, und Anzahl der Stellen, die mit einer Transition in Beziehung stehen, sind unbeschränkt. s1 t1 s2 t2 s5 s3 t3 s6 t4 s4 s7 Definiton Sei N = (S, T, F ) ein Netz. Für s ∈ S und t ∈ T heißt •s = {t | (t, s) ∈ F } s• = {t | (s, t) ∈ F } •t = {s | (s, t) ∈ F } t• = {s | (t, s) ∈ F } c LETTMANN 2003/04 Vorbereich von s Nachbereich von s Vorbereich von t Nachbereich von t Modellierung — Petri-Netze VIII-6 t1 s1 t2 s2 VIII-7 c LETTMANN 2003/04 s3 t3 •s1 •s2 •s3 •s4 •s5 •s6 •s7 =∅ = {t1} = {t1} = {t1} = {t2} = {t3} = {t4} s1 • = {t1} s2 • = {t2} s3 • = {t3, t4} s4 • = {t3, t4} s5 • = ∅ s6 • = ∅ s7 • = ∅ •t1 •t2 •t3 •t4 = {s1} = {s2} = {s3, s4} = {s3, s4} t1• = {s2, s3, s4} t2• = {s5} t3• = {s6} t4• = {s7} •s1 = {t1} •s2 = {t2} •s3 = {t2} s1• = {t2} s2• = {t2} s3• = ∅ •t1 = ∅ t1• = {s1} •t2 = {s1, s2} t2• = {s2, s3} t3 • = ∅ •t3 = {s3} Modellierung — Petri-Netze VIII-8 S/T-Netze Darstellung von S/T-Netzen Graphische Darstellung eines Petri-Netzes N = (S, T, F ) in Form eines bipartiten gerichteten Graphen Definiton Ein Stellen/Transitionsnetz (S/T-Netz) N = (S, T, F, k, w, M0) besteht aus 1. einem unterliegenden Netz (S, T, F ), 2. einer (Kapazitäts-) Funktion k : S → N ∪ {∞}, k total, die jeder Stelle eine (möglicherweise unbeschränkte) Kapazität zuordnet (Default ∞), 3. einer (Gewichts-) Funktion w : F → N+, w total, die jeder Kante ein positives Gewicht zuordnet (Default 1), und 4. einer Markierungsfunktion (Anfangsmarkierung) M0 : S → N, M0 total, die jeder Stelle eine Anzahl von Marken zuordnet, mit der Eigenschaft M0(s) ≤ k(s) S/T-Netz N Stellen S Stelle si gerichteter Graph Nebenbedingungen Knotenmenge VS Knoten vs,i Knotenmarkierung mn (vs,i) = si , mk (vs,i) = k(si ) Transitionen T Knotenmenge VT VT ∩ VS = ∅ Transitionen ti Knoten vt,j Knotenmarkierung mn (vt,j ) = tj Flussrelation F Kantenmenge E (si , tj ) ∈ F ∩ (S × T ) (vs,i, vt,j ) ∈ E Vorwärtskante (ti , sj ) ∈ F ∩ (T × S) (vt,i, vs,j ) ∈ E Rückwärtskante (VS VT , E) bipartit Kantenmarkierung mw (e) = w(e) k=3 k=8 s∈S k=4 4 29 29 s6 s2 s7 s5 Kapazität k=∞ k=8 Gewicht w=1 4 t2 s2 Mögliche Semantik s5 k=4 2 s1 2 t3 s3 t1 s6 Löschen von Objekten tote Stelle, Archiv Erzeugen von Objekten Quelle, Reservoir Verarbeitung von Objekten Zwischenspeicher, Puffer Aufspalten von Objekten Verzweigung, Nebenläufigkeit (Anf.) Verschmelzen von Objekten gem. Speicher, Synchronisationsstelle k=2 2 t4 s4 s7 Jede totale Funktion M : S → N für ein S/T-Netz N = (S, T, F, k, w, M0) heißt Markierung von N , wenn gilt M (s) ≤ k(s) c LETTMANN 2003/04 s∈S Modellierung — Petri-Netze VIII-9 Aktivierung von Transitionen c LETTMANN 2003/04 Modellierung — Petri-Netze Beispiele zu aktivierten Transitionen k=4 In einem S/T-Netz sollen Abläufe modelliert werden. Wann kann eine einzelne Aktion (Transition) innerhalb eines Ablaufs ausgeführt werden? • Notwendige Bedingungen müssen erfüllt sein. Stellen im Vorbereich müssen mindestens so viele Marken tragen, wie es das Gewicht der Kante zur Transition verlangt. t2 2 s1 t1 s1 2 s7 k=8 4 t2 s2 s6 s5 k=4 k=2 2 2 t4 t4 s4 k=4 k=2 s4 s6 k=2 s5 t3 t3 s3 t1 2 s3 s5 2 k=4 2 t2 s2 k=4 Markierung M = (2, 0, 1, 1, 3, 0, 0) Aktivierte Transitionen: t1, t3, t4 k=8 4 s2 k=8 4 • Ausführung der Aktion darf nicht zu Problemen führen. Stellen im Nachbereich dürfen höchstens so viele Marken tragen, dass noch entsprechend der Kante von der Transition viele Marken hinzugefügt werden können, ohne die Kapazität zu überschreiten. k=4 VIII-10 s1 s7 Definiton Es sei ein Stellen/Transitionsnetz N = (S, T, F, k, w, M0) gegeben und M : S → N sei eine weitere Markierung von N . Eine Transition t ∈ T heißt unter M aktiviert (aktiv), kurz M -aktiviert, in Zeichen M [t , falls 2 t3 s3 t1 s6 k=2 2 t4 s4 s7 Markierung M = (2, 0, 1, 2, 3, 1, 0) Aktivierte Transitionen: t4 k=2 t1 2. für alle s ∈ t • \ • t gilt M (s) + w(t, s) ≤ k(s) bzw. für alle s ∈ t • ∩ • t gilt M (s) − w(s, t) + w(t, s) ≤ k(s). Modellierung — Petri-Netze s1 t2 s3 t3 s2 Wir nehmen an, dass n ≤ ∞ gilt für alle n ∈ N. c LETTMANN 2003/04 2 2 1. für alle s ∈ •t gilt M (s) ≥ w(s, t) und Markierung M = (0, 1, 1) Aktivierte Transitionen: t1 VIII-11 c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-12 Schalten von Transitionen Beispiele zu Folgemarkierungen k=4 In einem S/T-Netz sind für eine Markierung meist mehrere Transitionen aktiviert. Unter diesen kann eine ausgewählt werden, die als nächste ausgeführt wird. Die in den Kantengewichten geforderte Anzahl Marken wird von den Stellen im Vorbereich der Transition entfernt, auf alle Stellen im Nachbereich der Transition wird die in den Kantengewichten geforderte Anzahl Marken hinzugefügt. k=4 k=8 k=4 4 s2 s5 s2 k=4 t2 k=4 k=8 4 t2 s2 s5 k=4 t2 s2 s5 k=4 2 s1 t3 s3 t1 2 2 s6 s1 t3 s3 t1 k=2 2 2 t4 s4 s6 k=2 2 t4 s4 s7 s7 Markierung M = (2, 0, 1, 1, 3, 0, 0), M [t1 M mit Markierung M = (1, 1, 3, 2, 3, 0, 0) k=8 4 t2 k=8 4 s5 k=4 2 s1 2 2 t3 s3 t1 s6 s1 t1 k=2 2 s3 t3 2 s4 s7 t4 k=8 k=4 4 t2 s5 k=4 Die Transition t schaltet (feuert) M nach M , in Zeichen M [t M . t2 s2 s5 k=4 2 s7 Definiton Es sei ein Stellen/Transitionsnetz N = (S, T, F, k, w, M0) gegeben und M : S → N sei eine weitere Markierung von N sowie t ∈ T eine M -aktivierte Transition. Durch das Schalten (Feuern) der Transition t wird die Folgemarkierung M ist definiert durch M (s) + w(t, s) s ∈ t• \ •t s ∈ •t \ t• M (s) − w(s, t) M (s) = M (s) + w(t, s) − w(s, t) s ∈ •t ∩ t• M (s) k=8 4 s2 2 t4 s4 k=4 s6 k=2 s1 t3 s3 t1 2 2 s6 s1 t3 s3 t1 k=2 2 2 t4 s4 s6 k=2 2 t4 s4 s7 s7 Markierung M = (1, 1, 3, 2, 3, 0, 0), M [t3 M mit Markierung M = (1, 1, 2, 1, 3, 2, 0) k=4 k=8 k=4 4 k=8 4 t2 s2 s5 k=4 s2 t2 s5 k=4 2 s1 t3 s3 t1 2 2 s6 s1 t1 k=2 2 s3 t3 2 2 t4 s4 s6 k=2 s4 s7 t4 s7 Markierung M = (1, 1, 3, 2, 3, 0, 0), M [t4 M mit Markierung M = (1, 1, 2, 1, 3, 0, 2) c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-13 Erreichbare Markierungen 1. M ∈ [M 2. Wenn für M ∈ [M die Tranistion t ∈ T aktiviert ist und M nach M schaltet, d.h. M [t und M [t M , dann gilt auch M ∈ [M . 3. Keine weiteren Markierungen gehören zu [M . Die Menge [M0 nennen wir kurz die in N erreichbaren Markierungen. Beispiel: k=2 s1 2 t2 s3 k=4 VIII-14 t3 s2 k=2 2 s1 t1 2 s3 t3 s6 2 t4 s7 Markierung M0 = (1, 1, 0, 0) Mark. M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 t1 Modellierung — Petri-Netze Bestimmung der erreichbaren Markierungen (1) Definiton Es sei ein Stellen/Transitionsnetz N = (S, T, F, k, w, M0) gegeben und M : S → N sei eine weitere Markierung von N . Die Menge der von M aus (durch das Schalten der Transitionen in N ) erreichbaren Markierungen von N , in Zeichen [M , ist die reflexive und transitive Hülle von M bzgl. der Folgemarkierungsrelation: 2 c LETTMANN 2003/04 Stellen s0 s1 s2 1 1 0 1 0 2 1 0 0 0 2 2 0 2 0 0 1 4 0 1 2 0 1 0 0 0 6 0 0 4 0 0 2 0 0 0 s3 0 0 2 0 2 0 2 4 0 2 4 6 Folgemarkierungen M0[t2 M1, M0[t3 M2 M0[t1 M3 M0[t1 M4 M0[t2 M5, M0[t3 M6 M0[t2 M6, M0[t3 M7 M0[t2 M8, M0[t3 M9 M0[t2 M9, M0[t3 M10 M0[t2 M10, M0[t3 M11 Markierung M0 = (0, 1, 1) [M0 = {(n, 1, 1), (n, 1, 2), (n, 1, 0) | n ∈ N} c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-15 c LETTMANN 2003/04 Modellierung — Petri-Netze VIII-16