Petri-Netz

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Als Petri-Netze werden Modelle diskreter, vorwiegend verteilter Systeme bezeichnet. Der Informatiker Carl Adam Petri hat sie in den 1960er Jahren ausgehend von endlichen Automaten entwickelt, zunächst noch nicht in der heute gebräuchlichen Form. Dabei hat Petri nach grundlegenden Prinzipien zur Beschreibung nebenläufiger Schaltvorgänge gesucht, die später zu axiomatischen Theorien der Nebenläufigkeit verdichtet wurden.

Heutzutage werden Varianten von Petri-Netzen nicht nur in der Informatik zur Modellierung verwendet, sondern beispielsweise auch in der theoretischen Biologie, in der Geschäftsprozesswelt, im Maschinenbau, der Logistik und vielen anderen Gebieten. Zahlreiche andere Modellierungstechniken wie z. B. Aktivitätsdiagramme der UML 2 haben Prinzipien der Petri-Netze übernommen.

Allgemeine Symbolik und Beschreibung[Bearbeiten]

In der Grundausführung stellt sich ein Netz als ein Graph dar, der aus zwei Arten von Knoten aufgebaut ist, die Stellen (oder auch Plätze) bzw. Transitionen genannt werden. Die Knoten sind durch Kanten verbunden, wobei eine Kante genau eine Stelle mit einer Transition oder umgekehrt verbindet. Die Stellen können mit beliebig vielen Marken belegt sein. Eine solche Markierung stellt einen verteilten Zustand des Systems dar.

Ursprünglich hat Petri ungetypte Marken betrachtet. Ein Netz mit solchen Marken wird als Stellen/Transitions-Netz (kurz: S/T-Netz bzw. P/T-Netz aus dem Englischen zurück übersetzt als Platz/Transitions-Netz). Später wurden Netze mit getypten Marken und somit Werten eingeführt, welche mit Prädikaten an Transitionen und Kanten ausgewertet werden. Ein Netz mit getypten Marken wird daher Prädikat/Transitions-Netz genannt, wobei die englischsprachige Bezeichnung Coloured Petri Net (CPN) – gefärbtes Petrinetz – mindestens genauso häufig anzutreffen ist.

Die Dynamik eines Netzes ergibt sich aus dem Schalten von Transitionen: schaltet eine Transition, so entnimmt sie Marken aus den Stellen in ihrem unmittelbaren Vorbereich und legt Marken in die Stellen in ihrem Nachbereich, und zwar jeweils so viele, wie an den Kanten angegeben ist. Würde die Transition mehr Marken benötigen, als tatsächlich dort liegen, so kann sie nicht schalten.

Mathematische Darstellung eines Petrinetzes[Bearbeiten]

Ein P/T-Netz kann als ein Quintupel (P,T,F,W,m_0) dargestellt werden, dabei ist

  • P\cap T = \emptyset (Disjunktheit) und P\cup T \neq\emptyset
  • P die (in aller Regel endliche) Menge der Stellen
  • T die (ebenfalls endliche) Menge der Transitionen
  • F\subseteq\left(P\times T\right)\cup\left(T\times P\right) die Flussrelation, die die Kanten angibt. Kanten verbinden also stets Stellen mit Transitionen oder andersherum, niemals Stellen mit Stellen oder Transitionen mit Transitionen.
  • W\colon F\to\mathbb{N} die Kantengewichtungsfunktion, erweitert auf W'\colon \left(P\times T\right)\cup\left(T\times P\right)\to\mathbb{N}_0 durch (a,b)\notin F\Leftrightarrow W'(a,b) = 0
  • m_0 \colon P \to\mathbb{N}_0 die Anfangsmarkierung
Abb. 0a: Vier-Jahreszeiten-Netz (1)

Die Dynamik der Netze wird im nächsten Abschnitt erläutert.

Dynamik der Petrinetze[Bearbeiten]

Beispiel: Schalten einer Transition

Um die Dynamik und weitere Eigenschaften von Petrinetzen zu beschreiben sind folgende Definitionen und Bezeichnungen hilfreich.

Vor- und Nachbereich[Bearbeiten]

Der Vorbereich von x \in P \cup T, bezeichnet mit \bullet x , ist die Menge aller Knoten, von denen eine Kante zum Knoten x führt: \bullet x = \{y| (y,x) \in F\}.

