Was sind Petri-Netze und wofür werden diese genutzt?
Petri-Netze sind eine verbreitete Technik zur Beschreibung von dynamischem Verhalten
und bilden beispielsweise eine Basis zur Definition der Semantik von Sprachen zur Geschäftsprozessmodellierung
Was sind Graphen? Nenne 2 Beispiele.
Ein Graph G ist eine Struktur, die aus Elementen N, genannt Knoten (engl. Node oder Vertex), und deren Verbindungen , genannt Kanten (engl. Edge), besteht.
Beispiele für derartige Graphen sind endliche Automaten,
die aus Zuständen (Knoten) und Zustandsübergängen (Kanten) bestehen, oder Syntaxbäume.
Bei Petri-Netzen handelt es sich um eine spezielle Form von Graphen, nämlich bipartite Graphen, die zwei verschiedene Typen von Knoten nutzen.
Petri-Netze sind eine spezielle Form von Graphen warum?
Was sind Beispiele für Sachverhalte welche Bipartite Graphen beschreiben?
Beispiele für Sachverhalte, die sich für eine Beschreibung mit einem bipartiten Graphen eignen, sind
Aufgaben und Aufgabenverantwortliche,
Ehepaare (ohne gleichgeschlechtliche Partnerschaft)
und Geschäftsprozessmodelle, in denen abwechselnd Aktivitäten und Zustände beschrieben werden.
Petri-Netze sind bipartite Graphen mit den Knotentypen Plätze (auch als Stellen bezeichnet) und Transitionen.
Was beschreibt ein Platz und was eine Transition?
Ein Platz beschreibt einen Zustand einer Komponente des betrachteten Systems,
und eine Transition beschreibt eine Aktivität, also den Übergang von einem Zustand in einen anderen.
Daher sind Plätze nur mit Transitionen verbunden und umgekehrt, also genau die von einem bipartiten Graphen erwartete Eigenschaft.
Ein Petri-Netz ist ein bipartiter Graph (P,T,F), bestehend aus folgenden Bestandteilen?
Plätze P, dargestellt als Kreise,
Transitionen T , dargestellt als Rechtecke (oder Balken),
Fluss F , dargestellt als Pfeile von Transitionen zu Plätzen oder umgekehrt.
Die Plätze sind markiert als p1, p2 etc., die Transitionen als t1, t2 etc.
Wie wird eine Markierung des Petri-Netzes noch genannt?
Eine Markierung wird auch als Belegung, Zustand oder Konfiguration des Petri-Netzes bezeichnet.
Mit welchen Formen beschreiben Petri-Netze Prozesse? Und was hat es mit den Tokenspiel auf sich?
Petri-Netze beschreiben Prozesse mithilfe von Plätzen (Kreisen), Transitionen (Rechtecken) und Marken (Token), die sich durch das Netz bewegen.
Diese Bewegung wird als Tokenspiel bezeichnet und folgt bestimmten Regeln.
Grundbegriffe:
Was ist bei einem Petri-Netz der Vorbereich und was der Nachbereich?
Vorbereich (∙x): Alle Knoten, die eine Verbindung zu einem bestimmten Knoten x haben.
Bei Transitionen: Plätze, die Ressourcen bereitstellen (Eingangsplätze).
Nachbereich (x∙): Alle Knoten, die eine Verbindung von x haben.
Bei Transitionen: Plätze, in denen Ergebnisse abgelegt werden (Ausgangsplätze).
Wie sind die Regeln des Tokenspiels?
Startzustand: Jeder Platz enthält eine bestimmte Anzahl von Marken (Token), die durch die Anfangsmarkierung vorgegeben sind.
Feuern einer Transition:
Eine Transition ist aktiviert, wenn alle ihre Eingangsplätze mindestens eine Marke haben.
Eine aktivierte Transition kann feuern, muss aber nicht.
Wenn sie feuert:
Entfernt sie je eine Marke aus allen Eingangsplätzen.
Fügt sie je eine Marke zu allen Ausgangsplätzen hinzu.
Petri-Netze können unterschiedliche Verzweigungen enthalten:
Benne die 3.
AND-Split:
Eine Transition führt zu mehreren Plätzen.
Wenn die Transition feuert, werden in allen folgenden Plätzen Marken abgelegt.
XOR-Split:
Ein Platz führt zu mehreren Transitionen.
Wenn eine Marke im Platz liegt, kann eine der Transitionen feuern – aber nicht beide gleichzeitig.
Joins:
Zusammenführungen von Verzweigungen. Sie sind keine Pflicht, aber häufig sinnvoll, um Prozesse klar abzubilden.
Parallelisierung
Wie könnte ein AND-Split aussehen?
Synchronisation
Wie könnte ein AND-Join aussehen?
Auswahl
Wie könnte ein XOR-Split aussehen:
Transitionen t1t_1t1 und t3t_3t3 sind aktiviert, da ihre Eingangsplätze (p1p_1p1 und p3p_3p3) mindestens eine Marke enthalten.
Wenn t1t_1t1 feuert:
p1p_1p1 verliert eine Marke.
p2p_2p2 erhält eine Marke.
Danach sind t1t_1t1 und t2t_2t2 aktiviert, t3t_3t3 bleibt unverändert aktiviert.
Das Spiel setzt sich fort, indem weitere Transitionen feuern.
Welche Varianten von Petri-Netzen kennst du?
1. Bedingungs-Ereignis-Netze
2. Workflow-Netze
3. Platz-Transitions-Netze
Welche Eigenschaft haben Bedingungs-Ereignis-Netze?
Eigenschaft: Jeder Platz darf höchstens eine Marke enthalten.
Bedeutung:
Eine Marke steht für eine Bedingung, die erfüllt ist (Marke vorhanden) oder nicht (Marke fehlt).
Anwendung: Diese Netze eignen sich gut, um einfache Ja/Nein-Bedingungen abzubilden.
Welche Eigenschaft haben Workflow-Netze?
Eigenschaft:
Es gibt genau einen Startplatz (i) ohne Eingangsverbindungen.
Es gibt genau einen Endplatz (o) ohne Ausgangsverbindungen.
Jeder Platz und jede Transition liegt auf einem Pfad zwischen dem Start- und dem Endplatz.
Ideal für die Modellierung von Geschäftsprozessen oder Workflows.
Anwendung: Werden oft in Workflow-Systemen genutzt, um Prozesse zu automatisieren (ähnlich wie BPMN).
Was sind die Eigenschaften von einem Platz-Transitions-Netz?
Jede Verbindung hat ein Gewicht, das angibt, wie viele Marken verbraucht oder erzeugt werden.
Regeln:
Beim Feuern einer Transition wird die Anzahl der Marken entsprechend dem Gewicht angepasst.
Anwendung: Geeignet für Szenarien mit parallelen Abläufen, wie die Bearbeitung mehrerer Aufträge gleichzeitig.
Petri-Netze modellieren analog zu endlichen Automaten Zustände und Zustandsübergänge in einem Graphen. Worin unterscheiden sich beide Techniken bei der Modellierung von Zuständen und Zustandsübergängen?
Sowohl Petri-Netze als auch endliche Automaten modellieren Zustände als Knoten in einem Graphen. In einem Petri-Netz werden allerdings die Zustandsübergänge als ein anderer Typ von Knoten modelliert, während sie in endlichen Automaten als Kanten modelliert werden.
Gegeben sei folgendes Petri-Netz:
Welche Transitionen können in diesem Netzzustand feuern ...
... bei Interpretation als Bedingungs-Ereignis-Netz?
... bei Interpretation als Workflow-Netz?
... bei Interpretation als Platz-Transitions-Netz?
In allen drei Fällen können die Transitionen t1 und t2 feuern. t5 kann nicht feuern, da nur p5, aber nicht p6 eine Marke enthält.
Mit Petri-Netzen lassen sich wichtige Eigenschaften von parallelen Systemen darstellen. Diese Eigenschaften sind besonders wichtig für sicherheitskritische Anwendungen.
Welche Eigenschaften wären das?
Lebendigkeit (Liveness):
Sicherheit (Safety):
Deadlock-Freiheit:
Terminierung:
Um welche Eigenschaften von Petri-Netzen handel es sich?
Eine Transition ist lebendig, wenn sie immer irgendwann aktiviert werden kann.
Ein Netz ist lebendig, wenn alle Transitionen lebendig sind.
Beispiel: Ein Netz ist nicht lebendig, wenn eine Transition nie feuern kann
Beispiel: Ein Netz ist nicht lebendig, wenn eine Transition nie feuern kann.
Ein Platz ist sicher, wenn es eine Obergrenze kkk für die Anzahl der Marken gibt, die sich dort ansammeln können.
Ein Netz ist sicher, wenn alle Plätze diese Obergrenze einhalten.
Beispiel: Ein Netz ist nicht sicher, wenn sich an einem Platz unendlich viele Marken sammeln können.
Ein Netz ist deadlock-frei, wenn immer mindestens eine Transition aktiviert ist, also das System nicht „steckenbleibt“.
Ein Netz terminiert, wenn jede Abfolge von Transitionen irgendwann zu einem Zustand führt, in dem nichts mehr aktiviert werden kann (Deadlock).
Beschreibe die Eigenschaften folgender Netze:
Netz a):
Nicht lebendig: t3 kann nie feuern.
Sicher: Es gibt keine Möglichkeit, zusätzliche Marken zu erzeugen.
Hat einen Deadlock: Nach dem Feuern von t1 oder t2 ist nichts mehr aktiviert.
Terminiert: Das Netz führt immer zu einem Deadlock.
Netz b):
Lebendig: Beide Transitionen t1 und t2 können unendlich oft feuern.
Nicht sicher: Die Marken in Platz p3 können unbegrenzt wachsen.
Deadlock-frei: Es bleibt immer etwas aktiviert.
Nicht terminiert: Es gibt keinen endgültigen Stillstand.
Netz c):
Nicht lebendig: Manche Transitionen können nicht immer feuern.
Hat einen Deadlock: Nach bestimmten Abfolgen bleibt das Netz stecken.
Nicht terminiert: Abwechselnde Transitionen verhindern einen Stillstand.
Welches Problem wird im diesen Netz dargestellt?
Problem: Fünf Philosophen teilen sich fünf Gabeln. Jeder braucht zwei Gabeln, um zu essen. Ohne Regeln kann es zu einem Deadlock kommen, wenn alle gleichzeitig eine Gabel nehmen und auf die zweite warten.
Lösung: Mit einem Petri-Netz kann man modellieren, dass jeder Philosoph irgendwann essen kann, ohne dass es zu einem Deadlock kommt.
Was ist der Wechselseitige Ausschluss? Wann wird er eingesetzt?
Definition: Zwei Prozesse dürfen nicht gleichzeitig einen „kritischen Bereich“ betreten.
Beispiele:
Bei einer Ampel dürfen nicht beide Richtungen gleichzeitig grün zeigen.
Auf einer eingleisigen Bahnstrecke dürfen keine Züge in beide Richtungen fahren.
Was wird in diesem Petri-Netz Modelliert?
Gibt es Varianten von Petri-Netzen, die sicher terminieren bzw. die sicher nicht terminieren?
Workflow-Netze terminieren gemäß Definition immer. Für die anderen Varianten ist keine allgemeingültige Aussage möglich.
Welche Eigenschaften kann man mit Petri-Netzen bei einem System überprüfen ob es dies bestizt?
Mit Petri-Netzen kann man überprüfen, ob ein System bestimmte Eigenschaften wie
Lebendigkeit,
Sicherheit oder
Deadlock-Freiheit besitzt.
Mit Petri-Netzen kann man überprüfen, ob ein System bestimmte Eigenschaften wie Lebendigkeit, Sicherheit oder Deadlock-Freiheit besitzt. Dafür gibt es zwei wichtige Ansätze:
Die da wären?
Zwei wichtige Ansätze:
Erreichbarkeitsgraphen und
Invarianten.
Was zeigt dieser? Nenn ein Beispiel.
Ein Erreichbarkeitsgraph zeigt:
Alle möglichen Zustände (Markierungen) eines Petri-Netzes.
Welche Transitionen von einem Zustand aus ausführbar sind.
Beispiel: Eingleisige Eisenbahnstrecke
Ziel: Sicherstellen, dass nie zwei Züge gleichzeitig auf derselben Strecke sind.
Welcher Graph wird hier Dargestellt?
Der Erreichbarkeitsgraphe:
die Modellierung einer eingleisigen Eisenbahnstrecke als Variation des wechselseitigen Ausschlusses
Welche Probleme kann der Erreichbarkeitsgraph bei komplexeren Netzen habe?
Probleme bei komplexeren Netzen:
Wenn Transitionen unbegrenzt oft feuern können, wird der Erreichbarkeitsgraph unendlich groß
Selbst bei endlichen Netzen können die Graphen schnell unübersichtlich werden.
Entscheidbare Probleme
Frage: Kann ein bestimmter Zustand s2s_2s2 von einem Startzustand s1s_1s1 erreicht werden?
Ergebnis: Dieses Problem ist entscheidbar, aber die Berechnung ist sehr aufwendig.
Um Welches Problem handelt es sich?
Erreichbarkeitsproblem:
Frage: Haben zwei Petri-Netze die gleichen erreichbaren Zustände?
Ergebnis: Dieses Problem ist nicht entscheidbar, es sei denn, die Netze haben begrenzte Zustände.
Gleichheitsproblem von Erreichbarkeitsmengen
Bitte begründen Sie, warum die Erreichbarkeitsmenge für ein gegebenes Petri-Netz mit gegebener Anfangsbelegung rekursiv aufzählbar ist.
Da die Anzahl der Plätze im Petri-Netz endlich ist, kann man alle theoretisch möglichen Belegungen aufzählen und dann mithilfe der Entscheidbarkeit des Erreichbarkeitsproblems entscheiden, ob die jeweilige Belegung erreichbar ist.
Was ist die Invariante von einem Petri-Netz?
Sie sind wichtige Werkzeuge,
um das Verhalten eines Petri-Netzes zu analysieren
und dessen Korrektheit sicherzustellen.
Warum sind Invarianten nützlich?
In der Praxis:
In Software helfen Invarianten sicherzustellen, dass Algorithmen keine logischen Fehler machen.
In einem Petri-Netz können Invarianten garantieren, dass Deadlocks oder unerwünschte Zustände nicht auftreten
Eine Invariante ist etwas, das sich nie ändert, egal was passiert. In einem Petri-Netz beschreibt sie entweder:
Welche 2 Arten von Invarianten gibt es?
Platz-Invarianten (P-Invarianten): Betreffen die Markenanzahl an den Plätzen.
Transitions-Invarianten (T-Invarianten): Beschreiben, wie sich eine Sequenz von Transitionen auf das Netz auswirkt.
Die Wiederherstellung des gleichen Zustands nach einer bestimmten Abfolge von Transitionen.
Markierungen: Die Verteilung der Marken auf den Plätzen kann als Vektor dargestellt werden.
Transitionen: Jede Transition hat einen Vektor, der angibt, wie Marken hinzugefügt oder entfernt werden.
Das gesamte Verhalten des Netzes wird in einer Matrix zusammengefasst, in der jede Spalte eine Transition beschreibt.
Im folgenden befindet sich ein Petri-Netz mit Markierung.
Wie kann dieses als Vektor beschrieben werden?
In folgendem Peti-Netz wird t1 “ gezündet”. Wie sieht der dazugehörige Vektor aus?
Schritt 1: Schau dir die Eingänge von t1 an t1 hat keine eingehenden Kanten. Das heißt, es entnimmt nirgends Tokens. → Überall bleibt 0.
Schritt 2: Schau dir die Ausgänge von t1 an t1 gibt ein Token an Platz p1 → Für p1schreiben wir eine +1.
Schritt 3: Fülle den Vektor
Für p1 +1(ein Token wird hinzugefügt).
Für alle anderen (p2,p3,p4,p5p): 0 (keine Änderung).
Der Vektor ist also:
In folgendem Peti-Netz wird t3 “ gezündet”. Wie sieht der dazugehörige Vektor aus?
Schritt 1: Schau dir die Eingänge von t3 an t3 nimmt Tokens von zwei Plätzen:
Von p1: ein Token wird entnommen → -1.
Von p2: ein Token wird entnommen → -1.
Schritt 2: Schau dir die Ausgänge von t3 an t3 fügt ein Token zu Platz p4 hinzu → +1.
Für p1: −1 (ein Token wird entnommen).
Für p2: −1 (ein Token wird entnommen).
Für p4: +1(ein Token wird hinzugefügt).
Für p3 und p5: 0(keine Änderung).
Wie würde die Matrix aussehen um das Gesamtverhalten des Peti-Netzes zu beschreiben?
Was beschreibt dabei jede Spalte in der Matrix?
Jede Spalte dieser Matrix beschreibt eine Transition.
Gegeben sei folgende Matrix:
Wie muss du nun vorgehen um zum Beispiel die 3 Spalte wieder rauszuholen?
Man multipliziert die 3 Spalte mit einem Spaltenvektor.
Dabei hat dieser so viele Zeilen wie die Matrix Spalten.
Dann wird die 3 Zeile auf 1 gesetz und der Rest auf 0.
Dann wird die Zeilenanzahl des Vektors mit der Spaltenanzahl der Matrix um diese dann zu addieren.
Wie lautet die Rechnung um die Platzinfariante zu berechnen?
Zuletzt geändertvor 21 Tagen