Petri-Netze mathematisch fundierte Theorie zur formalen Beschreibung von (Informations-) Transformationsprozessen Entwicklung einer allgemeinen Theorie, die auf den Konzepten der Nebenläufigkeit, der Verteiltheit und der asynchronen Kommunikation aufbaut Ursprung: Dissertationsschrift „Kommunikation mit Automaten“ von Carl Adam Petri (1962) Seit Mitte der 80er Jahre vermehrter Einsatz in praktischen Anwendungen
Petri-Netz Ein Petri-Netz ist ein gerichteter bipartiter Graph, bestehend aus zwei disjunkten Mengen von Knoten Stellen Transitionen sowie Kanten Marken (engl. „token“)
Petrinetze: Formale Definition Ein Petri-Netz ist ein Tripel N = (S,T,F) mit S (Stellen), T (Transitionen) sind endliche Mengen S Ç T = Æ S È T ¹ Æ F Í (S x T) È (T x S) ist eine binäre Relation über S È T In einem Petri-Netz folgen Stellen und Transitionen jeweils abwechselnd Eine Stelle kann mehrere Transitionen als Nachfolger haben und umgekehrt
Grundlagen von Petri-Netzen: Knoten Stelle (Platz, Zustand) entspricht einer Zwischenablage Transition (Hürde, Zustandsübergang) beschreibt die Verarbeitung Bedeutung im Modellierungskontext: Datenspeicher Bedeutung im Modellierungskontext: Aktivität
Grundlagen von Petri-Netzen: Kanten Die Kanten dürfen jeweils nur von einer Sorte zur anderen führen Stellen, von denen Kanten zu einer Transition t laufen, heißen Eingabestellen von t. Stellen, zu denen – von einer Transition t aus – Kanten führen, heißen Ausgabestellen von t Bedeutung im Modellierungskontext: Kontroll- und Datenfluss
Grundlagen von Petri-Netzen: Marken Objekte werden als Marken (Token) bezeichnet und als kleine schwarze Kreise in die Stellen des Petri-Netzes eingetragen Bedeutung im Modellierungskontext: Informationsträger, Datenobjekt
Interpretation von Petrinetzen: Prozesse Bestellung eingetroffen Waren zusammenstellen verschicken Rechnung schreiben Ware versandfertig verschickt bearbeitet Beispiel: Bestellprozess (vereinfacht) Transitionen Aktionen, Handlungen Stellen Bedingungen bzw. Zustände Verbindungen Vor- und Nachbedingungen von Aktivitäten Marken Zustände einer Bedingung oder zu bearbeitende Objekte Markierungen lokale Zustände
Interpretationen von Petrinetzen Logistik Transitionen Transporte, Transformationen Stellen Materialbehälter, Lager Verbindungen Start und Ziel von Transporten Marken Güter Datenverarbeitung Transitionen Anweisungen, Programme Stellen Speicher, Register, Puffer Verbindungen Ein- Ausgabe von Programmen Marken Informationsobjekte
Grundlagen von Petri-Netzen: Schalten von Transitionen Schaltregel: Eine Transition t kann schalten oder »feuern«, wenn jede Eingabestelle von t mindestens eine Marke enthält Schaltet eine Transition, dann wird aus jeder Eingabestelle eine Marke entfernt und zu jeder Ausgabestelle eine Marke hinzugefügt. Anschauliche Vorstellung der Schaltregel:
Synchronisation: Beispiele: Schalten aktiviert t2 schalten t2 Synchronisation: Die Transition schaltet nur, wenn beide Stellen markiert sind. Nicht aktiviert t1
Petri-Netze modellieren Zustände und Zustandsübergänge Beispiel: Verkehrsampel rot rot-gelb grün gelb
Beispiel: Schaltfolge
Verschiedene Arten von Petri-Netzen In Abhängigkeit von der Art der Objekte unterscheidet man: Bedingungs/Ereignis-Netze (B/E-Netz) Stellen/Transitions-Netze (S/T-Netz) Höhere Petri-Netze
Bedingungs/Ereignis-Netze B/E-Netz Wenn die Objekte bzw. Marken vom Datentyp boolean sind Die Transitionen werden als Ereignisse interpretiert Die Stellen werden als Bedingungen bezeichnet Jede Stelle kann entweder genau eine oder keine Marke enthalten Zusätzliche Schaltbedingung: Eine Transition t kann schalten, wenn jede Eingabestelle von t eine Marke enthält und wenn jede Ausgabestelle von t leer ist.
Bedingungs/Ereignis-Netze Beispiel Zwei Roboter bestücken Leiterplatten mit elektronischen Bauelementen, die auf einem Fließband A antransportiert werden
Bedingungs/Ereignis-Netze: Beispiel B/E-Netz des Bestückungsroboters Nach dem Schalten
Stellen/Transitions-Netze S/T-Netze (P/T Net, Place/Transition Net) Stellen können mehr als eine Marke enthalten (in B/E-Netzen nur eine Marke) Transitionen müssen so viele Marken beim Schalten wegnehmen oder hinzufügen, wie die Gewichte an den Pfeilen angeben (in B/E-Netzen nur eine Marke) Soll eine Stelle eine Kapazität größer 1 erhalten, dann wird dies durch »K = ...« an der Stelle notiert Die Kapazität definiert die maximale Anzahl von Marken, die auf einer Stelle liegen dürfen
Schaltbedingungen bei Stellen/Transitions-Netzen T1 kann schalten: Anschl. sind in S1 eine Marke, in S2 4 Marken und in S3 2 Marken 1 1 T2 kann nicht schalten, da in S3 dann 3 Marken liegen würden. Dies ist wegen K = 2 von S3 nicht erlaubt. 2
Strukturelemente & Strukturen
Strukturelemente & Strukturen
Typisches Anwendungsmuster: Sequentielles Routing B „Erst A dann B“
Typische Anwendungsmuster: Parallelität und Verzweigung Paralleles Routing: AND-split AND-join „t2 und t3 nebenläufig und in beliebiger Reihenfolge“ Verzweigung / Alternativen: OR-split OR-join „t2 oder t3“: Implizite Auswahl, es ist nicht definiert, ob t2 oder t3 schaltet. (d.h. die genaue Verzweigung steckt implizit in den Transitionen)
Nicht-Determinismus Ein Konflikt tritt auf, wenn zwei Transitionen die gleiche Marke benötigen t1 t2 OR-split Wir benötigen eine Erweiterung der Petri-Netze für expliziten OR-split!
Iteration OR-join C OR-split A B B A Wiederholung von A Wiederholung von C und A OR-split OR-join Beachte: Implizite Auswahl bei OR-split (vgl. Modellierung von Alternativen / Auswahl)
Strukturelemente & Strukturen
Analyse von Petri-Netzen: Erreichbarkeit Eine Stelle heisst markiert, wenn sie mit einer Marke belegt ist Die Markierung m eines Netzes N ist die Menge aller markierten Stellen Falls eine Transition t aus T unter einer Markierung m aktiviert ist, kann t schalten. Das führt zu einer Folgemarkierung m‘ Schreibweise: m -t-> m‘ Falls m -t1-> m1, m1 -t2-> m2, ..., mn-1 -tn-> mn Schaltvorgänge sind, dann ist t = t1t2 ... tn eine Schaltfolge Wir sagen m‘ ist von m erreichbar (geschrieben m -*-> m‘), falls es eine Schaltfolge t gibt so dass m -t-> m‘ Eine Markierung heisst Endzustand, wenn keine Transition aktiviert ist.
Beispiel: Erreichbarkeit Übergangsgraph: 7 erreichbare Markierungen, 1 Endzustand rr: aus zwei roten ein schwarzes bb: verbrauche schwarz rot br: rot verbraucht Anzahl der Marken in Stelle rot Anzazhl der Marken in Stelle schwarz (3,2) (1,3) (3,1) (1,2) (3,0) (1,1) (1,0) bb, br rr br Die Anzahl der Kanten zwischen zwei Objekten entspricht der Anzahl der Marken, die verbraucht/produziert werden So können Verarbeitungsprozesse modelliert werden.
High-level Petrinetze High-level Petrinetze sind erweiterte Petrinetze: Unterscheidbare Marken (colored tokens) zur Modellierung von Attributen expliziter OR-split Zeit zur Performance Analyse verschiedene Zeitkonzepte Hierarchie zur Strukturierung der Modelle Modellierung auf verschiedenen Abstraktionsebenen
High-Level Petri-Netze: Unterscheidbare Marken Eine unterscheidbare Marke: stellt ein Objekt mit einer Menge von Attributen dar beinhaltet Werte für alle Attribute Frei Beschäftigt Wartend Start Beenden Beraten Name: Müller Funktion: Berater Erfahrung: 2 Name: Meyer Wohnort: Olten
High-level Petrinetze: Explizite Routing-Erweiterungen AND-split AND-join OR-split OR-join Split und Join sind speziell dargestellte Transitionen Der explizite OR-split ist eine spezielle Transition, die die Folgestelle auswählt auf Grund von Attributwerten der Eingangsmarke
Beispiel für expliziten OR-split Prozess: Kreditbearbeitung Kreditantrag Name: Müller Betrag: 20.000 Genehmigung durch Abteilungsleiter Kreditwürdig- keitsprüfung If Betrag > 50.000 then Genehmigung durch Abteilungsleiter else Kreditwürdigkeitprüfung Benötigt Attribute als Entscheidungskriterium
Prädikat/Transitions-Netze Pr/T-Netze Verwenden individuelle, »gefärbte« Marken B/E- und S/T-Netze verwenden nur »schwarze« Marken, die alle gleich sind
Zeitbehaftete Petri-Netze Verschiedene Notationsmöglichkeiten Eine Marke wird erst nach einer Verzögerung von 4 Zeiteinheiten wirksam Die Transition kann erst 4 Zeiteinheiten nach dem Eintreffen der Marke in der Eingangsstelle feuern
Zeitbehaftete Petri-Netze Beispiel
High-level Petrinetze: Hierarchische Modellierung Mechanismus, um komplexe Petrinetze zu strukturieren (vgl. Prozeduren, Unterprogramme) Wiederverwendung von Teilnetzen Pause Start Beenden Wartend Beraten Pause Start Beenden Frei Beschäftigt Start Beenden
FUNSOFT-Netze Vertreter eines workflow-orientierten Petri-Netz-Typs entwickelt von der FraunhoferGesellschaft (Institut für Software und Systemtechnik, Deiters et al.) TokenTypisierung möglich Unterschiedliche Zugriffsstrategien auf Stellen (Kanäle) Unterschiedliches Schaltverhalten von Transitionen spezifizierbar Aktivitäten (modelliert durch Transitionen) können Attribute haben wie z.B. Zeitverbrauch Ausführungsmodus (manuell, automatisch) Anzahl simultaner Ausführungen Verfeinerungsmodus Formale Semantik durch definierte Abbildung auf Pr/TNetze
Beispiel eines FUNSOFT-Netzes
Petri-Netze: Wertung Vorteile Nachteile bestehen aus wenigen und einfachen Elementen sind grafisch gut darstellbar Marken erlauben eine gute Visualisierung des jeweiligen Systemzustands besitzen ein solides theoretisches Fundament können – im beschränkten Rahmen – analysiert und simuliert werden einziges weit verbreitetes Basiskonzept zur Modellierung kooperierender Prozesse Nachteile Für die Praxis sind höhere Petri-Netze nötig, aber keine einheitliche Notation Petri-Netze sind mit anderen Basiskonzepten bisher nicht kombiniert worden, d.h. es ist ein vollständig für sich stehendes Konzept
Petri-Netze: Wertung Petri-Netze eignen sich besonders gut zur Modellierung von Systemen mit kooperierenden Prozessen Synchronisationen zwischen nebenläufigen Systemen können durch eine geeignete Netzstruktur erzwungen werden Sie werden auch für die Vorgangsmodellierung von Bürovorgängen eingesetzt (workflow). Produkte, z.B. LEU (Lion Entwicklungsumgebung) INCOME (Promatis) COSA (Software Ley) Nucleus (Baan)
Übersetzungsregeln EPK - High-level Petrinetze Ereignisgesteuerte Prozessketten Stelle Ereignis Transition Funktion UND-Split,UND-Join AND-Split, AND-Join ODER-Split, ODER-Join OR-Split, OR-Join XOR XOR-Split, XOR-Join Marke Nicht vorhanden Schaltungsregel Nicht vorhanden