Der Nachbereich von x \in P \cup T, bezeichnet mit  x \bullet, ist die Menge aller Knoten, zu denen eine Kante vom Knoten x aus führt: x \bullet = \{y| (x,y) \in F\}.

Beim Schalten einer Transition t wird aus jeder Stelle p_v \in \bullet t des Vorbereichs der Transition eine Anzahl an Marken entnommen und in jede Stelle  p_n \in t \bullet des Nachbereichs der Transition eine Anzahl an Marken hinzugefügt. Die Anzahl der hinzugefügten bzw. entnommenen Marken jeder Stelle p_i richtet sich nach dem Gewicht der Kante zwischen der Transition und der Stelle p_i.[1]

Schaltregel[Bearbeiten]

Die Schaltregel in P/T-Netzen stellt sich wie folgt dar: Eine Transition t \in T kann aus einer Markierung m schalten (notiert  m \stackrel{t}{\rightarrow} ) und das Netz in den Zustand m' bringen, genau dann wenn die Schaltbedingung für t erfüllt ist für alle Stellen p \in \bullet t (t ist dann aktiviert bzw. schaltfähig):

  • 0 \leq m(p) - W(p,t)

und die Folgemarkierung m'(p) für alle Stellen p \in P erfüllt ist:

  • m'(p) = m(p) - W'(p,t) + W'(t,p).

Das Schalten der aktivierten Transition t ergibt also die neue Markierung m'. Man schreibt dann m \stackrel{t}{\rightarrow}m'.

Schaltsequenz und Erreichbarkeit[Bearbeiten]

Eine Folge von Transitionen \sigma = t_1, t_2, ..., t_n mit  t_i \in T heißt Schaltfolge oder Schaltsequenz. Kann eine Schaltfolge auf eine Markierung m angewendet werden, so dass bei jedem Schritt die Schaltbedingung erfüllt ist, so heißt die Schaltsequenz anwendbar auf m. Ob eine Schaltfolge anwendbar ist oder wie eine bestimmte Markierung erreicht werden kann, ergibt das Erreichbarkeitsproblem. Gibt es eine anwendbare Schaltfolge \sigma, die die Anfangsmarkierung m_0 in m überführt, so ist die Markierung m erreichbar. Die Menge aller erreichbaren Markierungen R_N(m_0) wird Erreichbarkeitsmenge genannt[1].

Durch die Schaltregel ergibt sich, nach Art einer operationalen Semantik, ein vielleicht unendlicher beschrifteter Graph mit Wurzel m_0, der Erreichbarkeitsgraph, aus dem alle möglichen Schaltfolgen und damit einhergehenden Zustandsänderungen des Netzes abgelesen werden können. Es ist allerdings zu beachten, dass dies noch keine echt nebenläufige Semantik ist, da von jeder nebenläufigen Ereignismenge nur die Sequentialisierungen als Schaltfolgen betrachtet werden können.

Das Vier-Jahreszeiten-Netz N_1 aus Abbildung 0a hat aufgrund seiner sehr simplen Struktur einen sehr einfachen Erreichbarkeitsgraphen, der ebenso wie N_1 vier Zustände hat und vier Übergänge, die genau den Transitionen entsprechen.

Abb. 0b: Erweitertes Vier-Jahreszeiten-Netz

Das Netzbeispiel aus Abbildung 0b hat dagegen doppelt so viele erreichbare Zustände, da unabhängig von der Jahreszeit der Sack Reis umgefallen sein kann oder auch nicht. Dieses Netz zeigt auch die Eignung von Petrinetzen zum Darstellen verteilter Zustände und kausal unabhängiger, „nebenläufiger“ Ereignisse in verschiedenen Teilen des Systems – „ In China fällt ein Sack Reis um“ und „a“ können unabhängig voneinander schalten, da sie weder eine gemeinsame Vorbedingung haben noch eines vom anderen abhängt.

Modellieren mit Petri-Netzen[Bearbeiten]

Für Petri-Netze sind ganz unterschiedliche Varianten und Ausprägungen vorgeschlagen worden. In den 1960er und 1970er Jahren wurden zunächst elementare Varianten untersucht; heutzutage werden oft „high-level“-Formen verwendet. Sie sind formal aufwändiger, beschreiben aber das modellierte System intuitiv genauer und unmittelbarer.

Einführendes Beispiel [Bearbeiten]

Abb. 1: abstraktes Modell der Aktion eines Keksautomaten

