Modellierung nebenl au ger Systeme Sommersemester 2012 ... · L oschen von Objekten Variabler...
Transcript of Modellierung nebenl au ger Systeme Sommersemester 2012 ... · L oschen von Objekten Variabler...
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Vorlesung “Modellierung nebenlaufiger Systeme”Sommersemester 2012
Universitat Duisburg-Essen
Barbara KonigUbungsleitung: Henning Kerstan
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 1
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Motivation: Graphtransformation
Wir beschreiben Ersetzungsregeln, die Graphen in andere Graphentransformieren. Die Regeln sind dabei – wie beiChomsky-Grammatiken – von der Form:
Linke Seite → Rechte Seite
Anders als bei Chomsky-Grammatiken:
Wenn die linke Seite aus dem Graphen geloscht wurde, wiefugt man dann die rechte Seite in den restlichen Graphen ein?( Einbettungsvorschrift)
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 233
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Motivation: Graphtransformation
Graphtransformationssysteme sind geeignet fur die Modellierungvon Systemen mit:
Hohe Nebenlaufigkeit
Unendlicher Zustandsraum
Dynamisches Erzeugen bzw. Loschen von Objekten
Variabler Topologie (Systemstruktur verandert sich wahrendder Laufzeit)
Mobilitat (mobiler Code oder mobile Prozesse)
Vorsicht: Tradeoff! Je komplexer eine Modellierungssprache ist,desto schwerer ist sie im Allgemeinen zu analysieren.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 234
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Motivation: Graphtransformation
Graphtransformation (schematisch)
RL
L R
1 2
n
...
...
1 2
n
...
...
Hier: Einbettung wird durch das Interface gegeben, d.h., durcheine Menge von Knoten (bzw. Kanten), die bei der Ersetzungerhalten bleiben.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 235
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Motivation: Graphtransformation
Graphtransformation (etwas genauer)
Eine Graphtransformationsregel besteht aus einer linken Seite L,einer rechten Seite R und einem Interface I , wobei L, I ,R Graphensind.Außerdem wird das Interface (mit Hilfe noch zu definierenderAbbildung) sowohl in die linke als auch in die rechte Seiteeingebettet:
L← I → R
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 236
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation: Beispiele
Mini-Beispiel
Regeln:
q1
A1 2 1 2
A C1 2
q2
B
3
A
C
B 2B21 1
A3
2
1
3
Initialer Graph:B
A
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 237
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation: Beispiele
Bemerkungen zum vorherigen Beispiel:
Das von dem initialen Graphen und der Regelmenge erzeugteTransitionssystem hat unendlich viele Zustande. Dabeientsprechen die Zustande den erreichbaren Graphen.
Ungeklarte Frage: Kann die Regel q2 auf den initialenGraphen angewandt werden?
Das hangt davon ab, ob man auch nicht-injektiveAbbildungen der linken Seite zulaßt ( spater).
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 238
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation: Beispiele
Weiteres Beispiel: Dining Philosophers
Hier:
Zu Beginn: Tisch mit zwei Philosophen und zwei Gabeln.
Ein Linkshander und ein Rechtshander (zur Vermeidung vonDeadlocks).
Erzeugen neuer Philosophen moglich: essende Philosophenkonnen sich reproduzieren.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 239
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation: Beispiele
Dining Philosophers (mit Erzeugen neuer Philosophen)
Regeln:
1 2
1 2
1 2
21
21
21
21
21
1
1
1
1
2
2
1
1
1
1
1
1 2
2
2
22
2
2
2
(RepX )
(HungryX ) EX
EX
WL
EL
WR
F HX
ER
F
EX FHX
X ∈ {L, R}
(EatR)
(WaitR)
(EatL)
(WaitL) F
WL
F
WR
F
HL
F
HR
Initialer Graph:
F
HL HR
F
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 240
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Im allgemeinen betrachten wir nicht nur einfache gerichteteGraphen, wie in den Beispielen, sondern Hypergraphen:
A
C
B
0
21
31
2
0
0
Eine Hyperkante (Box mit abgerundeten Ecken) ist mitmehreren Knoten verbunden (die Verbindungen sind von 0 bisn − 1 durchnumeriert).Eine Hyperkante kann auch mit einem Knoten mehrmalsverbunden sein.Hyperkanten sind mit Labels (= Beschriftungen) versehen,jedoch nicht die Knoten.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 241
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Intuition: Nicht: Knoten, die mit Kanten verbunden sind;Sondern: Hyperkanten, die an den Knoten zusammengestecktwerden.
Darstellung: eine Hyperkante, die mit zwei Knoten verbunden ist,wird oft auch als einfache gerichtete Kante dargestellt.
A10
A
Bemerkung: Graphtransformation kann auch auf anderen Artenvon Graphen stattfinden (gerichtete Graphen, ungerichteteGraphen, attributierte Graphen, . . . )
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 242
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Hypergraph (Definition)
Sei Λ eine Menge von Labels. Ein Hypergraph G ist ein TupelG = (V ,E , c , `), wobei
V eine Menge von Knoten,
E eine Menge von (Hyper-)Kanten,
c : E → V ∗ die Verbindungsfunktion und
` : E → Λ die Label- oder Beschriftungsfunktion ist.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 243
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Bemerkungen:
Statt “Hypergraph” schreiben wir im folgenden oft einfachnur “Graph”.
V ∗ bezeichnet die Menge aller Worter uber V .
Die Stelligkeit einer Kante e ist |c(e)|.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 244
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Um einen Graphen in einen andere einzubetten, benotigen wir nunnoch den Begriff des Graphmorphismus.
Graphmorphismus (Definition)
Seien G1 = (V1,E1, c1, `1), G2 = (V2,E2, c2, `2) zwei Graphen. EinGraphmorphismus ϕ : G1 → G2 ist ein Paar von AbbildungenϕV : V1 → V2, ϕE : E1 → E2 mit folgenden Eigenschaften: fur allee1 ∈ E1 gilt
c2(ϕE (e1)) = ϕV (c1(e1)) und
`2(ϕE (e1)) = `1(e1).
Die Anwendung von ϕV auf ein Wort geschiehtkomponentenweise, d.h., ϕV (v1 . . . vk) = ϕV (v1) . . . ϕV (vk).Wir lassen die Indizes oft weg und schreiben fur ϕV , ϕE nur ϕ.“Graphmorphismen” bezeichnet man oft einfach nur als“Morphismen”.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 245
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Hypergraphen und Graphmorphismen
Isomorphie (Definition)
Zwei Graphen G ,H heißen isomorph (in Zeichen: G ∼= H), wenn eseinen Morphismus ϕ : G → H gibt, bei dem beide KomponentenϕV und ϕE bijektiv sind.
Bemerkung: Im allgemeinen werden Graphen immer “bis aufIsomorphie” betrachtet. Das bedeutet, dass zwei verschiedene, aberisomorphe Graphen im wesentlichen als “gleich” angesehen werden.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 246
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Um Graphtransformation beschreiben zu konnen, mussen wirzunachst sagen, was es bedeutet, zwei Graphen uber einemgemeinsamen Teilgraph zu verkleben.
Dazu benotigen wir den Begriff der Faktorisierung durch eineAquivalenzrelation.
Faktorisierung (Definition)
Sei M eine Menge und ≡ eine Aquivalenzrelation auf dieserMenge. Fur ein Element x ∈ M ist die Aquivalenzklasse von xdefiniert durch
[x ]≡ = {y ∈ M | y ≡ x}.
Wir faktorisieren M durch ≡ und erhalten dabei die Menge M/≡der Aquivalenzklassen von ≡, d.h.,
M/≡ = {[x ]≡ | x ∈ M}.Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 247
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Verkleben von Graphen (Definition, Teil 1)
Seien I ,G1,G2 Graphen mit Graphmorphismen ϕ1 : I → G1,ϕ2 : I → G2. Dabei bezeichnet I = (VI ,EI , cI , `I ) das Interface. Wirnehmen an, dass alle Knoten- und Kantenmengen disjunkt sind.
Sei ≡ die kleinste Aquivalenzrelation auf V1 ∪ E1 ∪ V2 ∪ E2, dieϕ1(x) ≡ ϕ2(x) fur alle x ∈ VI ∪ EI erfullt.
Das Verkleben von G1,G2 uber I (geschrieben als G = G1 +ϕ1,ϕ2 G2
bzw. G = G1 +I G2) wird definiert als G = (V ,E , c, `) mit:
V = (V1 ∪ V2)/ ≡,
E = (E1 ∪ E2)/ ≡,
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 248
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Verkleben von Graphen (Definition, Teil 2)
c : E → V ∗ mit c([e]≡) = [v1]≡ . . . [vk ]≡, wobei
v1 . . . vk =
{c1(e) falls e ∈ E1
c2(e) falls e ∈ E2
` : E → Λ mit
`([e]≡) =
{`1(e) falls e ∈ E1
`2(e) falls e ∈ E2
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 249
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Bemerkungen:
Die Funktionen c und ` sind wohldefiniert. Das heißt, dieobigen Definitionen sind unabhangig von der Wahl desReprasentanten der Aquivalenzklasse.
Es gibt Graphmorphismen ψ1 : G1 → G , ψ2 : G2 → G , die jedeHyperkante und jeden Knoten in die dazugehorigeAquivalenzklasse abbilden.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 250
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Beispiele zum Verkleben von Graphen:
Verkleben (Beispiel 1)21
ϕ1
xxqqqqqqqqqqqϕ2
''NNNNNNNNNNN
WL
1
2
ψ1 !!DDD
DDDD
HR
F1
2
ψ2||yyyy
yyy
HR
F
WL
1
2
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 251
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Verkleben (Beispiel 2)
21ϕ1
xxpppppppp ϕ2
))RRRRRRR
1, 2
ψ1##G
GGGGG21
A
ψ2xxqqqqqq
q1, 2
A
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 252
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Verkleben (Beispiel 3)
21 3ϕ1
ttiiiiiiiii ϕ2
**UUUUUUUUU
1A
2, 3
ψ1
((PPPPPP
1, 2 3B
ψ2
vvnnnnnn
A B
1, 2, 3
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 253
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Verkleben (Beispiel 4)
B1 2
ϕ1
vvmmmmmmmmmmmmmϕ2
((QQQQQQQQQQQQQ
A1 2
B
ψ1 ((QQQQQQQQQQQQQ
1 2B C
ψ2vvmmmmmmmmmmmmm
A1 2
B C
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 254
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Ein solches “Verklebe-Diagramm” hat folgende universelleEigenschaft:
Iϕ1
~~}}}}
}}}} ϕ2
AAA
AAAA
A
G1
ψ1
AA
AAAA
A
ψ′1
""
G2
ψ2
~~~~~~
~~~~
ψ′2
||
G1 +I G2
η
��
H
Es gilt ψ1 ◦ ϕ1 = ψ2 ◦ ϕ2. Undfur zwei Morphismenψ′1 : G1 → H, ψ′2 : G2 → H mitψ′1 ◦ ϕ1 = ψ′2 ◦ ϕ2 gibt es eineneindeutigen Morphismusη : G1 +I G2 → H mitη ◦ ψ1 = ψ′1 und η ◦ ψ2 = ψ′2.
Diagramme mit dieser Eigenschaft nennt man Pushouts. Dabei istG1 +I G2 bis auf Isomorphie eindeutig festgelegt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 255
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Graphtransformationsregel (Definition)
Eine (Graphtransformations-)Regel besteht aus drei Graphen
L, I ,R und zwei Graphmorphismen LϕL← I
ϕR→ R.
Beispiel:
HL
F2
1
21ϕLooϕR // WL
1
2
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 256
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Eine Graphtransformation kann durch zwei Verklebungen einesKontextgraphen mit der linken bzw. rechten Seite beschriebenwerden.
Graphtransformation (Definition)
Sei r = (LϕL← I
ϕR→ R) eine Regel. Man sagt, ein Graph G wird zuH transformiert (in Zeichen: G
r⇒ H), wenn es einen Graphen C(den sogenannten Kontext) und einen Graphmorphismus ψ : I → Cgibt mit:
G ∼= L +ϕL,ψ C H ∼= R +ϕR ,ψ C
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 257
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Wenn man alle Graphmorphismen betrachtet, dann kann eineGraphersetzung diagrammatisch wie folgt beschrieben werden:
L
m
��
IϕLoo
ϕR //
ψ��
R
��
G Coo // H
Bemerkungen:
Aus obigem Diagramm folgt der Name desGraphtransformations-Ansatzes: Double-Pushout-Ansatz(kurz: DPO).
Den Morphismus m nennt man dabei Match der linken Seitein dem Graphen G .
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 258
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Beispieldiagramm, das eine Graphtransformation beschreibt:
HL
F2
1
m
��
21ϕLooϕR //
ψ
��
WL
1
2
��
F
HL HR
F2
1
HR
F1
2
oo // HR
F
WL
1
2
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 259
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Anschaulich passiert bei einer Graphtransformation folgendes:
Um den Kontext C zu erhalten, werden zunachst alle Bilderder linken Seite, die sich nicht im Interface befinden, aus Gentfernt.
Dann wird die rechte Seite zu C hinzugefugt und uber dasInterface verklebt, woraus der resultierende Graph H entsteht.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 260
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Graphtransformationssystem (Definition)
Sei Λ eine Menge von Labels. Ein Graphtransformationssystem istein Tupel G = (G0,R), wobei
G0 ein beliebiger Hypergraph ist, der sogenannte initialeGraph oder Startgraph, und
R eine Menge von Graphtransformationsregeln ist.
Dabei tragen alle Kanten Labels aus der Menge Λ.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 261
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Frage: Unter welchen Bedingungen gibt es den Kontext C?
Problem: in manchen Fallen gibt es keinen passenden Kontext zueiner Regel L← I → R und einem Match m : L→ G .
Nicht-Existenz des Kontexts C (1. Fall)
Loschen eines Knotens ohne Loschen der angrenzenden Kante.
1A
m
��
1ϕLoo
��A1
B ?oo
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 262
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Nicht-Existenz des Kontexts C (2. Fall)
Verschmelzen zweier Elemente der linken Seite, die im Interfacenicht vorhanden sind.
A
A
1 2
m
��
21ϕLoo
��
A1 2
?oo
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 263
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Aber: Kontext existiert, wenn nur Elemente des Interfacesverschmolzen werden.
A1 2
m
��
21ϕLoo
��1, 2
A
1, 2oo
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 264
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Existenz des Kontexts (Satz)
Sei LϕL← I
ϕR→ R eine Graphtransformationsregel und m : L→ G einMatch. Dann existiert ein Kontext C und ein Morphismusψ : I → C , so dass G ∼= L +ϕL,ψ C (und m entsteht durch dieVerklebung), genau dann, wenn folgendes gilt:
Fur jeden Knoten v aus L, dessen Bild m(v) an eine Kante eangrenzt, die sich nicht im Bild von m befindet, gibt es einenKnoten v ′ in I mit ϕL(v ′) = v .
Falls fur zwei Elemente x , y (wobei x , y Knoten oder Kantenin L sein konnen) m(x) = m(y) gilt, dann gibt es x ′, y ′ in Imit ϕL(x ′) = x , ϕL(y ′) = y .
Die beiden obigen Bedingungen nennt man Gluing Conditions.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 265
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation
Bemerkungen:
Den Kontext, der ein Verklebediagramm vervollstandigt,nennt man – da er einen Pushout komplementiert – auchPushout Complement.
Falls der Kontext nicht existiert, ist imDouble-Pushout-Ansatz auch keinGraphtransformationsschritt moglich.
Es gibt auch andere Graphtransformationsansatze, wiebeispielsweise den Single-Pushout-Ansatz, bei dem beimLoschen eines Knotens grundsatzlich alle angrenzendenKanten mitgeloscht werden.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 266
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Negative Anwendungsbedingungen
Negative Anwendungsbedingung (Definition)
Sei r = (LϕL← I
ϕR→ R) eine Graphtransformationsregel. Einenegative Anwendungsbedingung fur r ist ein Graph N mit einemMorphismus n : L→ N.
Intuition: Es wird verlangt, dass N nicht in der Umgebung von Lvorkommt, wenn die Regel auf einen Graph G angewandt wird.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 267
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Negative Anwendungsbedingungen
Match erfullt negative Anwendungsbedingung (Definition)
Sei r = (LϕL← I
ϕR→ R) eine Regel, n : L→ G eine negativeAnwendungsbedingung und m : L→ G ein Match.Wir sagen, dass m die negative Anwendungsbedingung erfullt,wenn es keinen injektiven Morphismus p : N → G gibt mitp ◦ n = m.
N
p��
L
m
��
noo IϕLoo
ϕR // R
G
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 268
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Negative Anwendungsbedingungen
Beispiel: Bilden der transitiven Hulle eines (gerichteten) Graphen
Idee: Zwei Knoten, die indirekt uber einen dritten Knotenverbunden sind, direkt mit einer Kante verbinden. Dies soll abernur dann geschehen, wenn diese Verbindung nicht bereits existiert.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 269
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Negative Anwendungsbedingungen
Bilden der transitiven Hulle
AA AA A
A
A
R
A
IL
A
A
N
Diese Regel soll so lange wie moglich angewandt werden. Sobalddie Regel nicht mehr angewandt werden kann, ist die transitiveHulle gefunden.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 270
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und Petrinetze
Petrinetze konnen auf einfache Art und Weise inGraphtransformation kodiert werden:
Jede Stelle wird zu einem Label desGraphtransformationssystems.
Jede Transition wird zu einer Regel.
Eine Markierung wird als Menge von Kanten der Stelligkeit 0dargestellt, die mit den entsprechenden Labels markiert sind.
Graphen bestehen nur aus Kanten, ohne irgendwelche Knoten.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 271
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und Petrinetze
Kodierung: Petrinetz → Graphtransformation
Sei N = (S ,T , •(), ()•,m0) ein Petrinetz.Wir verwenden Λ = S als Labelmenge. Das dazugehorigeGraphtransformationssystem ist G = (G0,R) mit:
G0 enthalt keine Knoten und fur jedes s ∈ Λ gibt es m0(s)Kanten, die mit s gelabelt sind. Alle Kanten haben dieStelligkeit 0. (Analog kann jeder Markierung m ein Graph Gm
zugeordnet werden.)
Jeder Transition t ∈ T wird eine Regel rt = (L← I → R)zugeordnet mit: L = G•t , I = ∅ (leerer Graph), R = Gt• .
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 272
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und Petrinetze
Beispiel fur die Kodierung:
Petrinetzs2s1
s3
s4
t1
t2t3
ZugeordnetesGraphtransformationssystem
s2s1
s2s1
s3
s3 s1 s4
Initialer Graph:
rt1:
rt2:
rt3:
s2s3
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 273
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und Petrinetze
Die Korrektheit der Kodierung kann folgendermaßen formuliertwerden:
Korrektheit der Kodierung (Satz)
Sei N ein Petrinetz und G = (G0,R) das dazugehorigeGraphtransformationssystem. Es gilt:
Falls m[t〉m′ fur zwei Markierungen m,m′ gilt, dann gilt
Gmrt⇒ Gm′ , wobei rt ∈ R.
Sei G ein Graph, der von G0 aus erreichbar ist, und es gelteG
rt⇒ G ′ fur ein rt ∈ R. Dann gibt es erreichbareMarkierungen m,m′ mit Gm
∼= G , Gm′∼= G ′ und m[t〉m′.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 274
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
In manchen Fallen ist es auch nutzlich, Petrinetze direkt alsGraphen zu reprasentieren, insbesondere wenn man deren Strukturandern will.
Folgende Regeln beschreiben Modelltransformationen aufPetrinetzen, die die Struktur eines Netzes verandern. Man kannjedoch zeigen, dass das entstehende Netz noch “im wesentlichen”das gleiche Verhalten hat wie das ursprungliche (insbesondere imBezug auf Verklemmungen, Sicherheit, Beschranktheit).
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 275
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
[Regeln aus Tadao Murata: “Petri Nets: Properties, Analysis andApplications”]
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 276
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 277
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 278
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 279
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Aufgabe:
Festlegung einer Reprasentation von Petrinetzen als Graphen
Beschreiben der obigen Regeln alsGraphtransformationsregeln.Vorsicht: die Regeln haben fast alle negativeAnwendungsbedingungen, d.h., es wird die Abwesenheitbestimmter eingehender oder ausgehender Verbindungengefordert.
Bemerkung: Graphtransformationen werden haufig fur sogenannteModelltransformationen eingesetzt, d.h., die Umformung vongraphischen Spezifikation, oder die Transformation einergraphischen Spezifikation in eine andere. Ein wichtigesAnwendungsgebiet ist die Transformation von UML-Diagrammen.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 280
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Idee zur Kodierung der Struktur von Petrinetzen:
Sowohl Stellen als auch Transitionen werden als Knotendargestellt. Zur Unterscheidung wird eine einstelligeHyperkante hinzugefugt, die entweder mit S oder Tbeschriftet wird.
Marken werden ebenfalls mit einer einstelligen Kantedargestellt, die mit M markiert ist und mit der entsprechendenStelle verbunden ist.
Verbindungen zwischen Stellen und Transitionen (oderumgekehrt) werden durch zweistellige A-Kanten dargestellt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 281
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Modelltransformation von Petrinetzen
Beispiel: Kodierung eines Netzes als Graph
SS
Petrinetz
T
A
AA
SM
Kodierung als Graph
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 282
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
CCS-Prozesse konnen mit Hilfe von Graphtransformationsregelnsimuliert werden (nach [Gadducci]). Wir beschranken uns hier aufProzesse ohne Konstanten, Summen, Umbenennungen undτ -Prafixe.
Ideen:
Jeder CCS-Prozess wird durch einen Graphen dargestellt. Dabeiwird
sowohl die Termstruktur durch eine Baumstruktur im Graphendargestellt,
als auch die Kommunikationsmoglichkeiten zwischenProzessen (aufgrund gemeinsamer (Aktions-)Labels)reprasentiert.
Es gibt zwei Arten von Knoten:
schwarze Knoten (•) fur die Termstruktur
weiße Knoten (◦), die (Aktions-)Labels reprasentieren
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 283
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Es gibt nur folgende drei Kanten-Labels:
in: Reprasentation von Eingabe-Prafixen
Dreistellige Kante, deren Knoten folgende Bedeutung haben:
zugeordnetes (Aktions-)Label (weißer Knoten ◦)Vorganger und Nachfolger in der Termstruktur (schwarzeKnoten •)
out: Reprasentation von Ausgabe-PrafixenBedeutung der Knoten wie bei in
go: wird an die Wurzel der Termstruktur gehangt, um zuverhindern, dass Ersetzungen unterhalb von Prafixen passieren
Einstellige Kante, die nur mit einem schwarzen Knoten •verbunden ist
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 284
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Um zu bestimmen, wie viele (externe) weiße Knoten bei derKodierung eines Prozesses P enstehen sollen, mussen wir zunachstdie Menge der frei vorkommenden (Aktions-)Labels bestimmen.
Frei vorkommende Aktions-Labels
Sei L eine Labelmenge und P ein Prozess, dessen Aktionen undKoaktionen aus Labels aus L gebildet werden. Ein Label a ∈ Lkommt frei in P vor, wenn es in einem Ein- oder Ausgabe-Prafixauftaucht, das sich nicht unterhalb von einer Verschattung von abefindet. Umbenennungen werden bercksichtigt.
Beispiele:
P = a.Q1 | b.Q2 a, b kommen in P frei vor.
P = (a.Q1 | b.Q2)\{b} nur a kommt in P frei vor.
P = (a.b.c .Q)\{b} a, c kommen in P frei vor.
P = (a.Q1)\{a} | a.Q2 a kommt in P frei vor.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 285
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Frei vorkommende Aktions-Labels (Induktive Definition)
Die Menge free(P) der in P frei vorkommenden Aktions-Labelswird folgendermaßen definiert:
free(0) = ∅free(a.P) = {a} ∪ free(P)
free(a.P) = {a} ∪ free(P)
free(τ.P) = free(P)
free(P | Q) = free(P) ∪ free(Q)
free(P\L) = free(P)\Lfree(P[f ]) = {f (a) | a ∈ free(P)}free(P + Q) = free(P) ∪ free(Q)
free(A) = free(P), falls A := P.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 286
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Wir definieren [[P]]w , d.h., die Kodierung eines CCS-Prozesses P ineinem Graph. Dabei ist w ∈ L∗ ein Wort, das mindestens alle in Pfrei vorkommenden (Aktions-)Labels enthalt, so dass aber keinLabel mehrfach vorkommt. Mit w [i ] bezeichnen wir das i-teZeichen von w . Außerdem sei n = |w | die Lange von w .
Dabei soll [[P]]w ein Graph sein, der n + 1 ausgezeichnete Knotenhat: n weiße Knoten ◦ (einen fur jedes Aktions-Label) und einenschwarzen Knoten • (fur die Wurzel der Termstruktur).
Schema:
n1 n+1. . .
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 287
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Inaktiver Prozess
[[0]]w =n1 n+1
. . .
Verschattung
[[P\{a}]]w =
n1 n+1. . .
[[P ]]wa
[[P]]wa hat n + 2 ausgezeichnete Knoten, von denen der vorletzte,d.h., der Knoten, der a entspricht, aus der Menge derausgezeichneten Knoten entfernt wird.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 288
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Parallele Komposition
[[P | Q]]w =
1
...
n+1
n[[P ]]w [[Q]]w
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 289
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Eingabe-Prafix
[[a.P]]w =n1 . . .
i
in
n+1
[[P ]]w
wobei w [i ] = a.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 290
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Ausgabe-Prafix
[[a.P]]w =n1 . . .
i
n+1
out
[[P ]]w
wobei w [i ] = a.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 291
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Nun bestimmen wir {[P]}w (die endgultige Kodierung), die aus[[P]]w durch Hinzufugen einer go-Kante entsteht.
Hinzufugen einer go-Kante
{[P]}w =n1 n+1
. . . go
[[P ]]w
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 292
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Beispiel: Kodierung des CCS-Prozesses ((a.b.0 | b.0) | a.0)\{b}
in
in
1 2
out out
ba
go
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 293
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Wir wollen nun zeigen, dass zwei Prozesse strukturell kongruentsind, genau dann, wenn ihre Kodierungen isomorph sind. Dasstimmt allerdings in dieser Form nicht ganz, wir mussen sowohlden Begriff der strukturellen Kongruenz, als auch den Begriff derIsomorphie etwas anpassen.
Isomorphie von Graphen mit ausgezeichneten Knoten (Definition)
Seien G , H zwei Graphen, wobei G die Sequenz v [1] . . . v [n + 1]und H die Sequenz w [1] . . .w [n + 1] von ausgezeichneten Knotenhat.Die Graphen mit ausgezeichneten Knoten sind isomorph, wenn eseinen bijektiven Morphismus ϕ : G → H gibt mit: ϕ(v [i ]) = w [i ]fur alle i ∈ {1, . . . , n + 1}.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 294
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Erweiterte Strukturelle Kongruenz (Definition)
Die erweiterte strukturelle Kongruenz auf CCS-Prozessen (inZeichen: P ≡Q) ist die kleinste Relation, die sich mit Hilfe derGesetze fur die strukturelle Kongruenz und mit Hilfe folgenderGesetze herleiten laßt:
(a.P)\{b} ≡ a.(P\{b}) falls a 6= b, a 6= b.
(P\L)\L′ ≡P\(L ∪ L′)
(P | Q)\{a} ≡P | (Q\{a}) falls a 6∈ free(P).
0\L ≡ 0
Außerdem konnen verschattete Labels umbenannt werden. (ZumBeispiel: (a.b.0)\{a} ≡ (c .b.0)\{c})
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 295
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Isomorphie und Strukturelle Kongruenz (Satz)
Gegeben seien zwei CCS-Prozesse P,Q und ein Wort w , das alle inP,Q frei vorkommenden Aktions-Labels enthalt. Es gilt, dass{[P]}w und {[Q]}w als Graphen mit ausgezeichneten Knotenisomorph sind, genau dann, wenn P ≡Q.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 296
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Nun mussen wir nur noch die operationelle Semantik von CCSbeschreiben. Es reicht eine einzige Regel:
Operationelle Semantik von CCS als Graphtransformationsregel
3
1 2go
1 2
43
out go2, 3, 4
4
in1go
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 297
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Intuition hinter der Transformationsregel:
Die beiden Prafixe mussen zu dem gleichen Aktions-Labelgehoren. Das wird dadurch sichergestellt, dass sie uber einengemeinsamen weißen Knoten verbunden sind.
Durch die Regelanwendung werden durch Verschmelzen derKnoten 2, 3, 4 die unterhalb der Prafixe liegenden Terme“nach oben befordert”.
Die Regelanwendung ist nur moglich in Anwesenheit einergo-Kante, das heißt, die Prafixe mussen sich an der Wurzelder Termstruktur und nicht unterhalb eines Prafixes befinden.Die go-Kante ist im Interface und wird erhalten.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 298
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Mit der oben angegebenen Transformationsregel konnen nunτ -Schritte simuliert werden (Reduktionssemantik):
Korrektheit der Kodierung (Satz)
Sei P ein CCS-Prozess, w eine Sequenz der in P freivorkommenden (Aktions-)Labels und r die oben angegebene Regel.Dann gilt:
Pτ→ Q impliziert {[P]}w
r⇒ {[Q]}w .
{[P]}wr⇒ G fur einen Graphen G impliziert die Existenz eines
CCS-Prozesses Q mit {[Q]}w ∼= G und Pτ→ Q.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 299
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Bemerkungen:
Es ist auch moglich, CCS-Prozesse mit Summe,Umbenennungen, Konstanten und τ -Prafixe zu kodieren, dazumussen jedoch noch weitere Arten von Hyperkanten undKnoten eingefuhrt werden.
Ebenso ware es moglich, “echte” Interaktion mit derUmgebung zu modellieren, d.h., Ubergange der Form P
a→ Qmit a 6= τ zu simulieren.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 300
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Auf Basis der Graphtransformations-Semantik ist es einfach,Erweiterungen von CCS zu implementieren. Beispielsweise konnenLabels als Kanalnamen aufgefasst werden und bei einerKommunikation ein weiterer Kanalname als Nachrichteninhaltubermittelt werden.
Das ermoglicht es, die Kanalverbindungen dynamisch wahrend derLaufzeit zu modifizieren (vgl. π-Kalkul). Dieser Effekt wird auchals (schwache) Mobilitat bezeichnet.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 301
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Graphtransformation und CCS
Ubermittlung von Kanalnamen als Graphtransformationsregel
in
43
go
go
3
1 2
4
2, 3, 4go
5 6
5, 6
out
21 5ba
6x
1
Entsprechung im π-Kalkul
a〈b〉.P | a(x).Qτ→ P | Q[x/b]
Dabei gilt x als gebunden, d.h., es kommt nicht frei im Prozess vor.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 302
Organisatorisches Einfuhrung Transitionssysteme Prozesskalkule Petrinetze Graphtransformation Google Go
Ausblick
Was gibt es sonst noch im Zusammenhang mitGraphtransformation?
Entfaltungen (ahnlich wie bei Petrinetzen)
Graphgrammatiken (zur Erzeugung von Graphsprachen)
Zugrundeliegende mathematische Theorie: Kategorientheorie
Zahlreiche Anwendungen, Modellierung großer realer Systeme
Viele Werkzeuge (Agg, Progres, Groove, Augur, . . . )
. . .
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 303