Petri-Netze mathematisch fundierte Theorie zur formalen Beschreibung von (Informations-) Transformationsprozessen Entwicklung einer allgemeinen Theorie,

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Eine Frage der Sichtweise
Vorlesung Compilertechnik Sommersemester 2008
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Frame-Logik Eine Einführung Andreas Glausch.
7. Natürliche Binärbäume
Institut für Informatik Abt. Intelligente Systeme
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8 Behandlung von Begriffen 8.1 Grundlagen aus Logik und Psychologie
Objektorientierter Entwurf
Sequenzdiagramm.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Baumstrukturen Richard Göbel.
Abhängigkeitsbeziehung
DOM (Document Object Model)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Vortrag im Rahmen des Seminars
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
GROOVE Graphs for Object-Oriented Verification Seminar: SEFSIS Sommersemester 2006 Basil Becker
Dieter Bergmann, Lichtenfels
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Grundschutztools
Kurzüberblick über ereignisgesteuerte Prozessketten (EPK)
Grundkurs Theoretische Informatik
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
5 Methoden und Werkzeuge zur Prozessmodellierung
Übersicht Motivation Konzeption Umsetzung/ Implementierung
Dienstag, Markus Schoenen
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Relationale Prozeßmodellierung
Adaptive Systeme-2 Grundlagen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Institut für Theoretische Informatik
Analyse von Ablaufdiagrammen
Verteidigung der Bachelor-Thesis Objektorientierte Geschäftsprozessmodellierung mit BPMN und UML Patrick Heydorn.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Business Process Model and Notation BPMN
Algorithmen und Datenstrukturen Übungsmodul 8
Zustandsübergangsdiagramme (1)
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
- CS-Objekt-Netze Motivation und NutzenMotivation und Nutzen Aufbau und BedienungAufbau und Bedienung - CS-Petri-Netze Definition der Petri-NetzeDefinition.
Petri-Netze Grundlagen
Vorlesung Automatisierungsprojekte Seite 6/1
Johann Baron von Neumann
Software Engineering Strukturierte Analyse
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Funktionale Unifikations-Grammatik (FUG)   Hauptmerkmale der FUG.
Funktionale Unifikations-Grammatik (FUG)  Hauptmerkmale der FUG.
Visualisierung von Geodaten
Aufgabe 4 Betrachten Sie das unten dargestellte Klassendiagramm, das für eine Bibliothek zur Verwaltung ihrer Buchbestände modelliert wurde. Modellieren.
0 3. Übung zu Software Engineering Christoph Lembeck Zustandsautomat A = (Q, , , q 0, F) Hier: Q = Menge der Fenster und Dialoge  = Benutzereingaben.
Umweltmanagementinformationssysteme (Übung)
Ringvorlesung Einführung in das Graduiertenkolleg (INF 3)
Vorlesung Grundlagen der computergestützten Produktion und Logistik W1332 Fakultät für Wirtschaftswissenschaften W. Dangelmaier.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Aufgaben Petrinetze Aufgabe 1
 Präsentation transkript:

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 Fraunhofer­Gesellschaft (Institut für Software­ und Systemtechnik, Deiters et al.) Token­Typisierung 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/T­Netze

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