Als einführendes Beispiel eines High-level-Netzes zeigt Abb. 1 ein von Einzelheiten weitestgehend abstrahierendes Modell eines Keksautomaten: Im Anfangszustand befindet sich eine Münze im Eingabeschlitz des Automaten. Damit kann der Automat einen Schritt durchführen: Er kassiert die Münze und legt eine Keksschachtel in das Ausgabefach. So entsteht der Endzustand.

Abb. 2: Modell des Inneren des Keksautomaten

Abbildung 2 verfeinert und erweitert das Modell in seinem Anfangszustand, indem nun das Verhalten des Inneren des Automaten sichtbar wird, zusammen mit der möglichen Rückgabe der eingeworfenen Münze.

Komponenten von Petrinetzen [Bearbeiten]

Der genaue Sinn der Abbildungen 1 und 2 folgt aus den universellen Modellierungsprinzipien von Petrinetzen: In einem (gegebenen oder geplanten diskreten) System identifiziert man eine Reihe von Komponenten, die im Petrinetz-Modell explizit dargestellt werden. Dazu gehören:

  • Gegenstände oder Datenelemente, die im System vorkommen, d. h. erzeugt, transformiert und verbraucht werden (im Beispiel: Münzen, Keksschachteln und Signale). Im Modell werden sie als Marken bezeichnet und graphisch möglichst „intuitiv“ dargestellt.
  • Speicherkomponenten, die Gegenstände oder Datenelemente enthalten können (im Beispiel: Eingabeschlitz, Entnahmefach, Kasse, Signalplatz, Keksspeicher, Rückgabe). Im Modell werden sie als Plätze bezeichnet und graphisch als Kreise oder Ellipsen dargestellt;
  • Zustände, also wechselnde Verteilungen von Gegenständen oder Datenelementen in Speicherkomponenten. (Abb. 2 beschreibt einen Zustand mit einer Münze im Eingabeschlitz und 3 Keksschachteln im Keksspeicher. Alle anderen Speicherkomponenten sind leer). Im Modell bildet eine Verteilung von Marken auf die Plätze eine Markierung. Graphische Darstellungen (wie die in Abb. 1 und Abb. 2) zeigen üblicherweise die Anfangsmarkierung, die den Anfangszustand des Systems beschreibt.
  • Aktivitäten, die Speicherinhalte verändern können (in Abb. 1: t, in Abb. 2: a, b, c). Im Modell werden sie als Transitionen bezeichnet und graphisch als Quadrat oder Rechteck dargestellt.
  • Die Beschreibung der Übergänge von Zuständen in neue Zustände: (im Beispiel: der Übergang vom Anfangs- zum Endzustand in Abb. 1 und vom Anfangs- zu einem Zwischenzustand in den Abbildungen Abb. 2 und Abb. 3). Im Modell kann man solche Schritte intuitiv als „Fluss von Marken durch die Pfeile“ auffassen.

Schritte [Bearbeiten]

Abb. 3: nach Eintritt von a

Von einer gegebenen Markierung M eines Petrinetz-Modells aus ist eine neue Markierung M' erreichbar, indem eine Transition t eintritt. Dazu muss t in M aktiviert sein. t ist in M aktiviert, wenn jeder bei t endende Pfeil an einem Platz p beginnt, der eine Marke enthält, die am Pfeil selbst notiert ist. In Abb. 1 ist t also aktiviert; in Abb. 2 sind a und c aktiviert, nicht aber b. Wenn eine aktivierte Transition t eintritt, verschwinden die oben beschriebenen Marken von ihren Plätzen, und für jeden bei t beginnenden Pfeil f entsteht gemäß seiner Anschrift eine Marke auf dem Platz, wo f endet.

Auf diese Weise entsteht in Abb. 1 aus der Anfangsmarkierung durch Eintritt von t die Endmarkierung. Aus Abb. 2 entsteht durch Eintritt von a die in Abb. 3 gezeigte Markierung.

Die „abstrakte“ Marke (schwarzer Punkt) auf dem Signal-Platz von Abb. 3 aktiviert nun zusammen mit einer Keksschachtel im Speicher die Transition b. Indem b eintritt, erscheint schließlich eine Keksschachtel im Entnahmefach. In Abb. 2 ist auch die Transition c aktiviert. Tritt c (statt a) ein, entsteht eine Markierung mit einer Münze in Rückgabe.

