03.01.2013 Aufrufe

wi1-wt08-kap03 - Informatik

wi1-wt08-kap03 - Informatik

wi1-wt08-kap03 - Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!