wi1-wt08-kap03 - Informatik
wi1-wt08-kap03 - Informatik
wi1-wt08-kap03 - Informatik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Vorlesung<br />
Wirtschaftsinformatik 1<br />
Winter-Trimester 2008<br />
Univ.-Prof. Dr.-Ing. Dipl.-Inform.<br />
Andreas Karcher<br />
Kapitel 3 „Zustandsorientierte Modelle“
Prof. Karcher<br />
Inhalt<br />
� Einführung<br />
� Endliche Zustandsautomaten<br />
� Mealy-Automat<br />
� Grundprinzip am Beispiel „Digitaluhr“<br />
� Zustandsdiagramm<br />
� Zustandstabelle<br />
� Zustandsmatrix<br />
� Formale mathematische Definition<br />
� Moore-Automat<br />
� Zustandsautomat nach Harel<br />
� hybrider Automat<br />
� hierarchische Zustandsautomaten<br />
� Zustände mit Gedächtnis<br />
� nebenläufige Zustände<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
1
Prof. Karcher<br />
Inhalt(2)<br />
� Petri-Netze<br />
� Einführung<br />
� Stellen-/Transitions-Netze<br />
� Prädikat-/Transitions-Netze<br />
� Hierarchische Petri-Netze<br />
� Zeitbehaftete Petri-Netze<br />
� Strukturelemente & Muster<br />
� formale Definition (Stellen-/Transitions-Netz)<br />
� Beispiel „Geschäftsprozess“<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
2
Prof. Karcher<br />
Einführung<br />
� bei vielen (sozio-) technischen Systemen – insbesondere auch<br />
bei Softwaresystemen – hängt das Verhalten bzw. die<br />
Ausgabe des Systems nicht nur von der aktuellen Eingabe<br />
sondern zusätzlich von der Historie ab, die das System bis<br />
dahin durchlaufen hat<br />
� dazu muss – auch auf der Modellseite – der Zustand des<br />
Systems abgebildet bzw. gespeichert und das Verhalten bei<br />
eintretenden Ereignissen vom aktuellen Zustand abhängig<br />
gemacht werden können<br />
� die entsprechenden Modellierungsmethoden erlauben durch<br />
entsprechende Abstraktionskonzepte, Systeme mit<br />
Zustandsverhalten abzubilden<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
3
Prof. Karcher<br />
Einführung<br />
� Beispiel „Bedienungsanleitung Quarzwecker“<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
4
Prof. Karcher<br />
12:32:47<br />
1<br />
2<br />
Endliche Zustandsautomaten<br />
� englisch: finite state machine<br />
� von Huffmann, Moore und Mealy in den 50er Jahren entwickelt<br />
� in Anlehnung an neurale Netze und Schaltkreise<br />
� Ziel:<br />
� Abbildung des Lebenszyklus von Systemen bzw. Objekte durch Beschreibung<br />
� der Zustände, die ein System bzw. ein Objekt einnehmen kann (endlich viele)<br />
� aller möglichen Zustandsübergänge (Transitionen), die durch entsprechende Ereignisse<br />
ausgelöst werden und jeweils Aktionen/ Ausgaben auslösen<br />
� Der Zustand eines Systems beinhaltet implizit damit auch die Informationen, die sich<br />
aus den bisherigen Ereignissen ergeben haben und die benötigt werden, um die Reaktion<br />
des Systems auf noch folgende Ereignisse zu bestimmen<br />
� Beispiel: Digitaluhr<br />
� Zustände:<br />
� Normalanzeige der Zeit<br />
� Stellen von Stunden, Minuten bzw. Sekunden<br />
� Zustandsübergänge (Transitionen) werden ausgelöst durch die Ereignisse<br />
� Drücken von Knopf 1 (Stellmodus sequenziell auswählen)<br />
� Drücken von Knopf 2 (Einstellen der Zeit gemäß aktuellem Stellmodus)<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
5
Prof. Karcher<br />
12:32:47<br />
1<br />
2<br />
Endliche Zustandsautomaten<br />
� ein Zustandsautomat kann<br />
� tabellarisch als Tabelle/ Matrix<br />
� oder graphisch als Zustandsdiagramm dargestellt werden<br />
� Beispiel: Zustandsdiagramm der Digitaluhr<br />
Ereignis / Aktion<br />
Knopf 1 / Stunden blinken<br />
Knopf 2 / Stunden +1<br />
Stunden<br />
stellen<br />
Knopf 1 / Minuten blinken<br />
Anfangszustand<br />
Normalzeit<br />
Minuten<br />
stellen<br />
START(Batterie eingelegt) / Initialisierung<br />
Sekunden<br />
stellen<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Knopf 1 / Normalzeit anzeigen<br />
Knopf 1 / Sekunden blinken<br />
Knopf 2 / Minuten +1<br />
Knopf 2 / Sekunden<br />
auf 0 stellen<br />
6
Prof. Karcher<br />
12:32:47<br />
1<br />
2<br />
Endliche Zustandsautomaten<br />
� Beispiel: Zustandstabelle der Digitaluhr<br />
Aktueller Zustand<br />
Normalzeit<br />
Stunden stellen<br />
Stunden stellen<br />
Minuten stellen<br />
Minuten stellen<br />
Sekunden stellen<br />
Sekunden stellen<br />
Ereignis<br />
START<br />
Knopf 1 gedrückt<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Aktion<br />
Initialisierung<br />
Stunden blinken<br />
Minuten blinken<br />
Stunden erhöhen<br />
Sekunden blinken<br />
Minuten erhöhen<br />
Normalzeit anzeigen<br />
Sekunden auf 0 stellen<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Folgezustand<br />
Normalzeit<br />
Stunden stellen<br />
Minuten stellen<br />
Stunden stellen<br />
Sekunden stellen<br />
Minuten stellen<br />
Normalzeit<br />
Sekunden stellen<br />
7
Prof. Karcher<br />
12:32:47<br />
1<br />
2<br />
Endliche Zustandsautomaten<br />
� Beispiel: Zustandsmatrix der Digitaluhr<br />
Zustand Ereignis<br />
Normalzeit<br />
Stunden stellen<br />
Stunden stellen<br />
Minuten stellen<br />
Minuten stellen<br />
Sekunden stellen<br />
Sekunden stellen<br />
START<br />
Initialisierung<br />
Normalzeit<br />
Knopf 1 gedrückt<br />
Stunden blinken<br />
Stunden stellen<br />
Minuten blinken<br />
Minuten stellen<br />
Sekunden blinken<br />
Sekunden stellen<br />
Normalzeit anzeigen<br />
Normalzeit<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Knopf 2 gedrückt<br />
Stunden erhöhen<br />
Stunden stellen<br />
Minuten erhöhen<br />
Minuten stellen<br />
Sekunden auf 0 stellen<br />
Sekunden stellen<br />
Legende:<br />
Aktion<br />
Folgezustand<br />
8
Prof. Karcher<br />
12:32:47<br />
1<br />
2<br />
Endliche Zustandsautomaten<br />
� Beispiel: alternative Zustandsmatrix der Digitaluhr<br />
zu Zustand<br />
von Zustand<br />
(START)<br />
Normalzeit<br />
Stunden stellen<br />
Stunden stellen<br />
Minuten stellen<br />
Minuten stellen<br />
Sekunden stellen<br />
Normalzeit<br />
START<br />
Initialisierung<br />
Knopf 1 gedrückt<br />
Normalzeit anzeigen<br />
Stunden<br />
stellen<br />
Knopf 1 gedrückt<br />
Stunden blinken<br />
Knopf 2 gedrückt<br />
Stunden erhöhen<br />
stellen<br />
Knopf 1 gedrückt<br />
Minuten blinken<br />
Knopf 2 gedrückt<br />
Minuten erhöhen<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Minuten Sekunden<br />
stellen<br />
Legende:<br />
Ereignis<br />
Aktion<br />
Knopf 1 gedrückt<br />
Sekunden blinken<br />
Knopf 2 gedrückt<br />
Sekunden auf 0<br />
stellen<br />
9
Prof. Karcher<br />
Endliche Zustandsautomaten<br />
� bisherige Ausführungen beschreiben den sog. Mealy-<br />
Automaten<br />
� Charakteristika:<br />
� Ausgaben/ Aktionen sind an den jeweiligen<br />
Zustandswechsel gebunden<br />
� Zustände selbst entsprechen Zeitperioden/ Zeitintervallen<br />
� Übergänge stellen Zeitpunkte dar, an denen sich die<br />
Verhaltensweise des Systems ändert<br />
� Ausgaben treten zu diskreten Zeitpunkten auf und können<br />
deshalb gut mit Zustandsübergängen assoziiert werden<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
10
Prof. Karcher<br />
Endliche Zustandsautomaten<br />
� ein Mealy-Automat kann formal in<br />
mathematischer Form als Sechstupel<br />
beschrieben werden:<br />
� M = ( Q, Σ, Δ, δ, λ, q 0 )<br />
� Q : endliche Menge von Zuständen<br />
� Σ : endliches Eingabealphabet (Ereignisse)<br />
� Δ : endliches Ausgabealphabet (Aktionen)<br />
� δ : Q ×Σ→Q (Zustandsübergangsfunktion)<br />
� λ : Q ×Σ→Δ (Ausgabe-/Aktionsfunktion)<br />
� q 0 : Anfangszustand<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
11
Prof. Karcher<br />
Endliche Zustandsautomaten<br />
� eine Abwandlung zum Mealy-Automaten ergibt sich dadurch, dass Ausgaben/<br />
Aktionen direkt an die Zustände des Automaten gebunden werden<br />
� dies führt zum sog. Moore-Automaten<br />
� eine Aktion beginnt, wenn in den jeweiligen Zustand eingetreten wird<br />
� … und endet, wenn der Zustand wieder verlassen wird<br />
� im Zustandsdiagramm werden die Aktionen unterhalb der Zustandsnamen – getrennt<br />
durch eine Linie – eingetragen<br />
� die Aktivität wird durch ein vorangestelltes „do/…“ gekennzeichnet<br />
� die mathematische Definition ist identisch zum Mealy-Automaten bis auf die<br />
Abbildungsfunktion λ<br />
� beim Moore-Automaten ist λ eine Abbildung von Q nach Δ, die die mit jedem Zustand<br />
verknüpfte Ausgabe spezifiziert<br />
� ein Moore-Automat setzt voraus, dass im jeweiligen Zustand genau eine Aktion zur<br />
Ausführung kommt<br />
� ein Moore-Automat lässt sich in den korrespondierenden Mealy-Automaten überführen,<br />
indem an jeden Zustandsübergang diejenige Ausgabe gebunden wird, die im Moore-<br />
Automat von dem Zustand generiert wird, der nach dem Zustandsübergang angenommen<br />
wird<br />
� sowohl beim Moore- als auch beim Mealy-Automaten handelt es sich um<br />
deterministische Automaten<br />
� von jedem Zustand aus gibt es zu einer Eingabe<br />
höchstens einen Zustandsübergang e 1<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
nicht deterministischer<br />
Automat<br />
e 1<br />
12
Prof. Karcher<br />
Endliche Zustandsautomaten<br />
� Beispiel: Moore-Automat für eine Alarmanlage<br />
Alarm<br />
Strahlungsmelder<br />
Voralarm<br />
Voralarm<br />
ausschalten<br />
do/ Sicherungsmaßnahmen<br />
Ausgeschaltet<br />
aktiv<br />
Start<br />
Einschalten Ausschalten<br />
do/ VorbeugendeMaßnahme<br />
Alarm<br />
Unterbrechungsmelder<br />
Alarm<br />
Unterbrechungsmelder<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Alarm<br />
Alarm<br />
ausschalten<br />
do/ Alarmmaßnahmen<br />
Quelle: Balzert<br />
13
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� die Standardkonzepte der klassischen Zustandsautomaten<br />
reichen für komplexere Zusammenhänge nicht aus<br />
� flach und unstrukturiert<br />
� inhärent sequenziell<br />
� Gefahr der „Explosion“ von Zuständen d.h. kleine Änderungen im<br />
System können unakzeptabel großen Anstieg an Zuständen nach sich<br />
ziehen<br />
� David Harel erweiterte 1987 mit seinen statecharts die<br />
Zustandsautomaten um folgende Konzepte:<br />
� Hybride Zustandsautomaten<br />
� Bedingte Zustandsübergänge<br />
� Hierarchische Zustandsautomaten<br />
� Zustände mit Gedächtnis<br />
� Nebenläufige Zustände<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
14
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hybride Zustandsautomaten<br />
� Harel erlaubt es, Mealy- und Moore-Automaten zu<br />
kombinieren => hybrid<br />
� ein Zustandsübergang wird durch ein Ereignis ausgelöst,<br />
die Bezeichnung für das auslösende Ereignis wird am<br />
Zustandsübergang eingetragen<br />
� optional kann ein Ereignis mit einem Wächter<br />
(guard condition) – eingeschlossen in eckigen Klammern –<br />
kombiniert werden<br />
� ein Zustandsübergang findet nur statt, wenn zu dem<br />
Zeitpunkt, zu dem das Ereignis eintritt, auch die<br />
entsprechende Bedingung erfüllt ist (guarded transition)<br />
� mit einem Zustandsübergang kann eine Aktion verbunden<br />
sein (idealisiert mit sofortiger „unendlich schneller“<br />
Ausführung)<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
15
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hybride Zustandsautomaten<br />
� Aktivitäten benötigen im Gegensatz zu den Aktionen eine<br />
bestimmte Zeitdauer<br />
� bei Ein- oder Austritt in/aus Zuständen können ebenfalls<br />
Aktionen gestartet werden<br />
(entry/ exit actions)<br />
� während Aktivitäten durch Ereignisse vorzeitig beendet<br />
werden können, werden Aktionen immer vollständig<br />
ausgeführt<br />
� durch die Möglichkeit, in einem Zustandsdiagramm<br />
Aktionen und Aktivitäten gleichzeitig zu notieren, können<br />
die Konzepte der Mealy- und Mooreautomaten kombiniert<br />
benutzt werden<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
16
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hybride Zustandsautomaten<br />
Start<br />
Zustand 1<br />
Zustand 4<br />
entry/ Aktion 3<br />
exit/ Aktion 4<br />
Ereignis 4<br />
Anfangszustand<br />
Endzustand<br />
Ereignis 1/ Aktion 1<br />
Ereignis 3 [Wächter]<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Zustand 2<br />
do/ Aktivität<br />
Zustand 3<br />
Ereignis 2 /Aktion 2<br />
implizites Ereignis<br />
17
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hierarchische Zustandsautomaten<br />
� Zustandsautomaten können sehr umfangreich und<br />
unübersichtlich werden<br />
� werden Zustände durch Unterzustände (substates)<br />
verfeinert, entstehen hierarchische Zustandsautomaten<br />
� alle Unterzustände sind disjunkt<br />
� ein Zustand, der verfeinert wird, heißt zusammengesetzter<br />
Zustand oder Oberzustand (super-state)<br />
� Pfeile können auf jeder Hierarchieebene ihren Ursprung<br />
haben bzw. auf jeder Hierarchieebene enden<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
18
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hierarchische Zustandsautomaten<br />
� Zustandsübergang kann erfolgen<br />
� direkt in einen Unterzustand<br />
� in einen Oberzustand (→ Startzustand des Oberzustands)<br />
� Beispiel:<br />
keine Hierarchie mit Hierarchie<br />
g<br />
A<br />
C<br />
d<br />
e<br />
b<br />
B<br />
A<br />
b<br />
d<br />
f<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
g<br />
D<br />
C<br />
e<br />
b<br />
f<br />
B<br />
19
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Hierarchische Zustandsautomaten<br />
� bei einem hierarchischen Zustandsautomaten besitzt auch jede Verfeinerung genau<br />
einen Anfangszustand<br />
� ein Zustandsübergang in einen verfeinerten Zustand entspricht dem<br />
Zustandsübergang in den Anfangszustand der Verfeinerung<br />
� wird ein verfeinerter Zustand durch einen Zustandsübergang verlassen, wird jeder<br />
Unterzustand – egal auf welcher Verfeinerungsebene – ebenfalls verlassen und die<br />
entsprechende exit-Operation durchgeführt<br />
� folgende Übergänge sind erlaubt (Beispiel):<br />
� zwischen Zuständen gleicher Ebene,<br />
z.B. von D nach E<br />
� in einen Unterzustand,<br />
z.B. von A nach D<br />
� aus einem Unterzustand,<br />
z.B. von E nach A<br />
� in einen Oberzustand,<br />
z.B. von A nach B;<br />
da C der Anfangszustand von B ist,<br />
erfolgt einen Transition in C<br />
� aus einem Oberzustand,<br />
z.B. von B nach A; beim Eintreffen<br />
des Ergebnisses b wird jeder<br />
der Zustände C, D oder E verlassen<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
A<br />
a<br />
b<br />
c<br />
e<br />
C<br />
B<br />
f<br />
D E<br />
d<br />
20
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Zustände mit Gedächtnis („History“)<br />
� beim Übergang in einen Oberzustand ist es oft wünschenswert, in den zuletzt dort<br />
verlassenen Unterzustand zurückzukehren<br />
� ein entsprechender Oberzustand, der seinen letzten Stand speichert, wird mit einen<br />
gekennzeichnet<br />
� beim Eintreten in einen gedächtnisbehafteten Oberzustand wird der gemerkte<br />
Unterzustand betreten<br />
� bei erstmaligem Eintritt wird der Startzustand eingenommen<br />
� Beispiel:<br />
A<br />
a<br />
b<br />
c<br />
C D<br />
d<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
B<br />
H<br />
H<br />
21
Prof. Karcher<br />
Zustandsautomat nach Harel<br />
� Nebenläufige Zustände<br />
� ein Oberzustand kann aus Unterzuständen bestehen, in denen sich das System<br />
gleichzeitig befindet<br />
� Kennzeichnung nebenläufiger Regionen durch gestrichelte Linie<br />
� Beispiel:<br />
� wird in Y eingetreten, befindet sich das System<br />
gleichzeitig in B und F<br />
� tritt das Ereignis a ein, erfolgen simultane<br />
Übergänge von B nach C und von F nach G<br />
� befindet sich das System im kombinierten<br />
Zustand (B,F) und das Ereignis b tritt ein, hat das<br />
nur Auswirkungen auf die D-Komponente und<br />
das System befindet sich anschließend im<br />
kombinierten Zustand (B,E)<br />
� der Zustandsübergang mit Ereignis c in A hat die<br />
Bedingung „in G“ d.h. nur wenn sich die<br />
Komponente D gleichzeitig im Zustand G<br />
befindet, wird der Übergang durchgeführt<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
a<br />
B<br />
C<br />
Y<br />
A<br />
c<br />
[in G]<br />
D<br />
E<br />
e F<br />
d<br />
G<br />
b<br />
a<br />
22
Prof. Karcher<br />
Marke<br />
Stelle<br />
Petri-Netze<br />
� Carl Adam Petri<br />
� Dissertation TH Darmstadt 1962<br />
� Ziel:<br />
� Modellierung, Analyse und Simulation<br />
von verteilten, dynamischen Systemen<br />
mit nebenläufigen und<br />
nicht-deterministischen Vorgängen<br />
� gerichteter Graph bestehend aus zwei verschiedenen Sorten von Knoten:<br />
Stellen (Zwischenablage von Informationen) und Transitionen<br />
(Verarbeitung von Informationen)<br />
� Basisabstraktionen:<br />
� Stellen (auch Plätze oder Zustände, gekennzeichnet mit Marken/Tokens)<br />
Transition<br />
� passiv<br />
� Vorliegen gewisser Objekte / Bedingungen / Informationen<br />
� als Kreise dargestellt<br />
� Transitionen (Zustandsänderungen/ -übergänge, Ereignisse)<br />
� aktiv<br />
� Objekte werden erzeugt, benötigt, verbraucht<br />
� als Rechtecke oder Balken dargestellt<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
23
Prof. Karcher<br />
Petri-Netze<br />
� Bewegungsablauf der Marken im Netz wird durch<br />
Schaltregel definiert<br />
� eine Transition t kann schalten (“feuern“), wenn jede Eingabestelle von t mit mindestens<br />
einer Marke belegt ist<br />
� schaltet eine Transition, dann wird aus jeder Eingabestelle eine Marke entfernt und zu<br />
jeder Ausgabestelle eine Marke hinzugefügt<br />
� Beispiel:<br />
verbinden<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
24
Prof. Karcher<br />
Petri-Netze<br />
� Beispiel(2):<br />
� … nach Feuern der Transition<br />
verbinden<br />
� In Abhängigkeit von der Art der Objekte werden folgende<br />
Typen von Petri-Netzen unterschieden<br />
� Bedingungs-/Ereignis-Netze<br />
� Stellen-/Transitions-Netze<br />
� Prädikat-/Transitions-Netze<br />
� höhere Petri-Netze (Hierarchische Petri-Netze, Zeitbehaftete Petri-Netze etc.)<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
25
Prof. Karcher<br />
Petri-Netze<br />
� wichtige Eigenschaften<br />
� Lebendigkeit<br />
� Eine Transition heißt<br />
� tot, falls sie unter keiner Folgemarkierung aktiviert ist<br />
� aktivierbar, falls sie unter mindestens einer Folgemarkierung aktiviert ist<br />
� lebendig, falls sie in jeder erreichbaren Markierung aktivierbar ist<br />
� Ein Petri-Netz heißt<br />
� tot, falls alle Transitionen tot sind<br />
� totgefährdet, falls das Petri-Netz unter einer Folgemarkierung tot ist<br />
� deadlockfrei oder schwach lebendig, falls es unter keiner<br />
Folgemarkierung tot ist<br />
� (stark) lebendig, falls alle Transitionen lebendig sind<br />
� Erreichbarkeit<br />
� Eine Markierung eines Petri-Netzes heißt erreichbar, falls es eine Schaltsequenz der<br />
Transitionen gibt, welche die Startmarkierung in diese Markierung überführt<br />
� Beschränktheit<br />
� Ein Petri-Netz heißt beschränkt, wenn es für jede Stelle eine Schranke b gibt, so dass<br />
nie mehr als b Marken in einer Stelle liegen<br />
� Ein Petri-Netz heißt 1-beschränkt, wenn b = 1, 2-beschränkt, wenn b = 2 usw.<br />
� Sicherheit<br />
� Ein Petri-Netz heißt sicher, falls es 1-beschränkt ist<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
26
Prof. Karcher<br />
Petri-Netze<br />
� Beispiel:<br />
� einfaches, lebendiges,<br />
deadlockfreies Petrinetz mit<br />
� 6 Stellen<br />
� 6 Transitionen und<br />
� einer Marke in der<br />
Anfangsmarkierung<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
S1<br />
S2 S3<br />
S4 S5<br />
S6<br />
27
Prof. Karcher<br />
Petri-Netze<br />
� Ein Petri-Netz ist ein Bedingungs-/Ereignis-Netz (Condition/Event Net,<br />
C/E Net), wenn die Objekte bzw. Marken vom Datentyp Boolean sind:<br />
� Bedingungen (Stellen, dargestellt durch Kreise),<br />
� Ereignisse (Transitionen, dargestellt als Kästchen/Balken),<br />
� Pfeile von Bedingungen zu Ereignissen,<br />
� Pfeile von Ereignissen zu Bedingungen,<br />
� Marken in einigen Bedingungen (Anfangszustand)<br />
� Stellen können genau eine oder keine Marke enthalten<br />
(Bedingung erfüllt oder Bedingung nicht erfüllt)<br />
� Transition kann schalten (ist aktiviert), wenn jede Eingabestelle<br />
eine Marke enthält und wenn jede Ausgabestelle leer ist<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
28
Prof. Karcher<br />
Petri-Netze<br />
� Beispiel: Bedingungs-/Ereignis-Netz<br />
� Zwei Roboter bestücken Leiterplatten<br />
zuführendes<br />
Fließband<br />
Roboter 1<br />
Roboter 2<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Montageplatz 1<br />
wegführendes<br />
Fließband<br />
Montageplatz 2<br />
29
Prof. Karcher<br />
unbestückte<br />
Leiterplatte (LP)<br />
antransportieren<br />
Petri-Netze<br />
� Beispiele: Bedingungs-/Ereignis-Netz<br />
� Zwei Roboter bestücken Leiterplatten<br />
Roboter 1 (R1)<br />
ergreift die<br />
Leiterplatte<br />
Roboter 2 (R2)<br />
ergreift die<br />
Leiterplatte<br />
unbestückte LP<br />
ist eingetroffen<br />
R1 ist frei<br />
LP bestückt<br />
durch R1<br />
LP auf Band<br />
LP bestückt<br />
durch R2<br />
R2 ist frei<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
R1 legt LP ab<br />
R2 legt LP ab<br />
bestückte LP<br />
abtransportieren<br />
Quelle: Balzert<br />
30
Prof. Karcher<br />
Petri-Netze<br />
� Beispiele: Bedingungs-/Ereignis-Netz<br />
� gegenseitiger Ausschluss von t1 und t2<br />
kritische Bereiche<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
31
Prof. Karcher<br />
Petri-Netze<br />
� Stellen-/Transitions-Netze<br />
(Place/Transition Net, P/T Net)<br />
� Verallgemeinerung von Bedingungs-/Ereignis-Netzen:<br />
� Stellen können mehr als eine Marke enthalten (Kapazität K als max. Anzahl<br />
von Marken)<br />
� Pfeile sind durch Gewichte attributiert<br />
� Aktivierungs- bzw. Schaltregel für Transitionen:<br />
� von jeder Eingabestelle sind so viele Marken zu entfernen,<br />
wie das entsprechende Pfeilgewicht angibt<br />
� zu jeder Ausgabestelle sind so viele Marken hinzuzufügen,<br />
wie das entsprechende Pfeilgewicht angibt<br />
� eine Transition darf nur feuern, wenn dadurch die Kapazität der<br />
Ausgangsstellen nicht überschritten wird<br />
� Beispiel:<br />
K=4<br />
K=4<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
2<br />
2<br />
2<br />
K=2<br />
32
Prof. Karcher<br />
Petri-Netze<br />
� Prädikat-/Transitions-Netze (Pr/T-Netze)<br />
� sowohl B/E- als auch S/T-Netze verwenden ausschließlich „schwarze“<br />
Marken, die alle identisch sind<br />
� werden individuelle, „gefärbte“ Marken verwendet, spricht man von einem<br />
Prädikat/Transitions-Netz<br />
� die Notation in dieser Art von Petri-Netzen ist uneinheitlich<br />
� individuelle Marken werden durch einen Wert z.B. eine Zahl repräsentiert<br />
� Transitionen können nur beim Vorliegen bestimmter Marken feuern<br />
� Transitionen werden Schaltbedingungen mit Variablen zugeordnet, die die<br />
von den Eingabestellen erhaltenen Marken repräsentieren<br />
� im oberen Teil der Transition wird eine Schaltbedingung (firing condition),<br />
im unteren eine Schaltwirkung (firing result) angegeben<br />
� Beispiel:<br />
4<br />
8<br />
7<br />
13<br />
24<br />
9 4<br />
12<br />
z = 2x + y<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
y<br />
x<br />
x = 2y<br />
Schaltbedingung<br />
Schaltwirkung<br />
z<br />
33
Prof. Karcher<br />
Petri-Netze<br />
� Hierarchische Petri-Netze<br />
� zur besseren Strukturierung können Petri-Netze in Unternetze verfeinert werden<br />
� grundsätzlich können sowohl Stellen als auch Transitionen verfeinert bzw. wieder<br />
zusammengefasst werden<br />
� die Verfeinerung der Transaktion ist jedoch vorzuziehen, da dies einer besseren<br />
zeitlichen Auflösung entspricht<br />
� die obere Netzebene bei hierarchischen Petri-Netzen wird auch Kanal-Instanzen-Netz<br />
(channel agency net) bezeichnet<br />
� eine Stelle wird als Kanal interpretiert<br />
� eine Transition wird als Instanz interpretiert (aktive Komponenten, die Informationen oder<br />
Material verarbeiten)<br />
� Instanzen kommunizieren über Kanäle<br />
� die Verfeinerung muss struktur- und markengetreu erfolgen<br />
� Beispiel:<br />
Kanal-Instanzen-Netz<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
34
Prof. Karcher<br />
Petri-Netze<br />
� Zeitbehaftete Petri-Netze<br />
� alle bisher betrachteten Petri-Netze beinhalten keinen expliziten Zeitbegriff<br />
� die Netze sind insofern idealisiert als alle Transitionen zum gleichen Zeitpunkt<br />
abgearbeitet werden, an dem die dafür erforderlichen Bedingungen erfüllt sind<br />
� insbesondere wenn die Leistungsfähigkeit eines Systems untersucht werden soll (z.B.<br />
zu Simulationszwecken), sind Zeitaussagen bezüglich der Dauer einer Aktion oder<br />
eines Ereignisses mit einzubeziehen<br />
� atomare Ereignisse oder Transitionen werden per Definition unendlich schnell<br />
ausgeführt d.h. sie benötigen keine Zeit für die Ausführung<br />
� ein zusammengesetztes Ereignis oder eine zusammengesetzte Transaktion kann jedoch<br />
eine bestimmte Zeitdauer benötigen<br />
� die Marken müssen somit eine gewisse Zeitspanne (t>0) auf einer Stelle verharren<br />
können, bis sie von einer Transaktion verbraucht werden<br />
� die Zeitintervalle können in den Stellen (siehe Bild (a)) oder in den Transitionen (siehe<br />
Bild (b)) festgelegt werden, verharren müssen die Marken aber jeweils auf den Stellen<br />
(a)<br />
Rohstoffe<br />
Arbeiter<br />
Bearbeiten<br />
Werkstück<br />
delay 10 sec<br />
(b)<br />
Rohstoffe<br />
Arbeiter<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Bearbeiten<br />
delay 10 sec<br />
Werkstück<br />
35
Prof. Karcher<br />
Petri-Netze – Strukturelemente/ Muster<br />
� allgemeine Strukturelemente<br />
Erzeugen<br />
von Objekten<br />
Löschen<br />
von Objekten<br />
Verarbeitung/Weitergabe<br />
von Objekten<br />
Aufspalten/Vervielfachen von<br />
Objekten, Beginn einer<br />
Nebenläufigkeit<br />
Verschmelzen von Objekten, Ende<br />
einer Nebenläufigkeit,<br />
Synchronisationspunkt<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
36
Prof. Karcher<br />
Petri-Netze – Strukturelemente/ Muster<br />
� allgemeine Strukturelemente<br />
Quelle,<br />
Objektreservoir<br />
Senke, Tote Stelle,<br />
Ablegen im Archiv<br />
Zwischenablage/-speicher<br />
Willkürliche Verzweigung,<br />
nichtdeterministische Fortsetzung eines<br />
Prozesses und/oder Beginn einer<br />
Nebenläufigkeit<br />
Gemeinsamer Speicher für Objekte,<br />
Synchronisationsstelle<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
37
Prof. Karcher<br />
Petri-Netze – Strukturelemente/ Muster<br />
� allgemeine Modellmuster<br />
Verzweigung Vereinigung<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
Kopplung über eine<br />
gemeinsame Transition<br />
Kopplung über eine<br />
gemeinsame Stelle<br />
38
Prof. Karcher<br />
Petri-Netze – formale Definition<br />
� Stellen-/Transitions-Netze: formale Definition<br />
� Ein Netz (Netzgraph, bipartiter Graph) ist definiert durch ein<br />
3-Tupel ( S, T, F ) mit S ∩ T = ∅ und F ⊆ ( S × T ) ∪ ( T × S )<br />
� Elemente von S heißen Stellen<br />
� Elemente von T heißen Transitionen<br />
� Elemente der Relation F heißen Kanten (Pfeile, Flussrelation)<br />
� Ein Stellen-Transitions-Netz P ist definiert durch ein<br />
5-Tupel ( S, T, F, K, W ), wobei ( S, T, F ) ein Netz ist sowie<br />
� K : S → Ν ∪ { ∞ } (Kapazitäten der Stellen)<br />
� W : F → Ν (Gewichte der Kanten)<br />
� Ein Stellen-Transitions-System ist definiert durch ein<br />
6-Tupel ( S, T, F, K, W, M 0 ), wobei ( S, T, F, K, W )<br />
ein Stellen-Transitions-Netz ist sowie<br />
� M 0 : S → Ν 0<br />
(Markierung)<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
39
Prof. Karcher<br />
Petri-Netze – formale Definition<br />
� Stellen-/Transitions-Netze: formale Definition(2)<br />
� Stellen-Transitions-System ( S, T, F, K, W, M 0 )<br />
� •x := { y | ( y, x ) ∈ F ) (Eingangsknoten)<br />
� x• := { y | ( x, y ) ∈ F ) (Ausgangsknoten)<br />
� Eine Transition t ∈ T heißt aktiviert unter einer Markierung M<br />
� wenn ∀ s ∈•t : M ( s ) ≥ W ( ( s, t ) )<br />
� und ∀ s ∈ t• : M ( s ) ≤ K ( s ) - W( ( t, s ) )<br />
� Eine aktivierte Transition t kann eine Stelle s<br />
von M ( s ) nach M ‘( s ) schalten mit M ‘( s ) =<br />
� M ( s ) - W ( ( s, t ) ) falls s ∈•t \ t•<br />
� M ( s ) + W ( ( t, s ) ) falls s ∈ t• \ •t<br />
� M ( s ) - W ( ( s, t ) ) + W ( ( t, s ) ) falls s ∈ t• ∩•t<br />
� M ( s ) sonst<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
40
Prof. Karcher<br />
Beispiel: Petri-Netz & Geschäftsprozess<br />
Quelle: AIFB Karlsruhe<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
41
Prof. Karcher<br />
Literatur & WWW<br />
� Baumgarten B. (1996): Petri-Netze – Grundlagen und Anwendungen, 2.<br />
Aufl. Spektrum Akademischer Verlag, Heidelberg, 1996<br />
� Girault G., Valk R. (2002): Petri Nets for System Engineering. A Guide to<br />
Modeling, Verification, and Applications; Springer 2002<br />
� Harel D., Gery, E. (1997): Executable object modeling with Statecharts.<br />
IEEE Computer, July 1997<br />
� Harel D. (1987): Statecharts: A Visual Formalism for Complex Systems,<br />
Science of Computer Programming, Elsevier, 1987<br />
� Hopcroft F., Ullman J. (1988): Einführung in die Automatentheorie, Formale<br />
Sprachen und Komplexitätstheorie; Addison-Wesley 1988<br />
Vorlesung WI 1 A. Karcher WT08 Kapitel 3 „Zustandsorientierte Modelle“<br />
42