Mit der obigen Regel zum Eintritt von Transitionen sieht man unmittelbar, dass 2 oder 3 Münzen im Einwurfschlitz zu entsprechend vielen Schachteln im Entnahmefach führen. Mit einer zweiten Münze im Einwurfschlitz kann die Transition a unmittelbar nach ihrem ersten Eintritt wiederum eintreten, unabhängig vom (ersten) Eintritt von b.

Das Verhalten verteilter Systeme [Bearbeiten]

Das obige Beispiel zeigt vielfältige Bezüge zwischen den Aktivitäten eines verteilten Systems. Dementsprechend kann der Eintritt zweier Transitionen in unterschiedlicher Weise zusammenhängen. In Abb. 2 beispielsweise:

nichtdeterministisch
a und c treten alternativ zueinander ein. Die Münze im Einwurfschlitz aktiviert die beiden Transitionen a und c. Indem eine von beiden eintritt, ist die andere nicht mehr aktiviert. Welche der beiden Transitionen eintritt, wird nicht modelliert.
geordnet
a tritt vor b ein: Um einzutreten, benötigt b eine Marke, die a vorher erzeugt hat.
nebenläufig
Nachdem – wie in Abb. 3a eingetreten ist, kann mit einer zweiten Münze im Einwurfschlitz (in Abb. 2 nicht dargestellt) a ein zweites (oder c ein erstes) Mal eintreten, nebenläufig zum (d. h. unabhängig vom) Einritt von b.

Elementare Netze [Bearbeiten]

Abb. 4: elementare Fassung des Keksautomaten

Abbildung 4 zeigt ein Petrinetzmodell des Keksautomaten, in dem die Marken für Münzen, Signale und Keksschachteln nicht unterschieden werden: Alle werden gleichermaßen als „schwarze“ Marken dargestellt. Dabei tragen Pfeile keine Inschrift (nach der Systematik der Abbildungen 1 bis 3 müsste jeder Pfeil mit „\bullet“ beschriftet sein). In dieser Form sind Petri-Netze in den 1960er Jahren entstanden und häufig als Platz-/Transitionsnetze bezeichnet worden[2][3]. Die Regeln zum Eintritt einer Transition t sind in diesem Fall besonders einfach: t ist aktiviert, wenn jeder bei t endende Pfeil bei einem Platz beginnt, der mindestens eine Marke enthält. Diese Marken verschwinden beim Eintritt von t und es entsteht eine neue Marke auf jedem Platz, an dem ein bei t beginnender Pfeil endet.

Abb. 5: wechselseitiger Ausschluss

Solche einfachen Marken sind intuitiv angemessen, wenn (verteilter) Kontrollfluss modelliert wird, wie beispielsweise im Schema des wechselseitigen Ausschlusses in Abb. 5: Jeder der beiden Prozesse l und r („links“ und „rechts“) durchläuft zyklisch die drei Zustände lokal, wartend, kritisch. Der Schlüssel sorgt dafür, dass niemals beide Prozesse zugleich kritisch sind. In diesem Beispiel trägt jeder Platz immer entweder keine oder eine Marke. Man kann jeden Platz daher als eine Bedingung auffassen, die gelegentlich erfüllt und gelegentlich unerfüllt ist. Solche Netze werden häufig als Bedingungs-/Ereignisnetze bezeichnet.

Analyse von Petrinetzen[Bearbeiten]

Eigenschaften von Petrinetzmodellen [Bearbeiten]

Wichtige Eigenschaften eines Systems sollten sich in seinem Modell widerspiegeln. Ein Petrinetz muss daher nicht nur Verhalten, sondern auch Eigenschaften eines Systems darstellen. Beispielsweise hat in den Netzen der Abbildungen 2, 3 und 4 jede erreichbare Markierung M die Eigenschaft

M(\mathsf{Kasse})+ M(\mathsf{Speicher})= 3+M(\mathsf{Signal}).

Dabei bezeichnet M(p) für einen Platz p die Anzahl der Marken auf p in der Markierung M. Für jede Münze in der Kasse ist also eine Keksschachtel abgegeben worden oder (mit einer Marke auf Signal) wird noch abgegeben. Entsprechend gilt für Abb. 5

M(\mathsf{kritisch}_l)+ M(\mathsf{kritisch}_r)\leq 1.

