Kleine Formelsammlung zu Ereignisgesteuerte Systeme Florian Franzmann∗ 30. August 2007 Inhaltsverzeichnis 1 Systemeigenschaften 1.1 Zeitgetrieben . . . . . . . . . 1.2 Ereignisgetrieben . . . . . . . 1.3 Zeitfreies Modell . . . . . . . 1.4 Zeitbehaftetes Modell . . . . 1.5 Ereignisgesteuertes System . 1.6 Zeitdiskrete Simulation . . . . 1.7 Ereignisgesteuerte Simulation . . . . . . . 2 Sprachen und Automaten 2.1 Endlicher Automat . . . . . . . 2.2 Zustandsautomat . . . . . . . . 2.3 Zustandsautomat mit Ausgang 2.4 Hierarchischer Automat . . . . 2.4.1 Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Boole-Shannon-Zerlegung 3.1 Operationen . . . . . . . . . . . . . . . 3.1.1 RESTRICT fx=k . . . . . . . 3.1.2 APPLY . . . . . . . . . . . . . 3.2 Quantoren . . . . . . . . . . . . . . . . 3.3 Mengenoperationen . . . . . . . . . . . 3.4 Relationen . . . . . . . . . . . . . . . . 3.5 Häufige Fragestellungen . . . . . . . . 3.5.1 Vergleich von Spezifikation und 3.5.2 Ist Zustand x ∈ X erreichbar? . ∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 1 1 2 2 2 . . . . . 2 2 2 3 3 3 . . . . . . . . . 3 3 3 4 4 4 4 5 5 5 [email protected] 1 3.6 Verifikation von Zustandsautomaten (in CTL) . . . . . . . . . . . . . . . . 4 Petrinetze 4.1 Netzgraph . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Vorbereich . . . . . . . . . . . . . . . . . . . 4.1.2 Nachbereich . . . . . . . . . . . . . . . . . . . 4.2 Eigenschaften von Transitionen . . . . . . . . . . . . 4.2.1 tot . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 aktivierbar . . . . . . . . . . . . . . . . . . . 4.2.3 lebendig . . . . . . . . . . . . . . . . . . . . . 4.3 Stellen-Transistion-Netz mit Kantengewicht . . . . . 4.3.1 Definition . . . . . . . . . . . . . . . . . . . . 4.3.2 Kapazitätsbeschränkung durch Gegenkanten 4.4 Dynamische Eigenschaften von S-T-Netzen . . . . . 4.4.1 regulär . . . . . . . . . . . . . . . . . . . . . . 4.4.2 reversibel . . . . . . . . . . . . . . . . . . . . 4.4.3 sicher . . . . . . . . . . . . . . . . . . . . . . 4.4.4 tot . . . . . . . . . . . . . . . . . . . . . . . . 4.4.5 deadlockfrei/schwach lebendig . . . . . . . . . 4.4.6 lebendig . . . . . . . . . . . . . . . . . . . . . 4.5 Verifikation von Petri-Netzen . . . . . . . . . . . . . 4.5.1 Lineare Algebra . . . . . . . . . . . . . . . . 4.6 Zustandsbäume . . . . . . . . . . . . . . . . . . . . . 4.6.1 sicher . . . . . . . . . . . . . . . . . . . . . . 4.6.2 deadlockfrei . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 8 8 8 5 Spezielle Netzstrukturen 5.1 Zustandssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Synchronisationsgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Zeitbehaftete Modelle 8 6.1 Zeitbehafteter Zustandsautomat . . . . . . . . . . . . . . . . . . . . . . . 8 6.2 Zeitbehaftete Petrinetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7 Zufallsprozesse 7.1 Bedingte Wahrscheinlichkeit . . . 7.2 Stochastische Unabhängigkeit . . 7.3 Markow-Prozeß . . . . . . . . . . 7.4 Stochastischer Zustandsautomat . . . . 11 11 11 11 11 Hierarchischer Automat – Basiszustand . . . . . . . . . . . . . . . . . . . Hierarchischer Automat – Sequenzieller Zustand . . . . . . . . . . . . . . 3 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abbildungsverzeichnis 1 2 2 Kleine Formelsammlung zu Ereignisgesteuerte Systeme 3 4 5 Hierarchischer Automat – Paralleler Zustand . . . . . . . . . . . . . . . . 4 Semantik zeitbehafteter Zustandsautomaten . . . . . . . . . . . . . . . . . 9 Semantik zeitbehafteter Petrinetze . . . . . . . . . . . . . . . . . . . . . . 10 1 Systemeigenschaften 1.1 Zeitgetrieben • Zustandsübergang findet zu jedem Takt statt • Zeit t ist natürliche und unabhängige Variable 1.2 Ereignisgetrieben • Ereignis e ∈ E ist instantan und asynchron • Zeit ist keine natürliche Variable 1.3 Zeitfreies Modell • Sequenz von Ereignissen wird ohne Information über die Zeitpunkte spezifiziert 1.4 Zeitbehaftetes Modell • Systemeingang wird als zeitbehaftete Sequenz von Ereignissen spezifiziert 1.5 Ereignisgesteuertes System • ereignisgetrieben • diskreter Zustandsraum • asynchrones Auftreten von Ereignissen • Zeit diskret oder kontinuierlich 1.6 Zeitdiskrete Simulation • simulierte Zeit wird in gleichmäßige Intervalle aufgeteilt • Simulationsaufwand auch dann, wenn kein Ereignis auftritt 1.7 Ereignisgesteuerte Simulation • überspringt Intervalle, in denen das System ruhig ist 3 X (a) Blockdiagramm B (b) Baumdiagramm Abbildung 1: Hierarchischer Automat – Basiszustand 2 Sprachen und Automaten 2.1 Endlicher Automat 5-Tupel (E, X, f, x0, F) mit • E endliches Alphabet • X endliche Zustandsmenge • f Übergangsfunktion f : X × E → X • x0 Anfangszustand x0 ∈ X • F Menge von Endzuständen 2.2 Zustandsautomat 5-Tupel (E, X, Γ, f, x0) mit • E abzählbares Alphabet • X abzählbare Zustandsmenge • Γ (x) Menge zulässiger Ereignisse im Zustand x • f Übergangsfunktion f : X × E → X nur definiert für e ∈ Γ (x) • x0 ist Anfangszustand x0 ∈ X 2.3 Zustandsautomat mit Ausgang 7-Tupel (E, X, Γ, f, x0, Y, g) mit Zustandsautomat (E, X, Γ, f, x0) und • Y abzählbarer Ausangsmenge • g Ausgangsfunktion g : X × E → Y nur definiert für e ∈ Γ (x) 4 Kleine Formelsammlung zu Ereignisgesteuerte Systeme A X Y Z B (a) Blockdiagramm (b) Baumdiagramm Abbildung 2: Hierarchischer Automat – Sequenzieller Zustand A B C X Y (a) Blockdiagramm Abbildung 3: Hierarchischer Automat – Paralleler Zustand 5 2.4 Hierarchischer Automat 2.4.1 Transition event[condition]/action Zustandsübergang tritt auf, wenn event eintritt und condition erfüllt ist. Beim Zustandsübergang wird action ausgeführt 3 Boole-Shannon-Zerlegung 3.1 Operationen 3.1.1 RESTRICT fx=k Löschen der zu x = k gehörigen Kanten und Anwendung von Vereinfachungsregeln. 3.1.2 APPLY f<op>g = x · (fx=0<op>gx=0) + x · (fx=1<op>gx=1) 3.2 Quantoren ∃x : f ↔ fx=0 + fx=1 ∃x1, x2 : f ↔ ∃x1 : (∃x2 : f) ∀x : f ↔ f · f x=0 x=1 ∀x1, x2 : f ↔ ∀x1 : (∀x2 : f) 3.3 Mengenoperationen σ(e) ⇒ binäre Repräsentation von e a ∈ A ↔ ψA(σ(a)) c ∈ A ∩ B ↔ c ∈ A · c ∈ B ↔ ψA(σ(c)) · ψB(σ(c)) c ∈ A ∪ B ↔ c ∈ A + c ∈ B ↔ ψA(σ(c)) + ψB(σ(c)) c ∈ A − B ↔ c ∈ A · c ∈ B ↔ ψA(σ(c)) · ψB(σ(c)) 3.4 Relationen Relation R ⊆ A × B. r ∈ R ↔ ψR(σ(a), σ(b)) 6 Kleine Formelsammlung zu Ereignisgesteuerte Systeme 3.5 Häufige Fragestellungen 3.5.1 Vergleich von Spezifikation und Implementierung • Durch wiederholte Anwendung des APPLY-Operators umwandeln in OBDDs • Vergleich der OBDDs 3.5.2 Ist Zustand x ∈ X erreichbar? • Zustandsmenge und Übertragungsrelation als OBDDs 3.6 Verifikation von Zustandsautomaten (in CTL) X im nächsten Schritt F irgendwann G für alle Zeit E für mindestens eine Berechnung A für alle Berechnungen p1 U p2 p1 gilt bis p2 gilt AG EF es soll immer möglich sein“ ” 4 Petrinetze 4.1 Netzgraph Ein 3-Tupel N = (S, T, F) mit S∩T =∅ F ⊆ (S × T ) ∪ (T × S) ist die Flußrelation, S die Menge der Stellen, T die Menge der Transistionen. 4.1.1 Vorbereich •x := {y(y, x) ∈ F} also alle Knoten, von denen eine Kante nach x führt. 7 4.1.2 Nachbereich x• := {y(x, y) ∈ F} also alle Knoten, zu denen eine Kante von x führt. 4.2 Eigenschaften von Transitionen 4.2.1 tot Transistion ist unter keiner Folgemarkierung aktiviert. 4.2.2 aktivierbar Transistion ist unter mindestens einer Folgemarkierung aktiviert. 4.2.3 lebendig Transistion ist ausgehend von allen Folgemarkierungen aktivierbar. 4.3 Stellen-Transistion-Netz mit Kantengewicht 4.3.1 Definition Ein 5-Tupel (S, T, F, W, M0) mit • (S, T, F) ist Netzgraph • Kantengewichte W : F → N0 • Markierung M : S → N0; M0 Anfangsmarkierung • Zustand ist die Markierung M. Zustandsraum ist X = N0. 4.3.2 Kapazitätsbeschränkung durch Gegenkanten Füge Stelle s ′ mit M0(s ′ ) = K(s) − M0(s) hinzu. Füge für jede Kante (s, t) bzw. (t, s) eine Kante (t, s ′ ) bzw. (s ′ , t) hinzu mit gleichem Kantengewicht. 4.4 Dynamische Eigenschaften von S-T-Netzen 4.4.1 regulär Regulär bezüglich γ : S → Z, falls ∀M ∈ [M0i : X s∈S 8 γ(s)M(s) = konst. Kleine Formelsammlung zu Ereignisgesteuerte Systeme 4.4.2 reversibel Von jedem erreichbaren Zustand aus kann der Anfangszustand erreicht werden. ∀M ∈ [M0i : M0 ∈ [Mi 4.4.3 sicher Alle möglichen Folgezustände sind beschränkt: ∀M ∈ [M0i , s ∈ S : M(s) ≤ B(s) 4.4.4 tot Falls alle Transitionen tot sind. 4.4.5 deadlockfrei/schwach lebendig Falls es unter keiner Folgemarkierung tot ist. 4.4.6 lebendig Falls alle Transitionen lebendig sind. 4.5 Verifikation von Petri-Netzen 4.5.1 Lineare Algebra Struktur Inzidenzmatrix A ∈ Z|S|×|T| mit A = (ast). ast = W(t, s) − W(s, t) Markierungen sj. Vektor M = (mj)1≤j≤|S| mit mj = M(sj) ist Zahl der Marken in Stelle Schalten von Transitionen ui = Schaltvektor U = (ui)1≤i≤|T| mit 0 falls ti nicht schaltet 1 falls ti schaltet Zustandsgleichung M ′ = f(M, t) = M + AU Ui ist die Zahl der nötigen Feuerungen von ti. 9 Nachweis bestimmter Eigenschaften Regularität Reversibilität regulär ⇔ ∃ Invariante IS 6= 0 mit Is · A = 0. reversibel ⇔ ∃ Invariante IT 6= 0 mit A · IT = 0. 4.6 Zustandsbäume 4.6.1 sicher Das Netz ist sicher, falls der Erreichbarkeitsbaum kein ∞“ enthält. ” 4.6.2 deadlockfrei Das Netz ist deadlockfrei, falls der Erreichbarkeitsgraph keine Knoten ohne wegführende Kanten enthält. 5 Spezielle Netzstrukturen 5.1 Zustandssystem Ein Zustandssystem ist ein S-T-Netz mit • W(f) = 1 für alle Kanten f ∈ F • | • t| = |t • | = 1 für alle Transitionen t ∈ T P • M0 ist eine reguläre Markierung, d. h. s∈S M0(s) = 1 5.2 Synchronisationsgraph Ein S-T-Netz heißt Synchronisationsgraph (markierter Graph), wenn gilt • W(f) = 1 fr alle Kanten f ∈ F • | • s| = |s • | = 1 für alle Stellen s ∈ S 6 Zeitbehaftete Modelle 6.1 Zeitbehafteter Zustandsautomat Ein 6-Tupel (E, X, Γ, f, x0, V) mit • Zustandsautomat (E, X, Γ, f, x0) • Zeitstruktur V = {ve : e ∈ E} • Zeitsequenzen ve = (ve,1, ve,2, . . . ) mit ve,k ∈ R mit ve,k ≥ 0. 10 Kleine Formelsammlung zu Ereignisgesteuerte Systeme — Initialisierung: Ereigniszahlen: Lokale Zeit: Anfangszustand: Ereignisliste: Ne t x L := := := := 1 0 x0 ∅ ∀e ∈ E Ereignisse zufügen: L := L ∪ {(e, t + ve,Ne ) : (e 6∈ L)} Ereigniszahlen inkrementieren: Ne := Ne + 1 ∀e ∈ E : (e 6∈ L) Lokale Zeit bestimmen: t := min{ti : (ei, ti) ∈ L} Aktuelles Ereignis bestimmen: ea ∈ {(ei, ti) ∈ L : ti = t} J ea ∈ Γ (x) N BREAK L := L \ {ea, t} := Nea + 1 L := L ∪ (ea, t + vea ,Ne a ) Nea Zustandsübergang: x := f(x, ea) Ereignisse entfernen: L := L \ {(ea, t)} \ {(ek, tk) : (tk = t)} Abbildung 4: Semantik zeitbehafteter Zustandsautomaten 11 — Initialisierung: Ereigniszahlen: Lokale Zeit: Anfangszustand: Nj τ M := := := 1 0 M0 für alle tj ∈ T Ereignisse hinzufügen: L := L ∪ (tj, τ + vj,Nj ) : tj neu aktiviert Ereigniszahlen inkrementieren: Nj := Nj + 1 für alle neu aktivierten Transitionen Neue lokale Zeit bestimmen: τ := min {τj : (tj, τj) ∈ L} Aktuelle Transition bestimmen: ta ∈ {(tj, τj) ∈ L : τi = τ} Zustandsübergang: M := M + AUa Transitionen aus Liste entfernen: L := L \ {(tj, τj) : •tj ∩ •ta 6= ∅} ∧ tj nicht aktiviert in M Abbildung 5: Semantik zeitbehafteter Petrinetze 6.2 Zeitbehaftete Petrinetze Ein zeitbehaftetes Petrinetz ist ein 6-Tupel (S, T, F, W, M0, V) mit • einem S-T-Netz (S, T, F, W, M0) • einer Menge V = {vj : tj ∈ T } von Zeitsequenzen vj = (vj,1, vj,2, . . . ) mit vj,k ≥ 0 Eine Transition feuert vj,k Zeiteinheiten nach ihrer k-ten Aktivierung. Außerdem: • Ereigniszahlen Nj ∈ {1; 2; 3; . . . }, tj ∈ T , die aussagen wie oft eine Transition aktiviert wurde • Ereigniszeiten τj ∈ R, tj ∈ T , die angeben wann eine Transition zum nächsten Mal feuern kann 12 Kleine Formelsammlung zu Ereignisgesteuerte Systeme 7 Zufallsprozesse 7.1 Bedingte Wahrscheinlichkeit Wahrscheinlichkeit, daß B eintritt unter der Bedingung, daß A bereits eingetreten ist: P[A|B] = P[A ∩ B] ; P[A] 6= 0 P[A] 7.2 Stochastische Unabhängigkeit P[A ∩ B] = P[A] · P[B] 7.3 Markow-Prozeß Die gesamte Vergangenheit ist im aktuellen Zustand summiert: P X(tk+1) ≤ xk+1X(tk) = xk, . . . , X(t0) = x0 = P X(tk+1) ≤ xk+1X(tk) = xk ∀t0 ≤ · · · ≤ tk+1 Markow-Prozesse mit diskretem Zustandsraum heißen Markow-Ketten. 7.4 Stochastischer Zustandsautomat Ein 6-Tupel (E, ℵ, Γ, p, p0, G) mit • der abzählbaren Ereignismenge E • dem abzählbaren Zustandsraum ℵ • der Menge erlaubter Ereignisse Γ (x) ⊆ E x∈ℵ • den Übergangswahrscheinlichkeiten p(x ′ ; x, e ′ ) ∀x, x ′ ∈ ℵ und e ′ ∈ E und p(x ′ ; x, e ′ ) = 0 ∀e ′ 6∈ Γ (x) • der Dichtefunktion p0(x) = P [X0 = x] des Anfangszustands X0 und der stochastischen Zeitstruktur definiert durch Gi(t), i ∈ E 13