Es ist also immer höchstens ein Prozess in seinem kritischen Zustand. Eine naheliegende, aber schon für elementare Systemnetze überraschend komplizierte Fragestellung ist die Erreichbarkeit einer beliebig gewählten Markierung M:

\text{Ist}\ M\ \text{von der Anfangsmarkierung aus erreichbar?}

Es hat Jahre gedauert, bis dafür ein Algorithmus gefunden und somit die Entscheidbarkeit dieses Erreichbarkeitsproblems nachgewiesen wurde [4]. Weitere wichtige Eigenschaften eines elementaren Systemnetzes N sind:

  • N terminiert: Jede in der Anfangsmarkierung beginnende anwendbare Schaltsequenz von N erreicht irgendwann einen Deadlock, d. h. eine Markierung, die keine Transition aktiviert. Diese Markierung heißt tot (die Keksautomaten terminieren).
  • N ist deadlockfrei: In N sind keine Deadlocks erreichbar (der wechselseitige Ausschluss ist deadlockfrei).
  • N ist lebendig: Von jeder erreichbaren Markierung aus ist für jede Transition t eine Markierung erreichbar, die t aktiviert (der wechselseitige Ausschluss ist lebendig).
  • N ist schwach lebendig: Zu jeder Transition t von N gibt es eine erreichbare Markierung, die t aktiviert (Keksautomat und wechselseitiger Ausschluss sind beide schwach lebendig).
  • N ist k-beschränkt für eine Zahl k: Jeder Platz enthält unter jeder erreichbaren Markierung höchstens k Marken (der Keksautomat ist 3-beschränkt, der wechselseitige Ausschluss ist 1-beschränkt). Ein 1-beschränktes Petri-Netz heißt sicher.
  • N ist reversibel: Die Anfangsmarkierung ist von jeder erreichbaren Markierung aus erreichbar (der wechselseitige Ausschluss ist reversibel).
  • N hat einen Homestate: Ein Homestate von N ist eine Markierung, die von jeder erreichbaren Markierung aus auf jeden Fall erreicht wird. Weder der Keksautomat noch der wechselseitige Ausschluss hat einen Homestate.

Zu beachten ist, dass die Eigenschaften Lebendigkeit, Beschränktheit und Reversibilität unabhängig voneinander sind[5].

Nachweis von Eigenschaften[Bearbeiten]

Bei allen beschriebenen Eigenschaften stellt sich die Frage, wie man sie für ein gegebenes anfangsmarkiertes Netz beweist oder widerlegt. (vgl. Verifikation) Alle genannten Eigenschaften sind für elementare Netze entscheidbar, allerdings nur mit Algorithmen, deren Komplexität für die Praxis viel zu groß ist. In der Praxis werden deshalb Algorithmen für hinreichende oder notwendige Bedingungen verwendet. Diese Algorithmen beruhen auf Platzinvarianten, anfangsmarkierten Fallen, der Markierungsgleichung und dem Überdeckungsgraphen eines Systemnetzes.

Softwarewerkzeuge[Bearbeiten]

Seit den 1980er Jahren entstand eine Vielzahl unterschiedlicher Softwarewerkzeuge zur Erstellung und zur Analyse von Petrinetzen. Als universelles Werkzeug für High-level-Netze hat sich insbesondere das Werkzeug CPN Tools durchgesetzt.[6] Daneben gibt es eine Vielzahl spezifischer Werkzeuge für spezielle Netzvarianten, beispielsweise zur Analyse zeitbehafteter und stochastischer Netze[7] oder für spezielle Anwendungsbereiche, beispielsweise service-orientierter Architekturen.[8]

Verallgemeinerungen, Spezialfälle, Varianten[Bearbeiten]

Die allgemeinste Form von High-level-Netzen [Bearbeiten]

Abb. 6: Variante des Keksautomaten

Das Modell des Keksautomaten in (Abb. 1Abb. 3) ist ein Beispiel eines high-level Netzes. Die volle Ausdrucksstärke solcher Netze erreicht man mit Hilfe von Variablen und Funktionen in den Inschriften der Pfeile. Als Beispiel modelliert Abb. 6 eine Variante des Keksautomaten mit 4 Münzen im Eingabeschlitz. Für die 4. Münze gibt es keine Schachtel im Speicher; die Münze soll also auf jeden Fall zurückgegeben werden. Dazu enthält Abb. 6 einen Zähler, deren Marke die Anzahl verfügbarer Schachteln angibt. Die Transition a wird aktiviert, indem die Variable x den aktuellen Wert dieser Marke annimmt. Zusätzlich ist a mit der Bedingung x > 0 beschriftet, die zum Eintritt von a erfüllt sein muss. Damit reduziert jeder Eintritt von a den Zählerwert um 1 und a ist beim Wert 0 nicht mehr aktiviert. Jede weitere Münze landet dann also über c in der Rückgabe.

Spezialfall free-choice [Bearbeiten]

Abb. 7: Die free-choice Eigenschaft

Im Modell des Keksautomaten der Abbildungen 2, 3 und 4 wählt die Marke im Einwurfschlitz nichtdeterministisch eine der Transitionen a oder c. Diese Wahl hängt von keinen weiteren Vorbedingungen ab; sie ist frei.

Im System des wechselseitigen Ausschlusses aus Abb. 5 hat der Schlüssel die Wahl zwischen den Transitionen b und e. Diese Wahl hängt aber zusätzlich davon ab, dass auch \mathsf{wartend}_l und \mathsf{wartend}_r markiert sind. Sie ist nicht frei.

Ein Netz N ist ein Free-choice-Netz, wenn schon seiner Struktur nach alle Wahlmöglichkeiten frei sind, falls also für zwei Pfeile, die am selben Platz p beginnen, gilt: Sie enden an Transitionen, an denen keine weiteren Pfeile enden.[9] Abbildung 7 skizziert diese Bedingung. Offensichtlich sind alle Modelle des Keksautomaten Free-choice-Netze, nicht aber der wechselseitige Ausschluss in Abb. 5.

Ob eine der in oben beschriebenen Eigenschaften gilt oder nicht gilt, ist für Free-choice-Netze mit effizienten Algorithmen entscheidbar.[9]

Verallgemeinerungen elementarer Netze [Bearbeiten]

Abb. 8: Kantengewichte und Platzkapazitäten:t ist nicht aktiviert

Schon in den 1970er Jahren wurden elementare Netze um zahlreiche weitere Ausdrucksmittel ergänzt. Drei davon seien hier geschildert:

  • Pfeile gewichten: Jedem Pfeil ist als „Gewicht“ eine natürliche Zahl n zugeordnet. Bei Eintritt der mit dem Pfeil verbundenen Transition fließen dann n Marken (statt nur einer Marke) durch den Pfeil.
  • Die Kapazität der Plätze beschränken: Jedem Platz p wird als „Schranke“ eine natürliche Zahl n zugeordnet. Wenn beim Eintritt einer Transition t mehr als n Marken auf p entstehen würden, ist t nicht aktiviert. Abbildung 8 zeigt ein Beispiel.
  • Einen Platz auf Abwesenheit von Marken testen: Ein Platz p ist mit einer Transition t durch eine neuartige „Inhibitor“-Kante verbunden. t ist nicht aktiviert, wenn p eine oder mehrere Marken trägt. Abbildung 9 skizziert diese Konstruktion.
Abb. 9: Wirkung einer Inhibitorkante

Gewichtete Pfeile und kapazitätsbeschränkte Plätze steigern nicht wirklich die Ausdruckskraft: Man kann sie mit intuitiv plausiblen Mitteln simulieren. Hingegen kann man mit Inhibitorkanten tatsächlich mehr ausdrücken und konsequenterweise weniger entscheiden. Insbesondere ist die Erreichbarkeit für Netze mit Inhibitorkanten nicht entscheidbar[10]. Weitere Ausdrucksmittel sind gelegentlich erforderlich, um wirklich genau zu modellieren, wie sich ein verteiltes System verhält. Beispielsweise wollen wir im System des wechselseitigen Ausschlusses in Abb. 5 darstellen, dass jeder der beiden Prozesse für immer in seinem lokalen Zustand, aber nicht für immer in seinem kritischen Zustand verharren darf. Dazu unterscheiden wir die kalte Transition a („tritt nicht unbedingt ein, wenn sie aktiviert ist“) von der heißen Transition b („tritt ein, wenn sie aktiviert ist“). Mit den Transitionen b und e ist es noch komplizierter: Wenn wir jedem wartenden Prozess garantieren möchten, dass er irgendwann einmal kritisch wird, müssen wir Fairness für b und e verlangen. Mit dem Unterschied zwischen heißen und kalten Transitionen und mit der Forderung von Fairness kann man die Menge der „gemeinten“ Abläufe eines Petrinetzes sehr viel genauer charakterisieren.[3]

Zeitbehaftete und stochastische Netze [Bearbeiten]

Wenn Transitionen geordnet eintreten, in Abb. 2 beispielsweise erst a dann b, soll diese Ordnung kausal und nicht zeitlich interpretiert werden. Dann ist es konsequent, in Abb. 2 mit einer zweiten Münze im Eingabeschlitz das erste Eintreten von b und das zweite Eintreten von a als unabhängig voneinander aufzufassen und nicht als gleichzeitig.

Dennoch gibt es Systeme mit Aktionen, deren Dauer modelliert werden soll, oder die in irgendeiner Weise an Uhren orientiert sind. Zur Modellierung solcher Systeme wurden zahlreiche Varianten zeitbehafteter Petrinetze vorgeschlagen. Dabei werden Plätze, Transitionen, Marken und Pfeile mit Zeitstempeln und Zeitintervallen versehen. Diese Zusätze regeln die Aktivierung von Transitionen und erzeugen neue Zeitstempel nach dem Eintritt einer Transition.

Wenn zwei Transitionen t und u um dieselbe Marke einer Markierung M konkurrieren (beispielsweise konkurrieren in Abb. 5 b und e um die Marke auf Schlüssel) und wenn M immer wieder erreicht wird, will man gelegentlich modellieren, dass t mit der Wahrscheinlichkeit p und u mit der Wahrscheinlichkeit 1-p eintritt. Dafür eignet sich die breit ausgebaute Theorie der stochastischen Netze[11].

Höhere Petrinetze[Bearbeiten]

Um Systeme, die mobile Komponenten als Teilsysteme enthalten, einheitlich zu beschreiben, wurden Petrinetzformalismen entwickelt, bei denen die Marken wiederum als Netzinstanzen interpretiert werden. Bei diesen sogenannten Netze in Netzen sind etliche Semantik-Varianten möglich, die sich unter anderem hinsichtlich der Frage unterscheiden, ob Marken als Netzexemplare oder lediglich als Referenzen zu verstehen sind.

Diese Formalismen entspringen einer objektorientierten Betrachtungsweise, bei der Exemplare von Klassen (Netzmustern) erzeugt werden können und eine Kommunikation zwischen Objekten über definierte Schnittstellen möglich ist.

Einige der frühen Vertreter sind die Objektpetrinetze von Lakos[12] (heute angesichts intensiver Weiterentwicklung hauptsächlich von historischer Bedeutung) und Valk, der diese zusammen mit Jessen[13] ursprünglich im Kontext von Auftragssystemen einführte.

Die historische Entwicklung[Bearbeiten]

Der Anfang [Bearbeiten]

Die Forschung zu Petrinetzen begann mit der Dissertation von Carl Adam Petri im Jahr 1962.[14] Diese Arbeit wurde zunächst kaum beachtet; die Theoretische Informatik hat damals andere Fragestellungen verfolgt und für die Praxis kamen Petris Vorschläge zu früh. Ein erster Durchbruch im Bereich der Theorie kam Ende der 1960er Jahre mit der Verwendung von Petris Ideen im Project MAC des MIT. In den 1970er Jahren wurden Platz-/Transitionsnetze weltweit studiert, allerdings recht oft aus dem verengten Blickwinkel formaler Sprachen.[15]

Die Entwicklung seit den 1980er Jahren [Bearbeiten]

Seit Beginn der 1980er Jahre wurden ganz unterschiedliche Varianten von High-level-Netzen vorgeschlagen, die Gegenstände, Datenelemente oder Symbole als Marken verwenden. Diese Formalismen erhöhen die Ausdruckskraft von Platz-/Transitionsnetzen beträchtlich. Zugleich konnten viele Analysetechniken von Platz-/Transitionsnetzen auf diese Formalismen verallgemeinert werden.[3]

Mit zunehmenden Interesse an verteilten Systemen und verteilten Algorithmen wurden und werden seit den 1980er Jahren zahlreiche neue Modellierungstechniken vorgeschlagen. Petrinetze haben sich gegenüber diesen Neuentwicklungen behauptet; vielfach werden sie als Maßstab für die Qualität und die Ausdrucksmächtigkeit für Modelle verteilter Systeme verwendet. Einen Überblick über zahlreiche Anwendungsbereiche von Petrinetzen gibt.[16]

Aktuelle Themen [Bearbeiten]

Mit Petrinetzen werden heutzutage Systeme modelliert, deren Verhalten aus diskreten, lokal begrenzten Schritten besteht. Das sind oft, aber keineswegs ausschließlich Systeme, die Rechner integrieren oder die mit Rechnern simuliert werden. Zu den derzeit besonders viel versprechenden Anwendungen von Petrinetzen gehört die Modellierung von Prozessen der Systembiologie,[17] der Geschäftsprozesswelt[18] und der Service-orientierten Architekturen.[8]

Zum Weiterlesen [Bearbeiten]

In den fünfzig Jahren seit den Anfängen der Petrinetze hat sich eine Vielfalt an Varianten und Anwendungsbereichen herausgebildet, deren großer Umfang eine vollständige, systematische Darstellung ausschließt. Wer die vielfältigen Aspekte von Petrinetzen kennenlernen möchte, findet im Petrinetz-Portal der Universität Hamburg [PetriWorld] einen geeigneten Anfang. Die im Abstand mehrerer Jahre veranstaltete Sommerschulreihe Advanced Course on Petrinets (zuletzt der 5. Kurs in Rostock, 2010) und die jährliche Conference on Applications and Theory of Petri Nets geben aktuelle Überblicke und Darstellungen. Unter den zahlreichen Lehrbüchern ist[3] aktuell.

Anwendungsgebiete[Bearbeiten]

Siehe auch[Bearbeiten]

Normen und Standards[Bearbeiten]

  • ISO/IEC 15909-1: Software und System-Engineering – Höhere Petri-Netze – Teil 1: Begriffe, Definitionen und grafische Notation (zur Zeit nur in Englisch verfügbar)
  • ISO/IEC 15909-2: Software und System-Engineering – Höhere Petri-Netze – Teil 2: Transferformat (zur Zeit nur in Englisch verfügbar)

Weblinks[Bearbeiten]

Literaturverweise[Bearbeiten]

  1. a b D. Abel: Petri-Netze für Ingenieure: Modellbildung und Analyse diskret gesteuerter Systeme 1990, Springer-Verlag, Berlin.
  2. B. Baumgarten: Petri-Netze – Grundlagen und Anwendungen. 1996, Spektrum-Akademischer Verlag.
  3. a b c d W. Reisig: Petrinetze – Modellierung, Analyse, Fallstudien. 2010, Vieweg-Teubner Verlag.
  4. MAYR, Ernst W. An algorithm for the general Petri net reachability problem. SIAM Journal on computing, 1984, 13. Jg., Nr. 3, S. 441-460.
  5. ''Petri Nets: Properties, Analysis and Applications'', by Tadao Murata, in: ''Proceedings of the IEEE'', vol. 77, no. 4, 541-580, April 1989. Cs.uic.edu. Abgerufen am 13. Oktober 2014.
  6. K. Jensen, L.M. Kristensen: Coloured Petri Nets. 2009, Springer-Verlag.
  7. The Petri Net World
  8. a b www.service-technology.org.
  9. a b J. Desel, J. Esparza: Free Choice Petri Nets. In Theoretical Computer Science. Vol. 40, 1995.
  10. C. Reutenauer: The mathematics of Petri nets. 1990, Prentice Hall.
  11. M. Ajmone Marsan, G. Balbo, G. Conte, S. Donatelli, G. Frankeschinis: Modeling with generalized stochastic Petri nets. 1995, Wiley.
  12. C. Lakos: From coloured Petri nets to object Petri nets, Application and Theory of Petri Nets 1995, pp 278--297, 1995, Springer
  13. Eike Jessen, Rudiger Valk: Rechensysteme: Grundlagen der Modellbildung, Studienreihe Informatik', 1987, Springer, Heidelberg
  14. C.A. Petri: Kommunikation mit Automaten. 1962, Institut für instrumentelle Mathematik der Universität Bonn.
  15. L. Peterson: Petri Net Theory and the Modeling of Systems. 1981, Prentice Hall.
  16. C. Girault, R. Valk: Petri Nets for Systems Engineering. 2003, Springer-Verlag.
  17. I. Koch, W. Reisig, F. Schreiber (eds): Modeling in Systems Biology. 2011, Springer-Verlag.
  18. W.M.P. van der Aalst and C. Stahl: Modeling Business Processes, A Petri Net-Oriented Approach. 2011, The MIT Press