Wollgang Reisig Petrinetze
Wolfgang Rei sig
Petrinetze Modeliierungstechnik, Analysemeth oden, Fallst udien
STUDIUM...
32 downloads
854 Views
81MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Wollgang Reisig Petrinetze
Wolfgang Rei sig
Petrinetze Modeliierungstechnik, Analysemeth oden, Fallst udien
STUDIUM
11 VIEWEG+ TEUBNER
Bibliografische Information der Deutsc hen National bibliothek Die Deutsc he Nationalbibliot hek verzeichnet diese Publikation in der Deutsc hen Nat iona lbibliografi e; detaillier te bibliogra fische Daten sind im Internet übe r a brufbar.
Prof. Dr. Walfgan g Reisig Studierte in Kartsruhe und Bonn Physik und Informat ik. 1974 - 1983 wissenschaf tl icher Mitarbeiter und Assistent an der Universit ät Bonn und der RWTH Aachen. Promotion 1979 zur Analyse kooperierender sequentiel ler Prozesse. 1983 Profes sor an der Universität Harnburg und anschließend Projek tleiter bei der Gesellsc haft für Mat hema tik und Datenvera rbeitung. Projekte zur Systemanaly se und -modelIierung . 1987 Habilitation an der Universität Bonn. Danach Professor für Theoretische Informatik an der TU München. Seit 1993 Professo r für Softwaretechnik und Theorie der Programmierung Olm Institut für Informatik der Humboldt-Universität zu Berlin . Sprec her des DFG-Graduiertenkollegs Service-orientierte Architektu ren zur Integration Softwa regestützter Prozesse Olm Beispiel des Gesundheit swesens und der Medizintechnik (SOAMED). Mitglied der Europäisch en Akadem ie der Wi ssenschaften, Academ ia Europaea. Mehrmonatige Forschung saufen thalte Olm ICSI, Berkeley, Kalifornien, bei Microsoft Research in Redmond und als . Lady Davis Visiting Professor" Olm Technion, Halfa, Israel. 2006 Beta Chair der Techni schen Univers ität Eindhoven.
1. Auflage 2010 Alle Rechte vor behalten
© Vieweg +Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2010 Lekto rat: Ulric h Sandten I Keestin Hoffma nn Vieweg+Teubner Verlag ist eine Mar ke von Springer Fachmedien. Springer Fachmedien ist Teil der Fachverlagsgruppe Springer Seience-Business Media. www .viewegteubner.de Das Werk einschließlich aller seiner Teile ist urheb errechtlich gesch üt zt. Jede Verw er tung außerhalb der engen Grenzen des Urheberrechtsgeset zes ist oh ne Zustimmung des Verlags unzulässig und stra fbar. Das gilt insbesondere für Vervielfältigungen, Übe rsetzungen. Mikroverfilmungen und die Einspeicherung und Verarbeitung in elek tronischen Systemen. Die Wiederga be von Gebrauc hsnamen, Handelsnamen. Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme. dass solche Namen im Sinne de r Warenzeichen - und Markenschutz-Gesetzgebung als frei zu betr achten wären und daher von jed erma nn benutzt werden dür ften . Urnschtaggestattu ng: Künkeltop ka Medien entwi ckl ung, Heidelberg lnne ntayout: Ivonne Domnick Druck und buchbin deris cne Verar beitung : MercedesDruck, Berlin Gedruc kt auf säurefreiem und chlorf rei gebleich tem Papier. Printed in Germany ISBN 978 -3-8 348-1290-2
Zuerst einmal komm t es daraufan. verstanden zu werden . Theod or Fontone
Halte es kurz. damit sie es lesen, klar, da mit sie es würdigen können, an schaulich, damit sie sicn da ran erinnern, und, vor allem, korrekt, damit es den richtigen Weg weist . Joseph Pulitzer
Progress is possible only if we train our selves to think ahm t! program s witho ut thinking ofthem as pieces ofexecutab le code. E.W. Dijkst ra
Comp uter Scie nce is no mo re about comp uters than astronomy is ahmt! telescopes . E. IV, Dij kstra
Zu diesem Buch Petrinetee Eine Einführtl!1J? [62J - ein schmales Buch, vor 25 Jahren erschienen, wurde damals schnell in sechs Sprachen übersetzt und viele tausendmal verkauft. Es war lange die Standardreferenz für Petrinetze. Es ist Zeit fü r eine neue Einführung. Denn Petrinetze wurden in unglaublicher Vielfalt weiterentwickelt. ,,Erst modellieren, dann programmieren" ist ein Prinzip, das die Softwaretechnik zunehmend beherrscht. Petrinetze sind dabei eine beliebte Modellierungstechnik. Bei der Einführung in ein Gebiet ist das größte Problem die Auswahl des Stoffes. Besser als vor 25 Jahren können wir heute einschätzen, welche Modellierungstechniken und Analyseme-
thoden wirklich zentral sind. Diese Techniken und Methoden sollen hier dargestellt werden. Ih r Nutzen wird an zahl reichen Beispielen und insbesondere an den Fallstudien im hinteren Teil des Buches demonstriert. Der Software-Praktiker kann sich dabei die Fallstudien zum Vorbild nehmen. Der Theoretiker findet die klassischen Ergebnisse der Netztheorie, ergänzt um einige neue Konzepte und eine neue Systematik im Aufbau der Theorie. Die Darstellung in diesem Buch reduziert formale Argumente auf ein Minimum. Beispiele charakterisieren das Gemeinte oft hinreichend genau. Auch können die einzelnen Kapitel häufig unabhängig voneinander gelesen werden. Beispielsweise sind die Fallstudien aus Teil III schon mit Grundkenntnissen der ersten drei Kapitel aus Teil I verständlich; erst ihre Analyse verlangt Kenntnisse aus Teil 11. Dieses Buch hat keine spezifische Zielgruppe, etwa Studierende, Dozenten, theoretische Informatiker oder SoftwarePraktiker. Es richtet sich vielmehr an ein breites Publikum, indem es zusammenträgt und möglichst verständlich dargestellt, was nach 50 Jahren als zentral in der Netztheorie gelten kann und was sich für Anwendungen besonders gut eignet Die Auswahl der vorgestellten Aspekte ist dabei zwangsläufig überaus subjektiv.
"''''-cl
Petrinetze -~~J, I ·v
· \
0- '''' a & "
Wem ich Dank schulde Seit Ende der 1970er Jahre hat Carl Adam Petri mir in vielen Gesprächen seine Vorschläge für eine grundlegende Theorie informationsverarbeitender Systeme erläutert. Ohne diese Gespräche hätte des Buch nicht entstehen können. Jörg Desel hat entscheidende Argumente bei der Auswahl des Stoffes beigetragen. Seine Hinweise haben einige Kapitel entscheidend beein flusst. Seit den ersten Entwürfen des Textes hat Rüdiger Valk mich auf zahlreiche Tippfehler, Inkonsistenzen, missverständliche Formulierungen und interessante Literaturstellen hinge wiesen. Vor Drucklegung haben einige Kollegen Änderungen im Manuskript vorgeschlagen, die ich gern aufgegriffen habe. Insbesondere haben mir Katharina Görlach, Jana Köhler, Bernd Krämer, Ernst Mayr, Agathe Merceron, Birger Peil, Christian Stahl, Hagen Völzer und Walter Vogler wertvolle Anregungen gegeben. Ich danke auch Daniel Janusz , Andreas Hoheisel, Olaf Hochmuth, Rolf Hoffmann, und Dominic Wist für ihre Hinweise auf Unstimmigkeiten. Annika Flemming hat intensiv zur
Ausarbeitung der Übungsaufgaben beigetragen. Mein besonderer Dank gilt Birgit Heene. Geduldig und unermüdlich hat sie die vielen Fassungen getippt und gestaltet. Dabei haben ihr Dirk Fahland, Katharina Görlach und Simon Heiden mit großem Engagement geholfen.
Vorwort von earl Adam PeIn Liebe Leserin, lieber Leser: Die heute übliche Graph ik für Netze sowie die Methodik ihrer Verfeinerung und Vergroberung wurde im August 1939 erfu n den, um meine Kenntnisse von chemischen Prozessen an schau lich zu machen. Ich entwarf au ch einen Plan, katalytische Pro -
zesse zu analysieren. Dieser Plan scheite rte durch den Beginn des Zweiten lVeltkriegs, weil die nötigen Instrumente nicht mehr beschafft werden konnten . So blieb mir nur üb rig, meine Erfindung au sgiebig auf Papier einzuüben. Im Jahre /94/ war ich begeistert vom Bericht meines \'t1 ters über Konrad Zus es programmierbaren Computer. und da s Nac hdenken darüber wurde mei ne Hauptbeschiift igung. Aber erst in den späten Fünfziger Jahren wurde kla r, da ss die Entwicklung der Computertechnologie das Leben der Menschen tiefgehend beeinflusse n würde. Mir schien, ein theoretischer Rah m en sei nötig, um die grund sätzlichen Probleme, die sich für die Struktur und den sinnrichtigen Gebrau ch der Comp utertechnik ergaben, zu formu lieren und zu lösen - unabhängig vom jeweils aktu ellen Stand der Technik, aber in Übereinstimmung mit den Gesetzen der Physik. Ich entschloss m ich, die Grundlagen für diesen Rahmen zu schaffen. Zwar da chte ich an mei n Spielzeug von 1939 und wandte es auf Signale und Inf ormations-Bits an, aber ichformulierte meine Erg ebniss e vor wiegend in mathematischer Form , um bessere Akzeptanz f ür meine Dissertation über " Kommunikation mit Automaten" zu erreichen. (Erst nach meiner Prüf ung f ührte ich die Netz-Graphik wieder ein),
Meine Argum entation war: •
Die Theorie des Berechne ns stiitzte sich auf die TuringMas chine, bestehend aus einem abstrakten Automaten und einem unendlichen Band . Während der Automa t durch einen Compu ter imp leme ntiert werden kann , ist dies für da s unendliche Band nicht möglich.
•
Um nicht in Widerspruch zu physikalischen Gesetzen zu geraten (endliche, invariante Lichtgeschwindigkeit, Unschärfe-Prinzip), muss das unendlich lange Band durch zwei kurze Schieberegister ersetzt werden, an deren Enden zwei Register-ZeIlen-Fabriken hängen, die mindestens so schnell arbeiten wie der Gebrauch des Registers.
•
Die Zellen des Registers dürfen nur mit ihren beiden Nachbarn kommunizieren, wie auch jede andere Transition
nur auf ihre unmittelbaren Nachbarn wirken darf •
Das heißt, dass die damals vorherrschende Automatentheorie, mit ihren globalen Zustandsänderungen, nicht
auf die Verteilten Systeme anzuwenden ist, auf die die Entwicklung der Technik hinsteuert. Das Internet als einen einzigen Automaten verstehen zu wollen, ist absolut nicht
hilfreich. Seitdem haben viele Andere geholfen, die Netztheorie der Verteilten Systeme zu einem etablierten Wissensgebiet zu entwi-
ckeln, mit vielen Computer-Werkzeugen für die Erforschungvon Systemeigenschaften. die in der graphischen Darstellung verborgen sind, wie Verhaltens-Invarianten oder Möglichkeiten der Zerlegung in Komponenten. Dieses Buch wählt daraus die wichtigsten, originellsten, bewährtesten und grundlegendsten Konzepte aus und stellt sie
leicht verständlich dar. Damit bietet es Studierenden und Praktikern, in Teilen auch Spezialisten des Gebietes einen Zugang oder eine neue Sicht.
Ich wünsche diesem Buch weite Verbreitung und langjährige Verwendung.
St. Augustin im Januar 2008
Inhaltsverzeichnis Zu diesem Buch Einleitung
I
ModelIierungstechnik.
1
Ein Beispiel
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2
3
Ein Keksautomat. Ein Blick ins Innere Die Schnittstelle Heiße und kalte Transitionen Abläufe Alternativen Feinschliff Verschiedenartige Komponenten
VII I
.
7 9
9 ]() II 12 13 14 15 17
Die 9n Incll egenden Konzepte
21
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
21 22 25 26 26 27 30 3t 32
Eine Variante des Keksautomaten Komponenten eines Netzes Die Datenstruktur für Petrinetze: Multimengen Markierungen als Multimengen Schritte bei konstanter Kantenbeschriftung Schritte bei variabler Kantenbeschriftung Systemnetze Markierungsgraph Endmarkierungen
Haunq er SpeZial all Elementare Systemne ze
35
3.1 3.2 3.3 3.4 3.5
35 36 37 39 42
Elementare Systemnetze Ein abstraktes Modell des Keksautomaten Wechselseitiger Ausschluss Der Crosstalk-Algorithmus I-beschränkte elementare Systemnetze
Aus dem Zustandsgraphen ableitbare Eigenschaften Der Überdeckungsgraph: Die Idee w-Markierungen Der Überdeckungsgraph: Die Konstruktion Die Endlichkeit des Überdeckungsgraphen Die Überdeckung sequentieller Abläufe Simultan unbeschränkte Plätze Tote Transitionen Überdeckungsgraphen allgemeiner Systemnetze
15 Errerc barke.t m elementaren Syslemnetzen.. 15.1 Folgerungen aus Platzinvarianten 15.2 Die Markierungsgleichung 15.3 Transitionsinvarianten
16 Ablau'eiqenschatten . 16.1 16.2 16.3 16.4
Intuitive Fragestellung Der Begriff der Ablaufeigenschaft Die Ableseregel Beweisgraphen
17 Analyse oer Free-Cho ce-Netze 17.1 Free-Choice-Netze 17.2 Das Falle/Co-Falle-Theorem für Free-Choice-Netze 17.3 Cluster 17.4 Das Rang-Theorem
141 142 142 144 144 145 156
151 151 153 154 155 156 157 158 159 159
161 162 162 164
16, 167 168 170 174
179 179 180 181 182
8 Ana lyse de r ma rkierte n G raphe n 18.1 18.2 18.3 18.4
Markierte Graphen Lebendigkeit markierter Graphen I-beschränkte markierte Graphen Lebendigkeit I-beschränkter markierter Graphen
9 Wo rllge1orm-e Svsternnetze 19.1 Beispiel: Modelle von Geschäftsprozessen 19.2 Wohlgeformte elementare Systemnetze 19.3 Entscheidung der Woh1geformtheit
IIJ Fallstudien 20 We c' \se lse itJge r Ausscnluss. 20.1 20.2 20.3 20.4 20.5 20.6
Das Problem Realisierbarkeit Fairness-Annahmen Mutex mit autonomer Fairness Die Szenarien des Algorithmus Korrektheit des Algorithmus
21 i\sync hro ne Hardware
21.1 21.2 21.3 21.4 21.5 21.6
Der Counter F10wPipeline-Prozessor (CFPP): Das Problem Die Lösungsidee Das Syntheseproblern des CFPP Strukturelle Vereinfachung eines Moduls Das Modell des CFPP Analyse des Modells
22 Nelzwe rk-Algo fllhmen 22.1 22.2 22.3 22.4
Einige Konventionen zur Darstellung von Netzwerk·A1gorithmen Der Echo-Algorithmus Synchronisation auf azyklischen Netzwerken Konsens im Netzwerk
185 185 186 187 187 19 1 191 192 192
195 19 7 197 198 200 201 202 204 209
209 210 212 212 213 215 2 17 218 218 222 226
IV An/lang .
23 1
23 Set luss betracnturqen
233
23.1 23.2 23.3 23.4 23.5 23.6
Historisches Eigenschaften der elementaren Ausdrucksmittel von Petrinetzen Spekulative Fragen Petrinetze im Software-Entwurf Bezug zu anderen Systemmodellen und Analysetechniken Andere einführende Texte
Literaturverzeichnis Beispiele und Fallstudien Mathematische Sätze Index
233 233 235 236 237 237 239 243 244 245
Einleitung Was sind und was sollen die Pel rinelze? Eine zentra le Au fgabe der Inform atik ist die sachgerec hte Kon-
strukt ion von Systemen, die informationstechnische Komponenten enthalten und in eine maschinelle oder organisatorische Umgebung integr iert sind. Solche Systeme werde n modelliert, da mit Au ftra ggeber, Herst eller, A nwender etc. a n Hand des Mo-
dells besser verstehen, was ein Syste m leiste n soll und wie man es herstellen, verwenden, variieren und verbessern kann.
In den verga ngenen 50 Jah ren ist eine Vielza hl von Modelli eru ngstechniken für solche Syste me vorgesc hlagen worde n. Sie all e haben ihre Stärken und Schwäche n, ihre bevorzugte n A nwendungsgebiete, A nwendergruppen und Werkzeuge. Petri netze gehöre n z u de n älteste n System modellen der In formatik.
Über Jahrzehnte wurden interessante theoretische Fragen zu Petrinetzen gestellt und gelöst, spezielle Teilklassen unt ersucht, Werkzeuge entwickelt, Fallst udien realisiert und in der Pra xis
erfolgreiche Projekte realisiert. Petrinetze sind nie, wie einige an dere Methoden , eine Weile bevorzugt und dann vergesse n worde n, sondern haben über die Jahrzehnte ihre n Platz in der M ethodenvielfalt behalten. Im Laufe der Zeit ist das Intere sse an der Int egration mit andere n Methoden einem gelegentlichen Hang zur Ab gre nzung gewiche n. Mit einer lebhaften, stetig wachsenden Gru ppe interessierter
Forscher und A nwendet und immer neuen Softwarewerkzeugen stehen Petrinetze seit Jahrzehnten bestens da, um einige abseh-
bareEntwicklungslinienderInformatik mitzugestaltenundzum z ukü nftigen " Modellbasierten Softwareentw urf" , •.Pro gra mming-in-the-large", .aibiqirous", " pervasive", .rlisappeurin g"
Softwareentwurf beizutragen. Dazu bietet das Petri netzportal
www.informatik .uni-hambu rg .de/TGI/PetriNets/ index .html reichhalt iges Mater ial. Carl Adam Petri selbst hat seinen A nsatz noch wese ntlich
breiter angelegt. Er sucht eine Theorie der In formationswandJung im Einkla ng mit den Gesetze n der Physik, mit tief liegen-
den Invarianten in der Tradition der Naturwissenschaften und mit Ausdrucksmitteln zur Beschreibung des menschengerechten, pragmatischen Umgangs mit den technischen Möglichkeiten der Informatik.
Was steht in diesem Buch? Das Buch ist in drei Teile gegliedert. Der erste Teil beschreibt, wie man mit Petrinetzen modelliert. Alle Konzepte werden an Beispielen erläutert; zunächst an verschiedenen Modellierungsvarianten eines Keksautomaten. Dafür verwenden wir die ausdrucksstärkste, allgemeinste Form von Petrinetzen (mit frei wählbaren Objekten der realen Welt als "Marken"). Erst im dritten Kapitel spezialisieren wir uns auf den technisch einfacheren Fall elementarer Netze mit abstrakten, "schwarzen" .Marken. Der Grund für diese Reihenfolge liegt in der Absicht, mit einem intuitiv besonders überzeugenden, realitätstreuen Modell zu beginnen. Abgeleitete Begriffe wie sequentielle und verteilte Abläufe, Szenarien und zusätzliche Ausdrucksmittel ab Kapitel 4 werden häufig zunächst für elementare Netze eingeführt, weil sie dort leichter verständlich sind. Wer Petrinetze kennt, hätte ggf. auf Szenarien (oder sogar auf verteilte Abläufe) verzichtet. Die Beispiele sollen zeigen, dass insbesondere Szenarien das Verständnis für ein System entscheidend stärken und besondere Aufmerksamkeit verdienen. Das Syntheseproblern, also die Ableitung nicht-sequentiellen Verhaltens aus einer Beschrei bung sequentiellen Verhaltens, kann mit Petrinetzen besonders überzeugend gelöst werden. Deshalb wird es in einem eigenen Kapitel dargestellt. Im zweiten Teil werden Techniken zur Formulierung wichtiger Eigenschaften von Systemmodellen vorgestellt, zusammen mit Algorithmen für den Nachweis, dass ein Petrinetzmodell eine solche Eigenschaft hat oder nicht hat. Um das Verständnis zu erleichtern, werden die Konzepte gelegentlich zunächst nur elementare Netze entwickelt. Es werden werden alle grundlegenden, für Petrinetze spezifischen Analysetechniken vorgestellt, insbesondere also Fallen, Platz- und Transitionsinvarianten, Überdeckungsgraphen und spezielle Techniken für Free-ChoiceNetze. Für manche Leser neu ist vielleicht die Kombination der
A nalysekra ft von Fall en und Platzinvarianten, die konsequen te Unterscheid ung " ka lter" und "heißer" Transitionen und die D isku ssion von Abla ufeigenschaften. Temporale Logik und insbesondere das Mod el Chec ki ng bieten generelle A nalysetechniken , die auch für Petrinetze sehr erfolgreich verwendet werd en. Wir gehen hier nicht explizit auf solche Techniken ein, da sie nicht für Petrinetze spezifisc h sind. Ide en der te mporalen Logik fli eße n abe r implizit häufig in diesen Text mit ein, insbesondere die Untersc heidung von Zustands- und Ab laufeigenschafte n. Im dr itte n Teil wird eine A uswahl von drei Fallstudien aus ga nz unterschi edlich en Bereichen vorgestellt. Sie zeigen die Vielfalt der Verwendbarkeit von Petrinetzm odellen . In jeder Fallstud ie werden zugleich neue, a llgemei nere Begriffe, Eigenschaften und A na lysetechnike n vorgeste llt, die auch für ga nz a ndere Modell ierun gsau fgaben nützlich sind. Dazu gehöre n
Fairness-Eigenschaften, die Kombination von Regionentheorie und Zustandseigenschaften und symbolische Schemata für Petrinetze. Zusammengefasst erläutern die drei Teile dieses Buches: •
Petrinetze als Modellieru ngstechnik,
•
die theoretisch fundierte Analyse von Petrinetzen,
•
Fallstudi en aus ganz unterschiedlichen A nwendungsbereiche n. Jedes Kapitel endet mit Übungsaufgaben und H inweisen auf
weiterführende Literat ur. Farbig unterlegte Texte fokussieren exemplarisch oder historisch einzelne Aspekte des Haupttextes. Der A nha ng listet Beispiele und Fallstudien sowie die Math ematischen Sätze und die Fachbegr iffe auf.
Inhaltlich abgeschlossene Stränge I m vorige n Ab sch nitt habe n wir berei ts den Spe zialfall elementarer Netze (mit "sc hwarzen M arken") erwäh nt. Wer lediglich solche Netze studieren möchte, folgt dem inhaltl ich in sich abge-
schlossenen elementaren Strang dieses Textes. Welche Kapitel und Abschnitte zu diesem Strang gehören, zeigt Abb, L 2.2 I
~311~ 3.2 3.5
4.1 6.4
6
7
8
9.5 ... 9.6
10
11
12
14
15
16.2 ... 16.4
17
18
19
20
21
I
5.1 5.2
ADhllrJLmg 1 Der ele rn ent are SlrancJ
Wer nur das Modellieren (ohne die Analyse) von Systemen kennen lernen will, folgt dem Modellierungsstrang. Dieser Strang enthält alle Modelle realer Systeme, die in diesem Text vorkommen. Abbildung 2 skizziert die Kapitel und Abschnitte dieses Stranges.
3.2 ... 3.4
~/~ _.
4.5 4.6
Abbl dung
7.1
7.6
8.1
9.3
19.1 20.1 ... 20.4
21
22
2: Der Mod e I erUl1 gss!rang
Wer schnell technisch einfache, aber inhaltlich anspruchsvolle Beispiele und Fallstudien sehen möchte, wählt die elementaren Modelle des ModelIierungsstrangs, den Abb, 3 zeigt.
3.2 3.4
7.1
7.6
8.1
19.1 20.1 20.4
21
Abbl dung 3. Der etern ent are Mo d~ l leru n\ls5 t r an g
Wie werden die Inhalte dargestellt? Treffende Beispiele und intuitive Besch reibun gen charakterisie re n da s Gemei nte oft hinreichend gena u. Wo formal argumentiert wird, werde n lediglich elementare Stand ard-Notatio nen verwendet, beispielsweise für Mengen , Funktionen, Graphen, Vektoren. M atrize n. Gleich ungss ysteme und Aussagenlogi k. Was darüber hinausgeht (beispielsweise der Umgang mit M ultirnengen), wird ausfüh rlich erläutert. D as Gebiet der Petrin etze ist so schnell gewachsen, dass sich keine in allen Aspekten konsistente, intuitiv a nspreche nde Terminologie durchsetzen konn-
te. Indiesem Textsuchen wirbeständig nach Kompromissen aus gewachsener Verwe nd ung, Konsistenz (G leiches wird gleich be -
zeichnet, Verschiedenes wird verschieden bezeichnet), intuitiver Verstä ndlichke it und sprachlicher Korrektheit für Begriffe und Bezeichnungen . Einige (we nige) Begriffe werden hier neu ein-
geführt oder in neuer Weise verwendet. Wer den Formalismus meidet, kann den Inhalt trotzdemhinreichend genau verstehen. Die Gestaltu ng der Seiten lockert den Text auf. Der "breite Rand" enthält Beispiele, Bemerkungen und altern ative Form ulierun gen . Im Einz elnen heißt das:
•
Der Rand illustriert den Text: Wer Petrinetze nicht kennt, lese den Text. Die Beispiele und Bemerkungen auf dem Rand
erläutern und veranschaulichen die im Text beschriebenen Kon zepte.
•
Der Text erläutert den Rand: Wer Petrinetze - teilweise ken nt, kommt häufi g mit den Be ispielen und Bem erkungen auf dem Rand alle in zurecht. Der Text d ient da nn zur Bestätig ung und Verall gemeinerung.
•
Auch oh ne A na lyse sind Petrin etze als M odellierun gstechn ik interessa nt. Die Kapitel I und 3 reichen, um die Fall studie n in Teil III zu verstehe n.
Bei der Suche vo n Textstellen he lfen dem Leser die Verzeichnisse der Beis piel, Fallstudien , D efin ition en und Sätze und der allgemei ne In dex am Ende des Bu ches.
Weitergehende Informationen, Kommentare von Lesern und Material für den Unterricht findet der Leser unter:
www.in f orma ti k .hu -berlin . d e / t op / pn en e b uch/ i ndex.p hp
Teil I Modeliierungstechnik In J
It: ...r.: 11I er-,tun
1r:11 gclu l:~ 11 111 JJ.:'> ~h)Jt: Il ICIl:1l I UI Pr.::l.llIl:. wi r cg umc n im er... icn K: IJ1 i,~ mi einem Hcispiel d.rdir.: ' n! "; -hci.I cndc n \ u..dr rcksm iu el benutzt und ihre Ol n!!!: me-sc ue \'t.' f\\t: lldu lig J l: lgI 1)'..:' 11 •.dI ~ ~ IlI-= IIIt' 1I h u besc hreibt .1:11111 d'l' zweite K.lp:tcl Dern 1.1lI ·-IFt:11 Spc lI:iltall dt.'r,'1t '11('1 1 turrn S\ \ '1 f1Il/d . 1 1...1 cill CH!CI1C'" K:IJJ1h:1 eewid mc t SeIlhe U I C Il
hdt werdeu
111
Ka pi te l
du: Kc u/ cptc
JO=l .\ 1 '1IWllll t' JJt 11
und
vrnriltrn \ hlti lJtl ~ 'L!.cllIiher!!csTI? III 11 1111 im fun tu-n Knpitcl verte ilte r\ hla uft: /U I Bt:'I...nrcrbuuc \ '1)11 S:c nt1l'irl1 verwe nde . 1111 . .ech [1:11 Kapitel geh c.. UIII lu:cilJ. lk he \u druckxmi ue l m.l um die Frage. welche d :I\ 1l1l I cd i ~ l i -11 nii' , li .he . bkurzcn JL': Kunvcuuoueu :--IIIJ und welche d j ~ \u....Jh.ldv . af't d cm:': l1 I an: I S YS{t Ill IlC (/~ e i hü lle II. E... lu lg d u: LU:- llll ~ des ~\" fht' \tp roh/lf/I\ : Die ... y...icm.nisch e Konstru ktion eine,... ver teilten S ~ ...(t:IllS u uod c llrc n .J1s
clc mc uturcs S~:loltlll l1t:1I1 .IUS eure n
scuucrnicllen Heoh.rclu ungen [);h ICll! l' diskuucu .lie "'·omr oÜl111f1 von Nerzen.
K. lp i l CI
d iese
h: i l ~
• 1
Ein Beispiel In diesem Kapitel erläutern wir an Hand eines Beispiels die Ausdru cksmi ttel von Petrinetzen zur Modelli erun g diskre ter Syste me , die in diesem Buch vorkommen.
1.1 Ein Keksautomat Als einleitendes Beispiel wählen wireinen Automa/ell, der Kekse verkau ft , Der Automat hat einen Einwurf schlitz für Münzen und ein Entnahmefach für Keksschachteln . Im Anfangszusta nd des Keksautomaten enthält der Ein wurfschlitz eine M ünze. Das Entnahmefach ist leer.
e
Ke«;saulom al
Abb ildung 1.1 modelli ert das alles als ein Petrinetz: Einwurts chlitz und Entnah mefac h, beide dargestellt als Ell ipsen, sind die Plätze des Petrinetzes. Der Einwurfsch litz enthält eine EuroMünze. S ie ist in Abb . 1.1 dargestellt als eine Marke des Netzes. Das Entnahmefach enthält keine Marken. Eine Verteilu ng von Marken auf Plätze ist eine Markierung des Petrinetzes. Der Automat kann nun die Münze aus dem Einwurfsc hlitz kassieren und eine Keksschachtel abgeben. Im Petr inetz der Abb. 1.1 ist das als eine Transition t modelliert, dargestellt als Quadrat (oder Rechtec k). Indern die Tra nsition eintritt, ändert sie die aktuelle M arkieru ng. Intu itiv kann dies als Bewegun g oder Fluss von Marken aufgefasst werden: Wie die Richtun g und die Anschrifte n der Pfeile aus Abb. 1.1 anzeige n, .Fließt" die M ünze aus dem Einwurfschlitz, und eine Schachtel .f' lie ßt" in das Entnahmefach.
~ t Entnahme-
Einwurfschlitz
fach
Anbt dung 1
Oe' Keksauto-n et
In se-nern Antanqszustanc
D Tr ansaica
~ t Entnahme-
Einwurfschlitz
fach
ADbildur.q 1 2 DE'f Kek sautom at
nach oem ET n t r l~1 von t
Abbildung 1.2 zeigt die neue Markierung: Der Platz Einwurfschlitz enthält keine Marke, der Platz Entnahmefach enthält als Marke eine Schachtel. In dieser Markierung kann t nicht eintreten.
1.2 Ein Blick ins Innere Wenn wir in das Innere des Automaten schauen, finden wir einige Komponenten, die Münzen und Schachteln lagern und den Verkauf abwickeln.
Abbildung 1.3 modelliert das Innere des Automaten wiederum als Petrinetz: Es gibt einen Speicher, gefüllt mit fünf Schachteln, und eine - anfangs leere - Kasse.
® Einwurf-
schlitz
•
® a
®
• b
Entnahme-
fach
Kasse Ah bllr1lmf) 1 :3. E!I C:l< In da s Innere de s Keks eutcenate n
a -
Mu n.l~
n enmen
b - Schachtel
et oeoen
In der dargestellten Markierung tritt die Transition a ein. Was dabei passiert, sieht man an den Pfeilen, die bei a enden oder beginnen: Die Münze verschwindet aus dem Einwurfschlitz und erscheint in der Kasse; zugleich entsteht ein Signal an die Transition b, dargestellt als schwarzer Punkt. Abbildung 1.4 zeigt die Markierung nach dem Eintritt von a. Nun kann die Transition b eintreten, denn die bei b endenden Pfeile sind mit Objekten beschriftet, die in den jeweiligen Plätzen tatsächlich vorkommen: ein schwarzer Punkt in Signal und eine Schachtel (sogar mehrere) im Speicher. Nach Eintritt
• 1
® Einwutischlitz
a
b
®
Abo l dun g 1 4 Nach
®
d ~ T1
Entnahmefach
Kasse
cml r 1I von
von b entsteht die Markierung aus Abb. 1.5. Sie entspricht der Markierung aus Abb. 1.2. Nun kann keine Transition mehr eintreten.
Einwurfschlitz
a
b
® ®
Entnahmefach
Kasse
Aoo i dung 1.5 Nach dem Eln tr.tt von
1.3 Die Schnittstelle Bisher haben wir den Automaten als geschlossenes System modelliert: Münzen und Schachteln sind auf Plätze verteilt; der Eintritt von Transitionen verteilt sie neu. Es fehlen noch Aktivitäten der Umgebung: Jemand wirft beispielsweise eine Münze ein, oder jemand entnimmt eine Schachtel. Wie modellieren wir das? Hier ein erster Versuch: Eine Transition Münze einwerfen sitzt vor dem - leeren - Einwurfschlitz. Münze einwerfen hat keine Voraussetzung, kann also stets eintreten. Münze einwerfen beschreibt hier eine Aktivität, die in der realen Welt weitere Vorbedingungen hat. Insbesondere gibt es am Anfang in der Umgebung eine Münze. Im Modell zeigen wir das nicht. Nehmen wir nun an, der Einwurfschlitz fasst nur eine einzige Münze. Dann müssen wir dafür sorgen, dass in den Platz
~ ---~ Münze einwerfen
Einwurfschlitz
a "O in a nennt eine zusätzliche Voraussetzung für den Eintritt von a. Sie verhindert, dass a eintritt, wenn der
Zähler die Marke ,,0" trägt. Damit haben wir die wesentlichen Komponenten des Keks-
automaten als Petrinetz modelliert. Auf der gewählten Abstraktionsebene sind alle Aspekte der Struktur und des Verhaltens des Automaten korrekt dargestellt. Was "Korrektheit" hier bedeutet und wie man Korrektheit nachweist, wird in Teil II dieses Buches beschrieben.
• 1
Einwurf-
Entnahmela ell
® ~~ ® r-:~~+( schlitz
®
~
Münze
zurück
Einwurf
mögliell
Zähler 5
Kasse
AOOi dung 1 1 Erganzung e nes Zaf-te-s
Speicher Einwurfschlitz ® a I---'=-... )=-~ x.?>~O~
~ IOIO IM
x x-1
Einwurf
möglich
•
Zähler 4
b
•
•
® Münze zurück
lU
Signal
ID
•
Entnahmelaell 10
~
kein Signal
® ®
Kasse
Abbl dung 1 2 Necn Einmtt von
1.8 Verschiedenartige Komponenten Das .Modell des Keksautomaten zeigt, was Petri netze so flexibel macht: Wir modellieren Komponenten, die ganz verschieden-
artig sind. aber trotzdem in einem einheitlichen Formalismus form uliert und kombiniert werden können. In den Modellen der Abbildungen J.3 bis 1.12beschreib en Plätze und ihre Marken
•
Komponenten eines realen Automaten: Einwurfschlitz, Kasse, Speicher, Entnahmefach, mit Münzen und Scha chtelll als Marken;
Schachtel entnehmen
•
technische Abstraktionen: den Zähler mit einer Zahl als Marke und Signal mit einer "schwarzen" Marke, die ein aktuell vorliegendes Signal darstellt;
•
logische Abstraktionen: Einwurf möglich und kein Signal mit einer "schwarzen" Marke, die den Wahrheitswert wahr bezeichnet.
Transitionen beschreiben: •
Aktionen des Automaten in seinem Inneren, die den Transport von Objekten und Signalen modellieren: a (Münze akzeptieren) und b (Schachtel abgeben);
•
Aktionen des Automaten an seiner Schnittstelle: Münze zurück;
•
Aktionen des Kunden, die der Automat ermöglicht und die den Automaten beeinflussen: Münze einwerfen, Schachtel entnehmen.
Ein globaler Zustand des Keksautomaten wird als Markierung (Verteilung von Marken auf Plätzen) modelliert. Einer Aktivität, also einem Übergang von einem Zustand zu einem
neuen Zustandim Keksautomaten entspricht ein Schritt von einer Markierung zu einer anderen Markierung im Modell. Dem Zusammenspiel mehrerer Aktivitäten des Keksautomaten ent-
spricht ein Ablauf, also eine Abfolge von Schritten im Modell. Indem alle diese verschiedenartigen Komponenten in einem
einheitlichen Formalismus dargestellt werden, kann man ihre wechselseitige Wirkung erkennen und analysieren. Die Korrektheit des gesamten Systems mit seiner Wirkung in derrealen Welt ist dadurch überzeugend nachweisbar.
Aufgaben L Wie viele erreichbare Markierungen hat das Systemnetz in Abb, LlI, wenn der Platz Zähler in der Anfangsmarkierung die Marke 2 (statt 5) enthält? Schätzen Sie aufgrund dieses Ergebnisses, ob im unveränderten Netz mehr oder weniger als 70 Markierungen erreichbar sind.
• 1
2. Ersetzen Sie in Abb. 1.11 die Anfangsmarkierung des Platzes Zähler durch a) 4 oder b) 6. Diskutieren Sie, was diese Varianten intuitiv bedeuten. 3. Modellieren Sie einen Spielautomaten mit folgendem Verhalten: Anfangs ist der Automat zu einem Spiel bereit und der Spieler kann eine Münze einwerfen. Eine eingeworfene Münze landet in der Kasse des Automaten und der Automat geht dabei in einen Zustand, in dem er keine oder hintereinander einige Münzen aus der Kasse als Gewinn auszahlt. Irgendwann beendet der Automat die Auszahlung und wird wieder bereit für ein neues Spiel (spätestens, wenn die Kasse leer ist).
Zum Weiterlesen Wer ein System modelliert, denkt nicht immer unmittelbar an Komponenten, die sich wie Plätze und Transitionen von Petrinetzen verhalten. Häufig wird man ein System zunächst gedanklich in abstrakte Komponenten zerlegen und diese Komponenten dann systematisch verfeinern wollen. Alle petrinetzbasierten Modellierungstechniken verwenden Verfeinerungs- und Kompositionsverfahren. Im Rahmen der gefärbten Netze [38] werden Hierarchiekonzepte vorgeschlagen. Auch Girault und Valk [29] empfehlen in ihrem umfangreichen Buch zum Systementwurf mit Petrinetzen verfeinerndes Vorgehen. Einführende Texte unterschiedlicher Art enthalten die Sammelbände zu den letzten beiden Advanced Courses on Petri Nets [69], [18].
Wie es anfing Ende der 1950er Jahre hat der Oberassistent Carl Adam Petri am Institut für Instrumentelle Mathematik der Universität Bonn ganz praktische Überlegungen zur Implementierung rekursiver Funktionen angestellt: Für eine solche Funktion kann manja im Allgemeinen nicht im Vorhinein abschätzen, welchen Aufwand eine Berechnung benötigt. Wenn die verfügbaren Ressourcen für eine Berechnung nicht reichen, sollte das Rechensystem erweiterbar sein, um die Berechnung fortzusetzen. Das ist günstiger, als mit einem größeren Rechensystem wieder von vorn zu beginnen. Petri suchte also eine Rechenarchitektur, die beliebig oft erweiterbar ist. Eine solche Architektur besitzt keine zentralen Komponenten, insbesondere keinen zentralen, synchronisierenden Taktgeber. Denn jede Erweiterung dehnt das System räumlich aus. Leitungen
zum Taktgeber würden länger, längere Taktlaufzeiten erzwingen geringere Taktfrequenzen, irgendwann würden Grenzen physikalischer Gesetze erreicht und bei weiteren Erweiterungsversuchen verletzt. Eine beliebig oft erweiterbare Rechnerarchitektur muss also zwangsläufig ohne synchronisierende Uhren auskommen. In seiner berühmt gewordenen Dissertation "Kommunikation mit Automaten" [56] zeigt Petri, dass eine beliebig oft erweiterbare asynchrone Rechnerarchitektur tatsächlich konstruierbar ist. Dabei kommunizieren lokal beschränkte Komponenten über lokale Schnittstellen miteinander.
Aktionen mit lokal beschränkter Ursache und Wirkung sind die zentrale Idee der Netze, wie Petri sie in [56] vorgeschlagen hat. Unter dem Namen .Petrinetze" wurden sie populär, wie nur wenige andere Konzepte der Informatik.
Die graphische Darstellung hat Petri erst später verwendet. So enthält der erste Text über Petrinetze kein einziges Petrinetz.
2
Die grundlegenden Konzepte Wir betrachten nun Petrinetze etwas genauer, also ihre Struktur aus Plätzen, Transitionen und Kanten, die zugrunde liegende Datenstruktur der Multimengen, die Struktur von M arkierungen und Schritten und schließlich die erreichbaren M arkierungen und die Endmarkierungen. Alles erläutern wir am (leicht modifizierten) Keksautomaten.
2 .1 Eine Variante des Keksautomaten Wir variieren den Keksautomaten aus Abb. l.ll so, wie Abb. 2.1 ihn zeigt (die Bezeichnung der Plätze mit A, . . . , H und der Transitionen mit a , .. " e erleichtert die Notation): Im Speicher H
®
• e
D
Zw I Sorten scnecme
n und Au,galJe r'Nelet Sct-ecnteln
H liegen nun zusätzlich zu den fünf eckigen Schachteln noch zwei runde. Für einen Euro bekommt der Kunde zwei Schachteln. Ob eckig oder rund, entscheidet der Automat nichtdeterministisch. Der Automat legt gekaufte Schachteln im Entnahmelac h C ab. Der Kunde kannjeweils einzelne Schachteln entnehmen (mit der kalten Transition d). Das Netz in Abbildung
T"'f!t Sorten Mar ken
[!JB
2.1 wird durchgehend im gesamten Kapitel 2 als Beispiel verwendet.
2.2 Komponenten eines Netzes Das Beispiel des Keksautomaten zeigt alle Arten von Komponenten, die in einem Petrinetz vorkommen können.' Wir betrachten sie noch einmal Einzeln und erläutern ihre Rolle im Modell des Systems.
Plätze
o
Ein Petrinetz ist eine Struktur mit zwei Sorten von Elementen. Eine Sorte von Elementen sind die Plätze. Graphisch wird ein Platz als Kreis oder Ellipse dargestellt. Ein Platz p modelliert immer eine passive Komponente; p kann Dinge lagern, speichern, sichtbar machen, sich in einem Zustand befinden.
Transitionen
D
Die zweite Sorten von Elementen eines Petrinetzes sind die Transitionen. Graphisch wird eine Transition als Quadrat oder Rechteck dargestellt. Eine Transition t modelliert immer eine aktive Komponente; t kann Dinge erzeugen, verbrauchen, transportieren, verändern.
Kanten Plätze und Transitionen sind miteinander durch gerichtete Kanten verbunden. Graphisch wird eine Kante als Pfeil dargestellt. Eine Kante modelliert niemals eine Systemkomponente, sondern immer eine abstrakte, manchmal nur gedankliche Beziehung zwischen Komponenten; beispielsweise logischer Zusammenhang, Zugriffsrecht, räumliche Nähe, unmittelbare Kopplung.
1 Die Literatur führt eine Vielzahl von Erweiterungen und Verallgemeinerungen auf, die hier nicht betrachtet werden.
2 Im Beispiel des Keksautomaten fällt auf, dass keine Kante zwei Plätze oder zwei Transitionen verbindet. Vielmehr führt jede Kante von einem Platz zu einer Transition oder umgekehrt von einer Transition zu einem Platz. Das ist weder Zufall noch Willkür, sondern ergibt sich unausweichlich, wenn man mit Netzen richtig modelliert, d. h. passive und aktive Komponenten vernünftig trennt.
Netzstruktu r Es ist üblich, die Menge der Plätze, Transitionen und Kanten mit P, T und P zu kennzeichnen und dabei Kanten als Paare, also F als Relation F C; (P x T) U (T x P) aufzufassen. Dann ist
eine Netzstruktur. Die Plätze und Transitionen sind die Elemente von N. F ist die Flussrelation von N. Abbildung 2.2 zeigt die Netzstruktur des Keksautomaten in den Fassungen der Abbildungen 1.11, 1.12 und 2.1.
c
A
e
D
~
G
F
E
Aoo i dung 2.2 Die Netzstruktur oes Kexsautcmaten
Wenn aus dem Kontext das gemeinte Netz N eindeutig hervorgeht, ist für ein Element x der Vorbereich ·x und der Nachbereich x· von x definiert als
'x
=dd
{y I yFx}
x·
=dd
{y I xFy}.
t
t
P
Q------{]
D---------CJ
N = (P,T,F)
H__
P
und
l ,
auf die Umgebung der Transition a . Die so erreichte Markierung M , aktiviert die Transition b, indem nun die beiden Variablen y und z mit Konstanten belegt werden . Jede Belegung der beiden Variablen mit I[J oder 8 aktiviert b. In M, gibt es also eine Ausw ahl unter vier Modi und damit unter vier Schritten,
wie in Abb. 2.4 skizziert.
G
®
® F
E 5
a
~--. # lT'~
~u r
IXI - 7 Bedingung x
ist wahr !
C nat nur einen Mcdus
2
y,z
B
• ÄOO I
b
dung 2.4 A·f. eknvret b in wer Mad
2,7 Systemnetze Wir haben nun die wichtigsten Ausdrucksmittel beisammen, um ein diskretes dynamisches System zu beschreiben, beispielsweise einen Keksautomaten. Gemäß der Prinzipien aus Abschnitt 2.2 verwendenwir dafüreine geeignet beschriftete endliche Netzstruktur, N, Zentral ist der Begriff einer Markierung von N, also eine Verteilung von Marken (Multimengen) auf den Plätzen von N, Üblicherweise wird die Anjangsmarkierung von N mit Mo bezeiclmet und explizit in Neingetragen. Mo beschreibt den Anfangszustand des modellierten Systems, Eine Transition t kann mit einer Bedingung, und die Kanten rund um t können mit Ausdrücken beschriftet sein. Diese Beschriftungen zeigen die unterschiedlichen Möglichkeiten (Modi), unter denen t aktiviert ist, und die entsprechenden Effekte beim Eintritt von t: Schließlich ist jede Transition heiß oder kalt, dabei wird jede kalte Transition mit "f" gekennzeichnet Eine Netzstruktur zusammenmit einer Anfangsmarkierung, Transitionsbedingungen, Kantenanschriften und als kalt gekennzeichneten Transitionen bilden ein Svstemnetz.
Mit Systemnetzen werden reale, in diskreten Übergängen veränderliche Systeme modelliert, Jeder Platz eines Systemnetzes modellierteine Zustandskomponente eines Systems und jede aktuell vorliegende Marke auf dem Platz eine aktuell gegebene aber veränderliche Ausprägung der Komponente. Jede Transition des Systernnetzesrepräsentiert eine Aktion des Systems. Der Eintritt einer Transition beschreibt, dass die entsprechende Aktion stattfindet Wenn dabei im Modell eine Marke
2 einen Platz erreicht oder verlässt, erzeugt bzw. beendet die Aktion die entsprechende Auspr ägung der Zustandskomponente.
2.8 Markierungsgraph Für ein Systemnetz N mit der Anfangsmarkierung Mo ist eine
Markierung AI von N erreichbar , wenn es eine Sequenz von Schritten
'{ ",p, '{
"'/1,
'.,13. M n
1\ ' 0 - 1" 1 - + ... - +
gibt, mit Mn = M. Im Allgemeinen sind unendlich viele Mar-
kierungen von N erreichbar. Die erreichbaren Markierungen undSchritte eines Systemnetzes N kann man im Markierungsd.y=
ij')
M8
e
AbbllckJng 2 ,5 AnfangsS\uck des Mark erunq sqraphen zum Sys temnetz aus Abo . 1 ,
graph l'O1l N zusa mmenste llen. Seine Knoten sind die erreichbaren Markierungen, se ine Kanten sind die Sch ritte lW ischen den erreichbare n Markie ru ngen vo n N. Die Anfangsmarki eru ng Mo von N wird besonders her vorgehoben. Oft wird der Markieru ngsgraph auch als Erreichbarkeitsgraph bezeichnet. Abbil dung 2.5 zeigt ein Anfangsst ück des Markieru ngsgra phen des Syst emnetzes aus Abb. 2.1. D er gesamte Markierungsgraph hat ca. 100 Knote n. Im Vergleich zum Syste mnetz in Abb. 2.1 wäre es extrem aufwä ndig und unintu itiv, den M ar-
-
-
-
kierungsgraphen als Modell des Kekssautomaten zu verwen-
den. Prinzipiell eignet sich der Markierungsgraph eines Systemnetzes als Ausgangspunkt für seine (rechnergestützte) Analyse, sofern nur endlich viele Markierungen erreichbar sind.
2.9 Endmarkierungen Ein System hat einen Endzustand erreicht, wenn es in diesem Zustand für immer verharren kann. Die Markierung des Sys-
temnetzes in Abb. 1.10 modelliert einen solchen Zustand, im Gegensatz zu Abb. 1.11 und Abb. 1.12. Ein Endzustand eines Systems entspricht in einem Systemnetz einer Endmarlderung . In einer solchen Markierung sind höchstens kalte Transitionen aktiviert. Im Systemnetz Abb. 2.1 ist beispielsweise die Anfangsmarkierung zugleich eine End-
markierung (sie aktiviert nur die kalte Transition c).
Aufgaben 1. Das Systemnetz in Abb. 2.6 ergänzt den Keksautomaten aus Abb. 2.1 um eine Transition f. Beschreiben Sie umgangssprachlich die Wirkung und den Zweck von f im Keksautomaten.
[J[J [J
H
888 A
c
®
a
®
B
Y.Z
C
• x-2
® F
AbbtldlJng 2.6 Erg anzung d es Keksau toma ten aus Abb . 2. 1 u m d,e Transit -co r
2 2. Welche der Markierungen Mo, ... ,Ms des Markierungsgraphen in Abb. 2.5 sind Enchnarkierungen?
Zum Weiterlesen Mit den ersten beiden Kapiteln dieses Buches weichen wir von traditionellen Einführungen in das Gebiet der Petrinetze ab. Üblicherweise beginnt man mit dem teclmisch einfachen Fall einer einzigen Sorte "schwarzer" Marken, den wir erst im nächsten Kapitelbehandeln. Wirhaben stattdessen unmittelbar "individuelle" Marken eingeführt, weil man damit intuitiv verständlicher, realitätstreuer und genauer modellieren kann. Der Preis dafür ist ein komplexer Schrittbegriff. Für solche Netze gibt es in der Literatur eine Vielzahl letztlich gleich ausdrucksstarker Darstellungen. Weit verbreitet ist die Fassung als gefärbte Netze [38]. Sie betont den semantischen Aspekt von Funktionen über Multimengen. Auch Girault und Valk [29] verwenden solche Marken.
Wie in der Mathematik oft üblich, unterscheiden wir Objekte und Funktionen nicht konsequentvon ihrer symbolischen Darstellung in Ausdrücken, Gleichungenusw. Unsere Unterscheidung kalter und heißer Transitionen findet sich in der Literatur zu Petrinetzennur sporadisch. Damm und Harel haben sie bei live Sequence Charts [35] als äußerst treffendes Ausdrucksmittel für die Systemspezifikation verwendet. In der historischen Entwicklung haben Genrich und Lautenbach [28] Netze mit individuellen Marken als Prädikat! Transitionsnetze eingeführt und dabei den Bezug zur Logik betont.
Eine universelle. erwelterbare Architektur In seiner Dissertation hat Petri eine universelle, beliebig oft erweiterbare Rechnerarchitektur konzipiert.Wir erläutern diese Idee am Beispiel eines endlichen, beliebig erweiter-
baren Kellers. Er besteht aus einer Sequenz A o ' . . An von Modulen, wobei jedes Modul Ai (i = 0, ... , n) einen Ruhezustand hat, der einen Wert, oder - z.B. anfangs - ein .xlummy" .L speichert. Das Netz push
pop
zeigt das Modul A o mit seiner Schnittstelle zur Umgebung: Die Transition push akzep-
tiert mit der frei belegbaren Variable Xo einen Wert aus der Umgebung. Die Variable Xl
trägt den bislang gespeicherten Wert, den die Transition a l an das Modul Al weitergibt.
Die Transition pop entnimmt den im Ruhezustand gespeicherten Wert. Über b 1 empfängt
das Modul den in Al gespeicherten Wert. Das Netz push
pop
kombiniert vier Module zu einem Keller. Jedes Modul Ai verhält sich nach dem für A o beschriebenen Muster. Jede push- und jede pop-Aktion löst eine Welle von links nach rechts durch den Keller aus. Sie endet in A 4 , indem der dort zuletzt gespeicherte Wert
herausfällt. Die Transitionen a 4 und b4 sind Ansatzpunkte für eine Erweiterung mit einem
Modul A 5 .
Häufiger Spezialfall : Elementare Systemnetze Mit Petrinetzen kann man beschreiben, wie Kontroll- und Datenflüsse eines verteilten Algorithmus oder verteilten Systems ineinander greifen. Dabei will man häufig lediglich formulieren, wo ein Kontrollfluss aktuell steht, ob Betriebsmittel verfügbar sind, wie viele Nachrichten vorliegen, etc. Für eine solche abstrakte Sicht unterscheidet man keine Marken verschiedener Sorten: Es gibt ausschließlich "schwarze Punkte" als Marken (im Keksautomaten kamen solche Marken schon vor). Wenn eine Transition eintritt, "fließt durchjeden angrenzenden Pfeil genau eine Marke". Das muss nicht explizit formuliert werden und so tragen die Pfeile keine Anschriften. Solche Systemnetze heißen elementar. Wichtige Aspekte verteilter und reaktiver Systeme können mit elementaren Systemnetzen angemessen modelliert werden. Wir zeigen das an drei Beispielen: einer abstrakten Variante des Keksautomaten, dem Problem des wechselseitigen Ausschlusses und dem Crosstalk-Algorithmus.
3
/ ""1/
3.1 Elementare Systemnetze Ein elementares Systemnetz N besteht aus einer Netzstruktur N ~ (P, T, F) mit endlichen Mengen P und T von Plätzen, Transitionen und einer Anfangsmarkierung, Mo : P -----t Jt\. Einige Transitionen sind als kalt (mit der Inschrift ,,0") gekennzeichnet. Jede Markierung hat die Form
M: P
~
.\ I(p)
=3
--+ IN.
Jeder Platz p trägt M(p) Marken. Die Schrittregel elementarer Systemnetze folgt aus der Schrittregel allgemeiner Systemnetze: Eine Markierung M aktiviert
M(P) E
I\~
nicht verwechseln
mit M(P): U -+IN für allgemeine Systemnetze!
H
eine Transition t, wenn M (p) ;:> 1 für jeden Platz p E 't . Für einen Schritt M --'-+ MI gilt:
MI(p)
t
~
=
M(p) - 1, falls p E 't und M(p) + 1, falls pEt' und { M(p), sonst
p p
r;t t' r;t 't
Aus den Abschnitten 2.8 und 2.9 folgt für ein elementares Systemnetz N: • Die mit der Anfangsmarkierung Mo beginnenden Schrittfolgen t, M M o ---+ 1
t2 tn -----+ . . . ------+
Mn
enthalten die erreichbaren Markierungen und Schritte • Der Markierungsgraph von N hat als Knoten die erreichbarenMarkierungen und als Kanten die erreichbaren Schritte vonN. • Ein Endzustand von N aktiviert höchstens kalte Transitionen.
3.2 Ein abstraktes Modell des Keksautomaten Abbildung 3.1 zeigt eine abstrakte Variante eines Modells des Keksautomaten aus Abb. 1.12: Es werden nicht mehr EuroMünzen und Schachteln modelliert, sondernnurnoch ihre Anzahl. Jede Münze und jede Schachtel wird als schwarze Marke dargestellt, genauso wie das Vorliegen eines Signals (oder keines Signals) und die Möglichkeit, eine Münze einzuwerfen. Den jeweils aktuellenWert des Zählers repräsentiert eine entsprechende Zahl schwarzer Marken. Diese Art der Abstraktion von konkreten Objekten vereinfacht den formalen Umgang mit dem Modell.
3
Speicher Münze einwerfen
Einwurfschlitz
a
b
Entnahmefach
}---.j, Schachtel entnehmen • Münze zurück
Zähler Aro l3.m g 3 .1
kein Signal
Einwurf möglich Kasse
Aosu acte venerite zu AOO I 12
3.3 Wechselseitiger Ausschluss Bei verteilten Algorithmen steht häufig die Synchronisation von Aktionen im Vordergrund: Eine Aktion kann eintreten, wenn eine bestimmte Bedingung erfüllt oder ein bestimmter lokaler Zustaud erreicht ist. Es liegt nahe. eine solche Bedingung oder einen solchen lokalen Zustand als Platz zu modellieren. Er enthält genau daun eine (schwarze) Marke. wenn die Bedingung erfüllt bzw. der lokale Zustaud erreicht ist. Ein typisches Beispiel dafür sind Modelle für den wechselseitigen Ausschluss: In der Welt der verteilten Systeme tritt in ganz unterschiedlichen Zusammenhängen das Problem des wechselseitigen Ausschlusses auf. Im einfachsten Fall geht es um das Zusammenspiel zweier Prozesse und einer (knappen) Ressource, die jeder Prozess gelegentlich nutzt. Beispiele sind Softwareprozesse, die gelegentlich einen Drucker benutzen, oder Fahrzeuge, die gelegentlich eine Engstelle passieren. Im Mittelpunkt steht die Forderung, dass die beiden Prozesse niemals zugleich die knappe Ressource verwenden. Abbildung 3.2 zeigt die wesentlichen Komponenten: Jeder der beiden Prozesse I und r (die Bezeiclmungen stehen für links und rechts) kaun drei Zustände lokal. wartend und kritisch zyklisch durchlaufen. Im Zustaud lokal arbeitet ein Prozess ohne die knappe Ressource. Mit dem Schritt nach wartend (Transition a bzw. d) dokumentiert der Prozess sein Interesse an der knappen Ressource.
H
a ,
,
d
Die Transitionen a und d sind kalt; ein Prozess ist damit nicht verpflichtet, diesen Schritt auszuführen. Er arbeitet also
ggf. irgendwann nur noch lokal. Der Schritt von wartend nach kritisch (Transition b bzw. e) braucht zusätzlich eine Marke auf Schlüssel. Der Sinn dieser Konstruktion ist offensichtlich: Im Zustand kritisch verwendet ein Prozess, beispielsweise l, die knappe Ressource. I gelangt (über b) nur gemeinsam mit dem Schlüssel dort hin. Dann aber kanu der andere Prozess (im Beispiel r) nicht über e seinen kritischen Zustand annehmen, weil
der Schlüssel nicht verfügbar ist: I gibt ihn erst beim Verlassen seines kritischen Zustandes über c zurück.
Zwischen bund e kann unendlich oft ein Konflikt entstehen. Es ist keinerlei Strategie zur Lösung des Konfliktes mo-
delliert. Damit sind alle denkbaren Häufigkeiten und Reihenfolgen möglich. Im Extremfall wird der Konflikt immer zu Gunsten desselben Prozesses gelöst (beispielsweise zu Guns-
ten von I). Danu erreicht der andere Prozess (im Beispiel r) niemals kritisch und verharrt für immer in wartend. Im Allgemeinen möchte man garantieren, dass jeder Prozess im Zu-
stand wartend irgendwann kritisch erreicht. Diesem Problem widmet sich Kapitel 20. Abbildung 3.3 zeigt eine wenig überzeugende Lösung des Problems: Beginnend mit r können die beiden Prozesse abwechselnd ihren kritischen Zustand erreichen. Indem ein Prozess in seinem lokalen Zustand bleibt, hindert er den anderen Prozess daran, wiederholt seinen kritischen Zustand zu erreichen.
Setaasset von 1nach r
QkritiSch1
3
e
~wart end,
o·
Schlusse! von r na ch I
A
IdunO
j
3 Prozesse
reich n d-tM:ccf'l!:lel rH1 t'lren
I(
sehen Zustand
3 .4 Der Crosstalk-Alqonthrnus Beim Crosstalk-Algorithmus gehen wir von zwei Age1l1en aus, die übereinen technischen Kanal miteinander kommunizieren können. Der Kana l arbeitet zuverlässig, so lange er nur eine Nachricht überträgt. Sobald aber Nac hrichten beider Agenten auf dem Kanal zusammentreffen, ents teht crosstalk. Dann er-
reichen die Nachrichten durch wechselseitiges "Übersprechen" ihren jeweiligen Empfänger ggf. in verfälschter Form. Da bei de Agenten völlig unabhängig voneinander N achr ichten verschicken können, kann crosstalk nicht verhindert werden. Der Al gorithmus macht allerdings cros stalk für beide Agenten erkennbar. Sie können in diesem Fall beispi elsweise ihre beiden N achr ichten in vorher verabredeter Reihenfolge wied erh oien . Es wird nun e in Aig orithmus vorgestellt, der in Runden arbe itet: In einer Runde sendet entweder ein Agent eine Nachricht, die der andere korrekt empfängt, ode r beide Agenten erkennen crosstalk. In Kapitel 5 wird gezeigt, dass Szenarien den Algorithmus strukturieren und se in Verständni s stützen. In Kapitel 12 wird be wiesen, dass die beiden Age nte n die Arbeit in Runden kor-
rekt realisieren.
Nachrichten von links nach rechts Abbildung 3.4 zeigt, wie der linke Agent sein en An fangszustand rU hig, mit sende n verl assen kann, dabei eine N achricht
H
zurückkehren
beenden
bestätigt
wartend
senden
E
f-----~_l
gesendet ruhig/
•
•
ruhiq;
Aro I3.mg:3 4 Sencer un d Errctanuer
abschickt (gesendet) und in einen Wartezustand wartend übergeht. Nachdem er eine Bestätigung (bestätigt) erhalten hat, beendet er mit beenden seine Runde. Der rechte Agent verlässt seinen Anfangszustand ruhiq, mit antworten und bestätigt dabei die vom linken Agenten gesendete Nachricht gesendet mit bestätigt. Er beendet über zu rückkeh ren seine Runde.
Nachrichten in beide Richtungen Wir ergänzen nun das System symmetrisch so, dass auch der rechteAgent dem linken Agenten eine Nachricht schicken kann. Abbildung 3.5 zeigt diese symmetrische Ergänzung. Allerdings blockiert das System (beide Agenten wartend), wenn in einer Runde beide Agenten eine Nachricht schicken. Zum Glück kann jeder Agent die Blockade erkennen: Er erwartet eine Bestätigung (bestätigt), erhält aber eine Nachricht (gesendet). Deshalb karm jeder Agent die Blockade mit einer zusätzlichen Transition crosstalk auflösen, wie Abb. 3.6 zeigt.
Rundenfehler vermeiden Das System in Abb. 3.6 ist immer noch fehlerhaft. Beispielsweise kann der linke Partner eine Nachricht senden (senden.), die der rechte Partner korrekt mit antworten, empfängt und bestätigt. Er kehrt danach zu seinem Ausgang zurück und schickt
zuruckkehren,
~antwortet.
bestatigt ,
antworten, gesendet j ruhig /
•
• gesendet,
9"'·,--------{O~·-
an""'rt.nI
9.
an""'
rtj
ruhig ,
- --{
bestaligt l
zuriJckkehrenl
beenden,
ADbddung 3 5 Symrretr sehe ErQan zung Brccxade möglich
beanda n j
zurückkehren,
bestätigt r
qesendef
gesendet ,
bestatigt l
beenoe n,
zuriJckkehrenl
AbbtICkJOQ 36 MIt oceste
Runöentebler
lTl~ich
3
H
eine Nachricht (senden.), Der linke Partner findet nun eine Bestätigung (bestatiqt.) und zugleich eine neue Nachricht (gesendet.), der er nicht ansehen kann, dass sie schon zur nächsten Runde gehört. Stattdessen kann er fälschlich crosstalk erkennen. teendem
beendef
zurückkehren,
bestätigt r
qesendef
qesendet,
wartend r
zurückkehren,
beendet,
beenden r
Abb. 1:iJng:3 1 Der CrOSSl tlIK-t.JgOfIU1'T1US
Abbildung 3.7 löst das Problem mit einer zusätzlichen Nachricht, (bsendet.). Tatsächlich ist dieses Systemnetz korrekt was das genau bedeutet, wird in Kapitel 12 behandelt. Abbildung 3.7 zeigt senden, und senden, als kalte Transitionen: Kein Agent wird "gezwungen", eine Nachricht zu senden. Eine gesendete Nachricht wird allerdings vollständig verarbeitet. Wenn das System terminiert, sind beide Agenten in ihren Anfangszustand ruhig zurückgekehrt.
3.5 1-beschränkte elementare System netze Bis auf das Netz in Abb. 3.1 sind in allen elementaren Systemnetzen dieses Kapitels nur Markierungen erreichbar, die jeden
Platz mit höchstens einer Marke markieren. Oft liegt zudem die Vorstellung nahe, eine Marke "wandert' durch ein Teilnetz, beispielsweise durch die drei lokalen Zustände des linken (oder des rechten) Prozesses im System des wechselseitigen Ausschluss. Solche Systemnetze haben spezielle Eigenschaften und Analysemethoden, die wir später kennen lernen. Sie sind so wichtig, dass sie einen eigenen N amen verdienen: Ein
elementares Systemnetz N heißt i-beschränkt, wenn für jede erreichbare Markierung M und jeden Platz p von N gilt:
M(p)
f~m!:>
fl.JF den wecnselse lloen Ausschluss
• die Transition a von A ist mit (I , ß) beschriftet,
• ' a repräsentiert für jedes pE ' I die Marken ß( p, I), • a' repräsentiert für jedes p E I' die Marken ß( I, q).
Als Beispiel wählen wir die Transition b aus Abb. 2.1 im Modus ß mit ß( y) = lEl und ß(z) = 8 . Dann gilt:
repräsentiert
4.4 Verteilte Abläufe Ein verteilter Ablauf besteht aus Aktionen , die azyklisch zusammengesetzt werden. Damit liegt einem verteilten Ablauf ein Kausalnetz zu Grunde. Ein Kausalnetz J( = (P,T , F ) hat folgende Eigenschaften: • kein Platz verzweigt; an jedem Platz beginnt oder endet höchstens eine Kante;
im Modus ß.
• keine Sequenz von Kanten schließt sich zum Kreis; fürjede Kette der Form
gilt also: k o f kn : • jede Sequenz von Kanten hat ein erstes Element; es gibt also keine ,,nach links unendliche" Kette der Form ",kFk' ,
A.n t,lng
-~
Entre
------.()J --
Die Plätze ohne eingehende Pfeile bilden den Anfang von K: die Plätze ohne ausgehende Pfeile bilden das Ende. Anfang und Ende von K bezeichnen wir mit ° K bzw. KO. Im Gegensatz zu einem Systemnetz kann ein Kausalnetz durchaus unendlich viele Elemente haben. Ein partieller Ablauf eines Systemnetzes N ist ein beschriftetes Kausalnetz K, in dem jede Transition t zusammen mit "t t e eine Aktion von N bilden. K beschreibt also ein zusammenhängendes Stück Verhalten von N. Wenn man zusätzlich verlangt, dass ° K die Anfangsmarkierung von N repräsentiert und dass KO höchstens kalte Transitionen aktiviert, ist Kein vollständiger verteilter Ablaufvon N. Der Zusatz "vollständig" wird meistens weggelassen. Abbildung 4.4 zeigt einen verteilten Ablauf des Systems für den wechselseitigen Ausschluss, in dem jede Aktion aus Abb. 4.3 genau einmal vorkommt. Die obere Pfeilkette besteht aus den Aktionen Na, Nb und Ne (siehe Abb. 4.3) und beschreibt einen Zyklus des linken Prozesses I, vom Zustand A über B und C zurück zu A. Entsprechend beschreibt die untere Pfeilkette einen Zyklus des rechten Prozesses, von E über Fund G zurück nach E. Generell beschreibt in einer solchen Darstellung eine Kette von Pfeilen von einem Element x zu einem Element y intuitiv, dass x kausal vor y besteht. Dem entspricht auch das (dreifache) Auftreten von 0 in Abb. 4.4: Der Schlüssel wird zunächst (über bund e) vom linken, dann (über e und f) vom rechten Prozess verwendet und ist am Ende des Ablaufs wieder verfügbar. Die Aktionen Na, Nb, Ne und auch Nd liegen also kausal vor Ne.
D}----~
D
Abo l dung C 4 vertepter AtJl;l;JI de s SysletT'~ ce s wecbsclsemqen
Acrs scr uusses
Andererseits sind Na und Nd nicht über eine Pfeilkette miteinander verbunden: Sie sind kausal unabhängig voneinander. Das gilt genauso für Ne und Nd. Selbstverständlich kann eine Aktion in einem verteilten Ablauf wiederholt eintreten. Abbildung 4.5 ergänzt Abb. 4.4 um einen weiteren Zyklus des linken Prozesses, mit Hilfe eines zweiten Exemplars der Aktionen Na, .Nb und Ne.
~e A.bhlldlJn945 Erw r. ter ung ces ve rtel ten At Jlfl.U(S Aus.Ab b ·14
Im Allgemeinen kann ein verteilter Ablauf - genauso wie ein sequentieller Ablauf - auch unendlich lang werden. Abbildung 4.6 skizziert einen Ablauf des Systems des wechselseitigen Ausschlusses, in dem zunächst der linke Prozess kritisch wird. Danach bleibt er für immer in seinem Ruhezustand A, und der rechte Prozess durchläuft seinen Zyklus unendlich oft. Das Ende N° eines endlichen verteilten Ablaufs eines Systemnetzes N repräsentiert einen Endzustand von N. Das Ende eines unendlichen Ablaufs repräsentiert im Allgemeinen keinen erreichbaren Zustand; beispielsweise besteht das Ende des Ablaufs in Abb 4.6 nur aus einem einzigen, mit A beschrifteten Platz. Abbildung 4.7 zeigt einen partiellen verteilten Ablauf des
4
.öb blldufig" 6 8~ t I ernmal. d flnn
H
un~(l(J1 lch
of!
liJ )---------~
HG
)----------~
GV
d
Y=1iJ d
Y=G
E 7
G. )-
J
A.Ut.lI'iJung " 7 Ei n paü ~ I er '...erte Ilei Ablau f UI:"S Kr:ksii ul o:nahm 'l WS
Abo 2 1
Keksautomaten in Abb. 2.1. Der Ablauf beschreibt das den Einwurf einer Münze bis hin zur Entnahme zweier Schachteln. Abbildung 4.8 skizziert die endlichen und den - einzigenunendlichen verteilten Ablauf des elementaren Systernnetzes in Abb. 4.1.
4.5 Beispiel. Eine Glocken-Uhr A.lctiCt1 en der
~/" [l u ! en ·U n r
(P\Jll.iP\ ~
rP\ J::l_rP\ ~
(P\ Jtl_(P\ ~
Abbildung 4.9 zeigt zwei verschiedene Darstellungen einer Minuten-Uhr: Ein Zähler wird schrittweise um 1 erhöht und wiederholt sich nach 60 Schritten. Der Platz p enthält immer genau eine Marke, eine Zältl zwischen 0 und 59. Beginnend mit 58 erhöht die Transition t diese Zahl immer um 1, bis sie von 59 auf 0 gesetzt wird. Für ein strukturell so einfaches Systemnetz ältneln die verteilten Abläufe den sequentiellen Abläufen. Die Minuten-Uhr der unteren Darstellung von Abb. 4.9 hat genau einen verteilten Ablauf:
{© { {
...
~
... ~
@---ill--®
@---ill--®
~P (x+1) mod 60
x
59
~ P t x +1
DU
~ ~
r=JIGlU\V---
~r=JDU\V~----
Die Glocken-Uhr im Abb, 4.10 ergänzt die Minuten- Uhr um ein Glockenspiel: Mit dem Übergang zur neuen Stunde (Transition u) beginnen die Glocken zu läuten. Das Ende des Glockenspiels ist nicht an die Uhr gekoppelt. Abbildung 4.10 spezifiziert nur, dass das Glockenspiel geendet hat (Transition v), bevor die nächste Stunde beginnt. Die Transitionen t und v treten unabhängig voneinander ein. Das zeigt auch der - einzige - verteilte Ablauf des Glockenspiels in Abb, 4.11.
4
an 59
xot59
58
p
v
u aus
AOO ilOUflg .4.. 1(I Die G'oc ken Unr
'"50----~
4.6
'"50----~
Das Kindergartenspiel
Das Kindergartenspiel ist die verteilte Version eines Programms, mit dem Dijkstra [20] den Nutzen formaler Verifikationstechniken demonstriert. Wir zeigen hier an einer verteilten Variante des Beispiels den Nutzen von Petrinetzen und verteilten Abläufen (und verifizieren es in Abschnitt 13.10). Dijkstra nimmt einen Agenten an. der mit gegebenen Objekten (Spielsteinen) spielt. Wir nehmen die Objekte selbst als Agenten und ersetzen der Anschaulichkeit wegen die Spielsteine durch Kinder. Das Kindergartenspiel beginnt mit einer beliebig großen Schar Kinder auf einer Spielfläche. ] edes Kind ist entweder schwarz oder weiß gekleidet. Jeweils zwei Kinder können spontan gemeinsam die Spielfläche verlassen; danach kehrt eins wieder zurück. nach folgender Spielregel:
• Wenn die beiden Kinder verschiedenfarbig gekleidet sind. kehrt das weiß gekleidete zurück: • Wenn die beiden Kinder gleichfarbig gekleidet sind. kehrt ein schwarz gekleidetes zurück (wenn beide weiß gekleidet sind, zieht sich eins um). Wir suchen ein angemessenes Modell für dieses Spiel. Dafür konstruieren wir einen Platz Kinder, mit der Kinderschar als Anfangsmarkierung. Notieren wir ein schwarz bzw. weiß ge-
kleidetes Kind als . bzw, ° und schreiben wir (Kinde r, . ) bzw. (Kinde r, 0) kurz als . bzw. 0, zeigt Abb. 4.12 die drei möglichen Aktionen des Spiels.
ADo i dung 4.
.. c
I,
~
4
D e drei Akt ioo el1des Krnderq artensp els
•..• 0 ••• 0
Kinder
Abbl dung 4 3: Mode' oes Klnoergar.en sptels
Abbildung 4.13 modelliert das Spiel selbst. Als Anfangsmarkierung wird eine endliche Zahl schwarz und weiß gekleideter Kinder angenommen. Alle drei Transitionen in Abb. 4.13 sind heiß. Ein Ablauf terminiert somit, wenn keine Transition aktiviert ist, also wenn nur noch ein Kind übrig ist. Die drei Abläufe in Abb. 4.14 beginn en alle mit der Anfangsmarkierung Mo(Kinde r) = [0,0, ', ', . ].
: ~ .~.
.
~ -~ . :~ • ~ .--K2
Ab I
ng " 14 uret ...erteute
Abl~ LJ l e
des KmöeCgarlen
ls
Inwiefern die Kleiderfarbe des übrig bleibenden Kindes vom Anfangszustand und von der Struktur eines Ablaufs abhängt, behandelt Abschnitt 13.10.
4.7 Kausale Ordnung Als Alternative zu sequentiellen Abläufen protokolliert ein verteilterAblauf die kausalen Zusammenhänge von Aktionen. Als Beispiel zeigt Abb. 4.15 zwei Systemnetze, die beide die gleichen sequentiellen Abläufe besitzen: a
b
b ----+
a
ACE ----+ BCE ---+ BDE ACE
und
ADE ---+ BDE.
a
A
0-------{]-----
a B
A
o}----]
B
o
c 0-------{]-----
D
c
b
a und b unabhängig voneinander
AOO ildlJng
~ . 15 '
D
0
b
Ni:
E
N,:
a und b in beliebiger Reihenfolge
Unabh5nggkei t und be iehfge Re-henfclpe
Abb l dung " 115 Vf!'rle l le r Al'lawf vonv
Ihre verte ilten Ab läufe sind jedoch versc hieden: NI hat einen einzigen verteilten Ablauf, den Abb, 4.16 zeigt, Hingegen hat N; zwei verteilte Abläufe, die Abb. 4.17 zeigt,
4
~: C
b
0
Der Platz E kann hier als Mode ll einer Ressource betrachtet werde n, die gebraucht, aber nicht verbraucht wird, Dies zwingt die beiden Aktionen von a und b in eine (von zwe i möglichen) Reihenfol ge. Eine Akti on o kann M arken erzeugen, die eine andere Ak tion ß verwendet : a liegt ka usal vor ß. Diese .kau sal vor" Relation ist natür lich tr ansitiv: Wenn o vor ß und ß vor -y liegt , dann liegt Q auch vor "t- Zudem ist kausal vor irreflexiv: Keine Aktion liegt kausa l vor sich selbst. Damit ist kausal vor eine Halbordnu ng. Tatsächlich ist diese Ordnun g im All gemeinen nicht total: Eine Akti on 8 kann una bhängig von ß eintrete n. Das bedeutet aber nicht , dass 8 und ß gleichze itig eintreten: Gleic hzeitigkeit ist transitiv, Unabhäng igkeit ist es nicht. Der Zusam menhang zwischen den sequentie llen und den verteilten Ab läufe n eines Systemne tzes N wird augenfällig, wenn man in jedem verteilten Ablau f I( von N auf die Plätze in 01( ihrer Beschriftung entsprechende Marken legt. I( wird so zu einem eigenen anfangsmarkierten Systenmetz. Dann ist jeder sequentielle Ab lauf von I( auch ein sequentieller Abl auf von N . Ein Beispiel ist der verteilte Abl auf 1(, aus Abb. 4.14. Er erzeugt die beiden sequentiellen Abläufe in Abb.4.18. Um gekehrt wird j eder sequentielle Ablauf von N von mindestens einem verteilten Ablauf I( von N erzeugt.
a
c -"
ß
'~l
l~
~ " .-~
[e,e,e,o,o] ~ [e,e,o ,o] ~ [e,o,o] ~ [0,0]
.s, [e]
[e,e,e,o,o] ~ [e,e,o,o] ~ [e,o,o] ~ [0,0] ~ [e] Ab brldUng 4.1 8 Die uetcen von K erzeug ten sequen tte len .Ab1!HJfe-
4.8 Die Komposition verteilter Abläufe Für verteilte Abläufe Kund L ist die - intuitiv nahe liegende - Komposition K . L definiert, wenn das Ende KO von K und der Anfang "L von L die gleiche Markierung repräsentieren: Dann identifiziert man gleich beschriftete Plätze von KO und "L miteinander. K . L enthält alle Elemente von Kund , " L und übernimmt deren Ordnung. Abbildung 4.19 zeigt zwei komponierbare Abläufe Kund L des Systems des wechselseitigen Ausschlusses. Ihre Komposition K . L hat den Ablauf in Abb. 4.5 als Anfangsstück.
D}-------,
® Ablauf K
Ablauf L Abtl i'dul'lg t . 19 Zwei koro o-te roar e Ablaufe
Wenn K mit L komponierbar ist. ist K . L der Ablauf
Aufgaben 1. Gegeben sei das Systemnetz N in Abb. 4.20.
o
A
•
•
B
E
F
a) Bestimmen Sie jeweils die Anzahl der (1) unendlichen sequentiellen Abläufe, (2) unendlichen verteilten Abläufe, (3) endlichen sequentiellen Abläufe, (4) endlichen verteilten Abläufe. b) Welche Antworten zu a) ändern sich, wenn man eine der vier Transitionen als kalt annimmt?
c) Vergleichen Sie die Abläufe der Systemnetze in Abb. 4.20 und Abb. 4.1. 2.
a) Geben Sie die Aktionen des Systemnetzes N aus Abb. 3.3 an. b) Charakterisieren Sie alle verteilten Abläufe von N.
3. Aufgabe zur Glocken-Ulu in Abb. 4.10: a) Ergänzen Sie die Glocken-Uhr um einen Platz, der die aktuelle Stunde zwischen 1 und 12 anzeigt. Modifizieren Sie dann das Glockenspiel so, dass zur jeweiligen Stunde n eine Glocke n-mal schlägt. b) Modifizieren Sie die Glocken-Ulu so, dass bei Erreichen der Marken 15, 30, 45 bzw. o auf dem Platz p eine Glocke einmal, zweimal, dreimal bzw. viermal schlägt.
* c)
Integrieren Sie nun die beiden Systemnetze der Teilaufgaben a) und b) so, dass wie üblich zur vollen Stunde n zunächst viermal und nach einer Pause n-mal die Glocke
schlägt. d) Konstruieren Sie endliche Anfangsstücke der verteilten Abläufe aller Teilaufgaben.
4
4. Beweisen Sie: Wenn 1 mit Kund K mit L komponierbar ist, gilt (l. K). L
~
.t . (K. L) .
Zum Weiterlesen In der Literatur überwiegt die Verwendung sequentieller Abläufe bei weitem. Sie sind technisch einfach, reichen zum Verständnis vieler Sachverhalte aus und bedienen die nahe liegende Intuition, nach der Ereignisse entlang einer globalen Zeitskala eintreten oder von einem Beobachter auf eine solche Skala abgebildet werden. Das Konzept eines verteilten Ablaufs, also einer halbgeordneten Menge lokaler Zustände und Übergänge, war für Petrinetze von Beginn an ein wichtiger Bestandteil der Theorie [36], [58]. Nielsen, Plotkin und Winskel [54] haben 1981 verteilte Abläufe in den Kontext mathematischer Strukturen anderer Systemmodelle gestellt. Best und Femandez diskutieren 1988 eine Vielzähl von Bezügen zwischen Systemnetzen und verteilten Abläufen [10]. Heute sind insbesondere zwei Aspekte verteilter Abläufe wichtig: Ihre Verwendung in Szenarien (KapitelS) und ihr Beitrag zur Beherrschung der ZustandsraumExplosion bei der Verifikation mit Hilfe des Modelchecking [49], [76]. Um interessante Eigenschaften eines Systems zu testen, werden dabei hinreichend lange Anfangsstücke aller (in der Anfangsmarkierung beginnenden) verteilten Abläufe in einer Baum-artigen Struktur zusammengefasst. Diese Strukturwird analysiert, ohne alle Ablaufstücke explizit zu untersuchen. Esparza und Haljauko stellen in [23] zählreiche temporallogische Beweistechniken zusammen, die diese Struktur ausnutzen.
Lesen und Schreiben VS. Nehmen und Geben Herkömmliche Darstellungen von Algorithmen und insbesondere herkömmliche Programmiersprachen verwenden als elementare Zustandskomponenten Speicherplätze mit jeweils aktuellen Werten. Dynamisches Verhalten wird als Wertzuweisung der Form Xo:~ f(x!, ... , xn)
beschrieben: In Abhängigkeit von den aktuellen Werten der Speicherplätze X!, ... ,x n erhält der Speicherplatz Xo einen neuen Wert. Der bisherige Wert von Xo ist dann nicht mehr zugänglich. ,,Lesen und ( Über- )Schreiben" sind also die grundlegenden Operationen von Programmen. Für viele Algorithmen ist dieses Ausdrucksmittel intuitiv angemessen, beispielsweise für Euklid's Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen. Für andere Algorithmen sind andere Operationen grundlegend, beispielsweise das Empfangen und Senden von Nachrichten oder Objekten. Deshalb wäh-
len Petrinetze, einen anderen Ansatz: Eine Zustandskomponente ist - intuitiv - ein Objekt an einem Ort. Dynamisches Verhalten verschiebt Objekte von einem Ort an einen anderen. Manche Objekte werden dabei erzeugt (kommen aus einer nicht modellierten Umgebung) oder verschwinden (dort hin): Hier sind also ,,Nehmen und Geben" die grundlegenden Operationen. Es liegt nun der Versuch nahe, Programme und Petrinetze ineinander zu übersetzen: Jeder Variablen z in einem Programm entspricht ein Platz Pz in einem Systemnetz N und der aktuelle Wert W von Z entspricht einer Marke auf Pz Das Lesen von z wird mit einer Transition t und einer Schlinge zwischen Pz und t simuliert:
In einem parallelen Programm mit zwei Prozessen würde ein zweiter Prozess in N eine zweite Schlinge zwischen Pz und einer zweiten Transition t' erzeugen.
t'~t ~ In jedem Ablauf von N könnten t und t' mehrfach, aber immer hintereinander und nie unabhängig voneinander, eintreten. Gegebenenfalls tritt t' unendlich oft ein und blockiert l. Dies widerspricht der üblichen Annahme, dass Prozesse unabhängig voneinander und ohne gegenseitige Behinderung eine Variable lesen können. Modelliert man auch das Aktualisieren der Variable z als Schlinge einer Transition t'' an den Platz Pz' kann in N die aktualisierende Transition t'' von der lesenden Transition t blockiert werden: Ein Widerspruch zu den üblichen Annahmen der parallelen Programmierung, nach denen das Aktualisieren einer Variable niemals vom Lesen der Variable behindert wird. Diese Beobachtung hat weit reichende Konsequenzen; einige davon werden in der Fallstudie zum wechselseitigen Ausschluss in Kapitel 20 sichtbar. Die Übersetzung eines Systemnetzes N in ein Programm P synchronisiert die Transitionen von N in einen oder mehrere Kontrollflüsse. Die Struktur
4
von N erzeugt (neben anderen) einen verteilten Ablauf, in dem rund t unabhängig voneinander eintreten. Ein entsprechendes Programm müsste den Nichtdeterminismus zwischen r und s und zwischen t und s organisieren und dadurch rund s unter eine zentrale Kontrolle zwingen. Schließlich sehen Programmiersprachen und viele andere operationale ModelIierungsverfahren einen oder mehrere Kontrollflüsse vor. Sie werden ggf. dynamisch erzeugt oder beendet, erreichen aber selten die nötige Flexibilität, um beispielsweise die Lösung des Kindergartenspiels aus Abb. 4.13 zu modellieren.
Szenarienbasierte Systemnetze Ein Nutzer eines technisc hen oder organisatorischen Syste ms verwendet im All gemeinen nicht alle Verhalte nsvarianten und -alternativen des Systems. Oft beschränkt er sich auf wenige Möglichkeiten. die er immer wieder verwendet. Deshalb ist es zweck mäßig, typische Szenarien eines Systems zu betrachten. Ein Szenario besteht aus endli ch vielen elementaren Aktionen und endet in dem Zustand, in dem es begonnen hat. Damit kann ein Szenario in mehreren Instanzen in einem Ablauf mehr fach vorkommen. Häufig ist ein Szenario ein Inter-
aktionsmuster zwischen einem Prozess und seiner Umgebung, oder zwischen zwe i Prozesse n. Typische Szenarien der bisher betrachteten Modelle sind:
• eine Scha chtel Kekse verkaufen.
• einmal seinen kritischen Bereich besuchen, • eine Nachr icht überm itteln.
Technisch wird ein Szenario als endlicher. partieller Ablauf konstruiert. dessen Endmarkierung mit der Anfangsmarkierung überein stim mt. Ein Ablauf eines verteilten, reaktiven
Systems ist oft aus vielen Instanzen einiger weniger Szenarien komponiert. Wenn tnsn j eden Ablauf im Wesentlichen so konstruieren kann, ist das System szenarienbasiert. Das Verständnis der Szenarien e ines Systems ist oft der intuitiv beste \Veg zum Verständnis des ges amten System s. Wir zeigen dies am Beispiel der Mod elle zum wechselseitigen Au sschl uss. d es Crosstalk-Algori thmus und des Keksautomaten .
5
5.1 Der Begriff des Szenarios Ein Szenario eines Systemnetzes N ist ein endlicher, partieller Ablauf K von N. wobei der Anfang C K und das Ende KC von K die selbe Markierung repräsentieren. Abbildung 5.1 zeigt zwei Szenarien des Modells des wechselseitigen Ausschlusses: Eins für den linken und eins für den rechten Prozess. Jedes durchläuft für seinen Prozess den Zy-
klus von lokal über wartend und kritisch zurück zu lokal. Das Kindergartenspiel (Abschnitt 4.6) ist ein Beispiel eines Systemnetzes, das keine Szenarien hat.
, 0
{ ~~ { ~~ @ ®
D
@
Abb. 1~n g
5 1 [],co beröen SzerJe r en oes SysleT'J1S LI es 'JIe" c: M ~ I Sl!.' l hg ..an
Ausschlu sse s
Aus der Definition der Komposition verteilter Abläufe in 4.8 folgt, dass verschiedene Szenarien mit gleichen Anfangs- und
Endzuständen in beliebig vielen Instanzen Ki. . .. . . K; zu einem endlichen oder unendlichen partiellen Ablauf
Ko'
. K n bzw. K o . K , .
zusammengesetzt werden können. Beispielsweise können alle endlichen verteilten Abläufe des Systems des wechselseitigen Ausschlusses in Abb. 3.2 aus Instanzen der beiden Szenarien in
Abb. 5.1 zusammengesetzt werden.
Ein Systemnetz N ist szenarienbasiert , wenn es eine endliche Menge A von Sze narien gibt, so dass jeder vollständige endli che oder unend liche Ab lauf von N als
Mt . M, ..... Mn bzw. Mt . M, .. .. gesc hriebe n werden kann, wobei j edes M i ein Sze nario aus A ist. Dabei kann ein Szenario in eine m Ablauf selb stverständlich in mehreren Exemplaren vorkommen. Ge legentlich hat ein Ablau f noch ein unregelmäßig geformtes Anfangsst ück Mo oder ein Reststück Mn+l' Das System des wechselseitigen Au sschlusses ist ganz offensichtlich szenarienbasiert: Es reichen die beiden Sze narien in Abb . 5.1. Ein unendlicher Ablauf kann zusätzlich ein Exemplar der Aktion a oder d enthalten.
5.2 Die Szenarien des Crossta lk-Algorithmus Die beiden Pro zesse I un d r des Crosstalk-Al gorithmus aus Kapitel 3 (Abb. 3.7) kooperieren in drei Szenarien:
• I sendet , r empfäng t; • r sendet, I empfängt; • beide senden und e mpfangen, es entsteht also "Crosstalk" . M an mag eine abstrakte Sicht annehme n und die beiden erste n Sze narien zu einem Szenario "e iner sendet, einer e mpfängt" zusammenfassen. Abbildung 5.2 zeigt die drei Szenarien des Algorithmu s mit den symbolischen Inschriften aus Abb. 3.8. Der CrosstalkAlgorithmu s ist szenarienbasiert: Jeder Ablaufbesieht aus endlich oder unendlich vielen Instanzen der drei Szenarien in Abb. 5.2.
5
5.3 Die Szenarien des Keksautomaten Der Keksautomat aus Kapitel I und Kapitel 2 hat nur ein Szenario: Die Rückgabe einer eingeworfenen Münze. Abbildung 5.4 zeigt dieses Szenario für die Fassung des Automaten in Abb. 5.3.
Intuitiv mag man auch den Verkauf einer Schachtel als Szenario auffassen wollen. Es beginnt damit, dass eine Münze einwerfen möglich ist. intern kein Signal vorliegt und das Entuahmefach leer ist. Der partielle Ablauf in Abb. 4.7 zeigt dieses Verhalten des Keksautomaten. Für ein vollständiges Szenario fehlt die Übereinstimmung der Markierung des Zählers. der Kasse und des Speichers am Anfang und am Ende. Um auch solche Fälle zu fassen, schwächen wir die Definition eines Szenarios eines Systemnetzes N ab:
Ein Szenario für eine Marlderung M von N ist ein endlicher, partieller Ablauf von K von N, wobei ein Teil von C K und ein Teil von KO die Markierung M repräsentieren.
5
Abbildung 4.7 zeigt also ein Szenario des Keksautomaten für eine Markierung M mitM(D) =M(G) = [.i. Abb. 5.4 zeigt ein weiteres solcher Szenario. Beide können zum partiellen Ablauf in Abb. 5.5 komponiert werden.
HliJ )-----------===----.....- /""--"dJ" H [J
G.
d
y=1iJ d
y=B
E 7)-----/' GO.>----~
H 1iJ>-----------------===-----~'---"'-J"
HIiJ>--------------------/ AOO l d J ~g
5.5. : Verteilter Ablau f des. Keksautom aten. eornpcntert aus den
Szena ren flJ r cte MarkJef J:1g ' ,'(0 ) -
MfG) :;1. 1rter A~
~
7 und 5 4
Aufg aben 1.
a) Wie viele Szenarien hat der Algorithmus in Abb. 3.3? Geben Sie eines an. b) Wie viele endliche sequentielle Abläufe beschreibt dieses Szenario?
2. Hat das Systemnetz in Abb. 5.6 Szenarien? Ist es szenarienbasiert?
GO
A.bbi1cl.Jng 5 G Systemnetz
3.
a) Konstruieren Sie ein Szenario zum Systemnetz in Abb. 5.7. b) Ist das Systemnetz szenarienbasiert?
Zum Weiterlesen Das Denken in Szenarien kann das Verständnis eines komplexen Systems entscheidend vereinfachen und vertiefen. Im Zusammenhang mit Petrinetzen hat vor allem Desel in [16] die Verwendung von Szenarien vorgeschlagen. Messages-Sequence-Charts beschreiben Szenarien sehr explizit. Für [35] bilden sie das Fundament einer Modellierungs- und Simulationstechnik.
Szenarienbasierte Systeme Den Begriff "Szenario" verwendet die Softwaretechnik nicht sehr einheitlich. Im Allgemeinen wird unter "Szenario" ein Verhaltensabschnitt verstanden, der aus Sicht des Benutzers zusammenhängt und inhaltlich sinnvoll abgeschlossen ist. Typischerweise erreicht
ein Benutzer in einem Szenario interaktiv mit dem System ein Ziel. Aus Sicht der Systemarchitektur erstreckt sich ein Szenario im Allgemeinen quer über mehrere Komponenten und nutzt von jeder Komponente nur einen Teil. Ein Szenario ist im Allgemeinen reaktiv, weil es in seinem Ablauf die Beteiligung seiner Umgebung braucht. In den Systemen des wechselseitigen Ausschlusses und des Crosstalk-Algorithmus haben alle Szenarien diese Charakteristik. Das gilt auch im Beispiel des Keksautomaten, wenn man den Automaten und jeden Nutzer als eine Komponente betrachtet. Indem Szenarienjenes Verhalten beschreiben, das ein Nutzer eines zu entwerfenden Systems sich vorstellt, liegt die Idee nahe, ein System aus einer gegebenen Menge von Szenarien abzuleiten. Tatsächlich kann man die obigen Systeme des wechselseitigen Ausschlusses, des Crosstalks und den Keksautomaten aus den entsprechenden Szenarien ableiten, indem man gleich beschriftete Elemente identifiziert. Harel baut diese Idee in [35] weit aus und integriert sie in ein Werkzeug.
5
Zusätzl iche Ausdrucksmittel für elementare Systemnetze Elementare Systemnetze werden in der Literatur häufig mit zusätzlichen Ausdrucksmitteln ausgestattet, insbesondere mit Kapazitaten (,,keine Transition kann dem Platz p eine n + I-te Marke hinzufügen" ) und Kantengewichten ("durch einen Kante fließen zugleich n Marken" ). Wir diskutieren hier beide Ausdrucksmittel und zeigen, dass sie die Ausdruckskraft elementarer Systemnetze nicht wirklich erhöhen: Mit einem nahe liegenden Begriff von "Simulation" kommt man auch ohne Kapazitäten und Kantengewichte aus. Mit Kapazitäten und Kantengewichten kann man gelegentlich sehr intuitiv und übersichtlich modellieren. Dann sollte man diese Ausdrucksmittel durchaus verwenden. Anders verhält es sich mit einer Transition, die die Markenzahl auf einem Platz .Jestet " oder die im Kontliktfall Priorität vor anderen aktivierten Transitionen erhalten soll: Diese Ausdrucksmittel sind nicht im Rahmen elementarer Systemnetze simulierbar.
6 .1 Platzkapazitäten Gelegentlich möchte man in einem Modell ausdrücken, dass ein Platz p maximal n Marken enthalten soll, dass also eine Transition t, die eine n + I-te Marke hinzulegen würde, nicht aktiviert sein soll. 1n der graphischen Darstellung eines elementaren Systemnetzes N könnte man den Platz p entsprechend beschriften t
~azitat =n ~
~
und zur Aktivierung von t in einer Markierung AI zusätzlich AI (P) :s; n - I verlangen.
6
Die Ausdruckskraft elementarer Systemnetze wird dadurch nicht größer. Um das zu zeigen, sei N ein elementares Systemnetz mit einem Platz p, dessen Kapazität auf n beschränkt sein soll. Eine Markierung M von N heißt n-beschränkt , wenn
M(p) n bekanut ist. hilft das Komplement rI (vgl. Kapitel 6.1). indem man p' auf ,,~ k - n" testet: k-n
pOp'
cx=:=:xJ t k-n
Für jede Markierung M gilt ja M(p) M(p) C 1I \\ 11 ge~d lc il ''''' •.:' mun cru s~ . ctu o.1l~ Pe
trineiz modcllien . In .Iic-e m zwc iten feil ~~11I C~ nun .l.ir un . volchc .\l oJ d lr I U 1I1It1h H t' 1t' n . a b c \\ I L'i l ll ~ c bgc lI ..clun en eines " }:-: h:ITlI1Cll t.: n.lI:h / ll \\ -isen. Oft betrifu eine wi I H i~ e S Y'tr:mc l ~t.: I1 'c 1a t l red e erre rc ibare vl.rrkierung \I des S ~, 'CIII IH:'Il es, Im ~h x1cll lk: ~ Kck-,... LJ IÜIlI J ICII 111 ..\ b. ~ . I bel s(llc ls\\c ',C ~ i ll fur [edc e rre ichbare Marki enme ,\1: ;\/ murk ieu ent wede r A oder 0 lInLI
ElIIe -olchc SyS(CHli:igl:llsdla ll b t eur e /.u .\{(lIIlh t'i gl mdll~/l da;s ~ )' '''I C lllnl:lI e, Für 7Ll ' t o.lIHI ..t: i~t: lhCh.l fl C I1 vo n ~ ) "'I C lIlnl: 1
I.CII g l bt cx c i uc Reihe "P'\:li 1ixchc r :\n.I I~ . .ctcch ni lCII, Die KJ
pi,el
l)
~
\\
idrncn sic h diesem Ihcma.
lI:lLI fi p: fr:lgl 1lI.1Il n.I\' 11 .... pevie l h-n r igen ..;('I1:l fl t:n einc-,
Tcn uiuieu N'! K LlJlII A 111 crnc \"I;ll". iC:IUll~ .lic überhaupt kerne l n .nxiu ou .1".11\ ieu" K o.1l1 l1 j ed e Ir. nsitiou immer wieder ei ntreren ' 1:-:1 von jc.ler erre ichba ren Murkic ruug .IU .. die . \ n fi.l ll~~ lII a rkIc ru lIg errei ch J I I So lche Fruge n können im \ llgcrnci uen J.l:U nich t nd ~r nicht effizien t e.rruw riet werden. Eini ge d~l \,qn k~lOn rn~ln Im \1 arldcnlll ,C' giu phc u t Abscluutt 2,:-: 1 ~ra pll~1I 1 bcor Clb Ct! cnur aktensrercu oder ttut eitlem :lb!-!clcJICI CII G raph en dem ..Überdcckuua- gr: ph en" nppr xiuucrc n. Kapire 1- betr: eh ret t1ic..e Gr.rplu-n. ' ~ 'l CIII UI:l /C S 'v
~c r a lcu,
1 "1.:1-o lcuei J--ragestd lun t:cn SIn J lI..iJ ClII Sy..a t=mu;: ll ;\ und e ine ~l o.1I"J..icrulIg M H:-..undcl " \\ lC"h lli:! : •
I,
•
\\' inl" von der crrcrctu
,\ f
erre ich bar' \11 ~;IIlJ,r ..; rn:l rk
erung :l1I" ~1U t I ' Ien Fa ll
Die-cu oc.dcn I r Ll,; t: 1I .. nul J J:: K ap it el 15 UlIJ l n g::\\
UJ Ill t:1.
In Icn K ~ nitc 11 17 1:\ und Il) gehl c.. dartun . d ie Sp'uJ.., spelid l'( clLl JasM:n 111 de r Analyse aus zu uutzcn
Jr
Zustandseigenschaften Wichtige Eigenschaften eines Systems betreffen die erreichbaren Zustände, in einem Systernnetz N also die erreichbaren Markierungen. Wir notieren eine solche ZustandseigenschaJt E von N als einen Ausdruck a, der als Variable die Plätze von N enthaltenkann. Ersetztman in a für eine Markierung M je-
den Platz p durch M (p), ergibt sich für ader Währheitswert wahr ("E gilt in M") oder falsch ("E gilt nicht in M"). Zustandseigenschaften werden häufig als lineare Gleichun-
gen oder Ungleichungen formuliert. In diesem Kapitel geht es um die Form solcher (Un-)Gleichungen. Wie man ihre Gültigkeit nachweist, zeigen die nächsten Kapitel. Wir beginnen mit Eigenschaften des Keksautomaten als Beispiel. Der formale Rahmen für lineare Gleichungen und Ungleichungen ist denkbar einfach und wird im 2. Abschnitt erläutert. Es folgen weitere Beispiele und schließlich Ideen zu Varianten linearer Glei-
chungen und Ungleichungen.
9 1 Gleichungen und Ungleichungen des Keksaulomalen Für das Modell des Keksautomaten N aus Abb. 2.1 und die dort dargestellte Anfaugsmarkierung Mo gilt
Mo(A)
+ Mo(D) + Mo(E)
= []
+ [0] + [7]
=
[0,7] .
(1)
Interessiert man sich nurfür die Anzahl derMarken, kann man daraus insbesondere ableiten
IMo(A)1
+ IMo(D)1 + IMo(E)1
=
1[0,7]1
=
2.
(2)
9
Auf den Plätzen A, 0 und E liegen also anfangs insgesamt zwei Marken. Mit dem Schritt Mo --"-, M , gilt
e
D
Auf A, 0 und E liegen also in M, andere Marken als in Mo, E 7
aber es sind wieder zwei Stück. Es gilt also
Nun karm man (2) und (4) zusammenfassen. Für jede der beiden Markierungen M ~ Mo und M ~ M, gilt: IM(A)I + IM(O)I + IM(E)I ~ 2.
(5)
Tatsächlich sieht man leicht, dass die Gleichung (5) nicht nur für M ~ MoundM ~ M j , sondem sogar für jede erreichbare Markierung M des Systemnetzes N gilt: Auf A, 0 und E liegen zusammen also immer zwei Marken. Die Gleichung (5) gilt in N, und wir schreiben dafür als Kurzform: In N gilt lAI + 101 +IEI ~2.
(6)
Schaut man ein wenig genauer hin, so liegen in N immer eine Marke auf A oder 0 und eine Marke auf E. Genauer: Für jede erreichbare Markierung M gilt:
jM (A) 1+ IM(O) I = 1 und IM(E)j = L Dafür schreiben wir kurz
JAI + 101 ~ 1 und lEI ~ L
(7)
Den Zusammenhang zwischen A und 0 kann man noch genauer formulieren: In jeder erreichbaren Markierung M liegt entweder auf A ein Euro, oder auf 0 ein schwarzer Punkt. Um diese Beobachtung als Gleichung zu formulieren, zählen wir
die Marken auf 0, berechnen also IM (0)1 und bilden entsprechend viele Euro-Münzen, berechnen also
IM(O)I . [®] .
(8)
Da M(D) ~ [.] oder M(D) ~ [] , gilt also IM(D)I ~ l oder IM(D)I ~ O. Für (8) ergibt sich also [®] oder []. Addiert man dazu M(A) (also [ ] oder [®]), erhält man [®] . Es gilt also für jede erreichbare Markierung M
M(A) + (IM(D)I . [®I) ~ [®I, in N gilt also
A+(IDI· [®]) ~ [®]. Intuitivformuliert: Die Marke auf 0 entspricht einem Euro auf A.
Besonders interessant ist der Zusammenhang zwischen F und H. In einer erreichbaren Markierung M sollten ja jedem Euro in F zwei Schachteln in H entsprechen, also gilt 2'IM(F) 1+ IM(H)I ~ 7. Das stimmt allerdings nur, wenn B kein Signal enthält. Andernfalls neutralisiert das Signal einen Euro auf F. Es gilt also tatsächlich 2 'IM(F)I- 2 'IM(B)] + ]M (H) I ~ 7, d.h. in N gilt! (9) 21FI- 21BI + IHI ~ 7.
9
x-2 E 7
Die in N offensichtlich gültige Gleichung
• G
® F
21BI + 21GI ~ 2 kann man zu (9) addieren und erhält
21FI + 21GI + IH] = 9. Diese Gleichung kannman intuiti v deuten als einen "Strom" von Marken, die aus H über G nach F fließen: Wenn man die Marken auf G und F doppelt zählt, bleibt die Anzahl, 9, konstant. Betragsfunktionen und Vielfachheiten sind offenbar wichtige Funktionen zur Formulierung gültiger linearer Gleichungen. Oft braucht man allerdings auch ganz andere Funktionen. Ein Beispiel ist der Zusammenhang zwischen dem Zahlenwert w der Marke in E, und der Anzähl a der Münzen in F: Die Summe w + 2a hat immer den Wert 7. Um diesen Zusammenhang als Gleichung zu formulieren, sei cont eine Funktion, die für jede ein-elementige Multimenge In] mit n E Nden Wert n zurückgibt, also definiert ist als
lWie üblich schreiben wir das Produkt von jetzt an ohne Punkt.
n de- Anfangsma ri: ierun:} .'..!(I
von fl.bb. .2 1
cont(Mo(E)) = cont([7]) = 7 2IMo(F)1 = 2 11 JI = 2 0 = 0
cant([n]) Dann gilt: 2'I Mo(F)1 + IMo(H)1~ 2 11 ]1 +1[[J, IJ,[J, I1,[J,8 ,8]1
~
2· 0+7=7:::; 9
c=i(Mo(E))
~
c=i( [7])
I[[J, IJ,IJ,IJ,IJ,8, 8 11
~
~
~d"
n.
cant(E) + 21FI = 7.
(10)
Neben Gleichungen gelten in N auch interessante Ungleichungen, beispielsweise
7 [] für jede Markierung
M . Damit gilt in N für jeden Platz p die kanonische UngleicJumg
P? [] . Daraus folgt wiederum sofort
Ipl ? o.
9.5 Gleichungen und Ungleichungen elementarer System netze Gle ichungen der For m (13 ) haben für elementare Syste mnetze
N sehr oft die spezielle Gestalt n t . Pt +
9
... + n k . Pk =
11.Q,
wobei no, . .. I nk ganze Zahlen sind. Da eine Markierung M von N für e inen Platz p eine n atürli che Zahl M (p) von M arken be schreibt, bewegt sich der Form alismu s mit Summe und Produkt im Raum der ganzen Zahlen. Häufig haben die Faktoren Wert 1 und werden nicht notiert. Beispielsweise gelten
n i den
H
c
B
A
C
d
1-~ Q-----.0
e
Abbi'dong 9.2
D
moenennter abstrakter Ke!<sautorna:
in der abstrakten Variante des Keksautom aten aus Abb. 3.1 in der Fassung von Abb. 9.2 fo lgende Glei chungen :
A + D = I, B + G = I, H +G + F = 6, E + B - H ~
E + F = 5, o.
Außerdem gelten die Ungleichungen H+ C
< 5 und E +
B+ C
f'l sches Be spl
mll
2A .. B • C + 0
+-
E - :2
9
9 .6 Modulo-Gleichungen Der Wertebereich A der Funktionen f i aus (14) besteht gelegentlich aus den beiden Zahlen 0 und I mit der ModulolAddition , d. h. mit der üblichen Addition und der zusätzlichen Gleichung 1+ 1 =
o.
Abbildung 9.4 zeigt ein elementares Systemnetz N in dem die Modulo2-Gleichung
A +B +E+F = O gilt, wobei + die Modulo2-Addition bezeiclmet. Aus dieser Gleichung folgt beispielsweise, dass keine Markierung M mit M (A) = 1 und M( B) = M( E) = M( F) = 0 in N erreichbar ist. • E F
c
o .Äbbl rlung ~ 4
/0
~:
meoteres Systemnetz mit
cl1un!J A +- BE I F -
d
gOl! qen r..~dLJlo2-G
e
1-
Als ein weiteres Beispiel werden wir in Abschnitt 13.10 zentrale Eigenschaften des Kindergartenspiels aus Abschnitt 4.6 mit einer Modulo-Gleichung beweisen.
9 .7 Aussagenlogisch formulierte Zustandseigenschaflen Oft will man Zustandseigenschaften als logische Aussagen formulieren; für den Keksautomaten aus Kapitel 1 beispielsweise "Wenn Signal markiert ist, liegt mindestens eine eckige oder
ein runde Schachtel im Speicher' oder "Wenn im Speicher noch alle Schachteln der Anfangsmarkierung liegen, haben Signal und Kasse gleich viele Marken (und zwar höchstens eine)". Für den wechselseitigen Ausschluss gilt: "Der linke Prozess ist nicht kritisch oder der Schlüssel ist nicht verfügbar".
Für den Crosstalk-Algorithmus (Abschnitt 3.4) gilt: "Wenn der linke Prozess wartend ist, liegt auf gesendet r oder auf bestätigt, oder auf bsendet, eine Marke". Für solche Aussagen liegt es nahe, als Gleichungen und Ungleichungen formulierte Eigenschaften aussagenlogisch zu kombinieren. Für zwei Gleichungen oder Ungleichungen CI': und ß definieren wir die Gültigkeit der logischen Verneinung ,0: von CI': und des logischen "und" CI: /\ ß von CI': und ß in einer
Markierung Meines Systemnetzes N durch ,a gilt in M gdw. o gilt nicht in M.
o !I ß gilt in M gdw. o und ß gelten beide in M.
So erhalten wir aussagenlogischformulierte Zustandseigenschaften . In der Anfangsmarkierung Mo von Abb. 9.4 gilt beispielsweise (A = 1) !I (6 = 1) und = 1). Andere aussagenlogische Kombinationen wie o V ß ("a oder ß") und o --+ ß ("Wenn o darm ß") ergeben sich darm wie üblich als ,( -xe !I ,ß) bzw. ,a V ß. Ein Ausdruck Q: ist in einem Systemnetz N gültig, wenn Q: in jeder erreichbaren Markierung von N gültig ist. So gilt bei-
,tc
spielsweise
o im Keksautom aten in Abb . 2.1: B ~ 1 ~ (H ~ [[1] V H ~ [8 ]) und H
= [[1, I[j, I[j, I[j, I[j, 8
(21)
, 8 J --> ([BI = [FI /\ [BI :':: 1), (22)
o im System des wechs elseiti gen Ausschlusses in Abb. 4.4 :
C = OV D ~ 0,
(23)
o für den Crosst alk-Algorithmu s in der Notati on von Abb . 3.8: B = 1 ~ (G = 1 V H = 1 V L = 1). (24 ) Diese Beispiele best ätigen die Beoba chtung, dass logisch formulierte Eigenschaften oft aus sehr einfa chen Gleichungen und Ungleichungen zusammengesetzt sind. Dafür ist fol gende kn appe Punkt-N otation zwec kmäßig: Für ein Syst emnetz N mit einem Platz P, einem Element u E U und einer Multimenge A E M des Universum s U steht p.u für p ~ [u] und
p.A fürp
~
A.
Wenn ein Piatz p nur schwarze Marken trägt, schreiben wir einfach p für p ~ [0]. Für eine Menge P = {Pl , ... ,Pn } von Plätzen schreiben wir einfach
P oder P, ... Pn statt P
~ Pl /\ . .. /\ Pn'
Die obigen Beispi ele (21) bis (24) lauten dann B ~ H.1[j V H.8 , H.[[1, I[j, I[j, I[j, I[j, 8 , 8 1 ~ (IBI = IFI /\ [BI :':: 1),
....,C V -, D,
(25 )
9
B
--+
(G V H V L).
Im System des wechselseitigen Ausschlusses in der Fassung
von Abb. 4.3 gilt AE
--+
0 und CE
--+
,0.
Wir verwenden gelegentlich die in der Logik übliche Notation
M l=aundN l=a um auszudrücken, dass eine Eigenschaft CI': in einerMarkierung M bzw. einem Systemnetz N gilt.
Satz 5 (Gültigkeitssatz logisch formulierter Eigenschaften). Für ein Systemnetz N und logischformulierte Eigenschaften o und ß gilt:
1= e !I ß gdw. N 1= o und N 1= ß· Wenn nicht N 1= o, dann nicht unbedingt N I~ , Wenn N 1= o oder N 1= ß dann N 1= o V e Wenn N 1= o dann N 1= ß --+ o. Wenn N 1= ,a dann N 1= o --+ ß·
a) N b) c)
d) e)
o.
Aufgaben 1. Welche der folgenden Gleichungen und Ungleichungen gelten im Systemnetz aus Abb. 5.6? a) 2A + B + C + 0 + E = 2 b) 2A+B+C+D+E+F+G=3 c)F+G=1 d) B + C = 0 + E
e) C+E+GIldul1g 10.2 Systemnet z
b) Welche Eigenschaft folgt aus der Beobachtung a)?
* 4.
In einem elementaren Systemnetz N gelte für eine Teilmenge von Plätzen Q = {q l, ... , qn} die Gleichung Ql+ ... +qn=l. Beweisen oder widerlegen Sie die folgenden Behauptungen.
a) Die Menge Q ist eine Falle. b) Die Menge Q ist eine Falle, wenn jede Transition des Systenmetzes mindestens einmal aktiviert ist.
c) Ersetzen Sie die obige Gleichung durch die Ungleichung
Beantworten Sie die Fragen a) und b) für diesen Fall. 5. Ist die Menge P aller Plätze eines elementaren Systemnetzes N eine Falle? Ist P eine CoFalle?
Zum Weiterlesen Fallen und Co-Fallen sind seit den 1970er Jahren bekannt [33]. Die Bezeichnung "Falle" (englisch .Jrap", französisch .siphon") trifft genau die Intuition der Konstruktion. Co-Fallen sind in der Literatur als "Deadlocks", gelegentlich auch als "Siphons" bekannt geworden - eine verwirrende Begriffsbildung. In der ModelIierungspraxis kommen Fallen wesentlich häufiger vor. Lautenbach beschreibt in [44] linearalgebraische Charaktereisierungen und entsprechende Algorithmen für Fallen und Co-Fallen (dort als "Deadlocks" bezeichnet). Für die Praxis besonders interessant sind minimale (kleinste) Fallen. Ihre effiziente Berechnung untersucht [79]. Zur Steigerung der Effizienz verwenden Wegrzyn und ihre Ko-Autoren [78] ErfüllbarkeitsAlgorithmen der Logik. Dieser Beitrag erläutert auch eine Reihe weiterer Verfahren zur Berechnung von Fallen und Co-Fallen.
10
Platzinvarianten elementarer Systemnetze Die wichtigste Analysetechnik für Systemnetze sind die P/G1Zinvarianten. Sie nutzen den konstanten Effekt von Transitionen aus: Jedes Mal, wenn eine Transition t in einem Modus ß eintritt, werden dieselben Multimengen bewegt. Der Effekt von (t,ß) ist linear. Beispielsweise kann t mit doppelter Markenzahl auch doppelt so oft eintreten. Die Mathematik für lineares Verhalten ist die bekannte lineare Algebra mit Vektoren, Matrizen und Gleichungssystemen. Tatsächlich kann man viele Aspekte von Petrinetzen damit darstellen und berechnen. Wir beginnen mit den linear algebraischen Notationen für elementare Netzsysteme.
11 1
11
Vektordarstellung für elementare Systemnetze
Das dritte Kapitel in Teil I beschreibt eine Markierung Meines elementaren Systemnetzes N als Abbildung M : P -----> C\, die jedem Platz p von N eine natürliche Zahl zuordnet. Oft sind die Plätze in nahe liegender Weise angeordnet, beispielsweise durch ihre Indizes inder Porm p -, ... , Pk oder alphabetisch mit A, B ,C, ... . Dann kann man Mals Spaltenvektor
schreiben, wobei ", die Zahl der Marken des i-ten Platzes ist.
c A .
• B
u
Entsprechend kann man jeder Transition t einen Spaltenvektor
1~ (T ) ~ ~ ~1 (
zuordnen, wobei für i
)
=
1, ... , k wenn n, E etundpi rf:- t",
wenn n, E t e und Pi rf:-
c • B
A. u
-t,
sonst. Aus dem Vektor i kann man nicht genau die Plätze im Vorund Nachbereich "t und t e rekonstruieren: Zi = 0 gilt falls kein Pfeil Pi und t verbindet, aber auch im Fall einer Schlinge zwischen Pi und t. Mit den obigen Vektoren und der klassischen Definition der Summe von Vektoren gilt für jeden Schritt M --'--, M' von N: (1) Man nennt (1) die Vektordarstellung von Schritten.
11 .2
Die Matrix
H
Nehmen wir nun an, auch die Transitionen von N sind in der Form t 1 , ... , t l angeordnet. Dann bilden die Spaltenvektoren "L gemeinsam die Matrix N von N:
_ (Z11 .. . zr 1)
N
j
-1 i'
N=dlt(i 1, · · · ,t ) -
:
Zu
:
...
Zlk
Abbildung 11.1 zeigt ein technisches Beispiel eines elementaren Systemnetzes N und seiner Matrix N. Mit dieser Konstruktion gilt also für jeden Schritt M
M' und jeden Platz Pi von N: t Pio---....Q----..Pi'
.2c,
A
a b c d e 1 -1 -1 1 -1 1 1 -1 1 1 -1 1 -1
N A B
B
C 0 E
o Aooi dung 11 1: Ein elementares Systeml etz N m t se n.er M3tn:-: (Eintrage 0 werc en ntctu qescbneneru
11 .3
ti.
Platzinvarianlen
ln Abschnitt 9.5 haben wir erläutert. dass eine gültige Gleichung eines elementaren Systemnetzes N oft die Form n l . P1
+ ... + nk
. Pk = no
11
(2)
hat, mit ganzen Zahlen no, ... ,nk und Plätzen Po, . . . ,Pk. Die
Zähl 0 ist ein möglicher Faktor; deshalb können wir in (2) immer alle Plätze in ihrer Ordnung P t, . .. ,Pk annehmen. Gültige Gleichungen der Form (2) lassen sich aus Lösungen des Gleichungssystems (3)
ableiten. Dabei ist 0 = (0, ... ,0) ein I-dimensionaler Vektor. Ein Vektor 1} = (n j, . . . ,nk) löst (3), wenn 1} . t = 0 für jede Transition t von N. Eine Lösung 1} von (3) heißt Platzinvariante von N. Mit der Anfangsmarkierung Mo von N ist die Zähl nO =def 11 .
M.rJ
(also n j . Mo(pJl + ... + nk . MO(Pk)) die Konstante von 1}. Die Gleichung (2) ist dann die Gleichung der Platzinvariante 11. Der folgende Satz motiviertdieses Bezeichnungen:
t
A
1
B
u 1 -1
C
Satz 10 (elementarer Platzinvariantensatz). Sei N ein elementares Systemnetz mit einer Platzinvariante !J:. Dann gilt in N
!1"
die Gleichung von 1}.
A+B+C=2
Mo = 2
Die aus einer Platzinvariante gewonnene Gleichung wird oft selbst als Invariante bezeichnet. Zum Beweis des Satzes müssen wir zeigen, dass 11' M = no für jede erreichbare Markierung M gilt. Nun gilt diese Gleichung trivialerweise für M = Mo. Zudem ist jede erreichbare Markierung M mit endlich vielen Schritten aus Mo erreichbar. Deshalb reicht es zu zeigen, dass 11 ' M = 11 ' M' für jeden Schritt M .L; MI gilt. Das ist nun recht einfach:
+ tJ (nach (1)) + rJ. .1; (lineare Algebra) + 0 (da 11 eine Platzinvariante ist)
n· MI = rJ.' (M = rJ. .
M
= rJ. . M
= n . M (lineare Algebra).
Abbildung 11.2 notiert die Anfangsmarkierung Mo des Systemnetzes N aus Abb. 11.1 als Vektor sowie vier Platzinvarianten von N zusammen mit den daraus abgeleiteten gültigen Gleichungen. A B C 0 E
Mo
'1
'2
'3
'4
1
1
1 1
2 1 1 1 2
1 -1 1
1 1
1 1
ausi 1:A+C+E=1 aus i 2 : A + B + 0 + E = 1 aus i 3 : 2A + B + C + 0 + 2E = 2 aus i 4 : B - C + 0 = 0
Abtl i'dul'lg 11 2: An f3ngsma(1{ierun g M , ' Platzin varian ten zucehot ae Gte.cnun qen zu N aus Anti . 11 1
11 .... ~~
und
Die Umkehrung dieses Satzes gilt unter der milden Annahme, dass jede Transition aktivierbar ist: Satz 11 (Umgekehrter Platzinvariantensatz). In N gebe es für jede Transition t eine erreichbare Markierung M, die t aktiviert. Zudem gelte in N die Gleichung (2). Dann ist rJ. = (n l, . . . ,nk) eine Platzinvariante von N mit der Konstante no.
Zum Beweis betrachte man einen erreichbaren Schritt M ~ MI . Wie im obigen Beweis folgt 1].' t = O. Für jede Transition t gibt es einen solchen Schritt. Mit der gleichen Argumentation funktioniert auch der Nachweis gültiger Modulo2-Gleichungen. Für das Netz in Abb. 9.4 ist beispielsweise (1, 1,0,0, 1, 1,0, 0) eine Platzinvariante (mit der Ordnung A , ... , H der Plätze). Diese Invariante hat die Konstante 4; als Modulo-Zähl also O. Damit gilt die schon in Abschnitt 9.6 diskutierte Gleichung A + B + E + F = O. Platzinvarianten bieten eine starke Beweisteclmik für Eigenschaften elementarer Systernnetze. Beispielsweise sind alle in Abschnitt 9.5 erwähnten Gleichungen unmittelbar Gleichungen von Platzinvarianten.
11.4
Positive Platzinvarianten
Den Begriff der "Invariant' treffen insbesondere Platzinvarianten i mit nicht-negativen Einträgen. Eine Platzinvariante i eines elementaren Systemnetzes N heißt positiv für einen Platz p von N, wenn
i(p) > 0, und i( q) ;:> 0, für jeden Platz q von N . Man sieht leicht: Satz 12 (Positiver Platzinvariantensatz). Ein Platz p mit einer positiven Platzinvariante ist beschränkt.
p hat also eine Zahl n, so dass M (p) O. Dann gilt: Satz 13 (Invarianten-Fallen-lInvarianten-Co-Fallensatz). Der Träger einer positiven Platzinvariante eines Systemnetzes N ist zugleich eine Falle und eine Co-Falle von N. In der Gleichung (2) hätte man statt ganzer Zahlen no, . . . , nk auchrationaleZahlen verwendenkönnen. Die Lösung von Gleichungen wäre dann sogar einfacher. Intuitiv wären die rationalen Zählen allerdings nur selten hilfreich.
Aufgaben 1. Aufgaben zu Abb. 11.1 a) Konstruieren Sie zwei voneinander linear unabhängige Platzinvarianten und bilden Sie ihre Gleichungen. b) Konstruieren Sie eine Platzinvariante, in deren Träger alle Plätze vorkommen, und bilden Sie ihre Gleichung. 2. Welche der folgenden Gleichungen und aussagenlogischen Formeln gelten im Systemnetz aus Abb. 11.4? Beweisen Sie mit Hilfe von Platzinvarianten oder geben Sie ein Gegenbeispiel. a) A + 2B + C + 0 + E = 2
b) A+B+C=1 c) E--+AVCVD d) A --+ E
B
A
e
D
d
AbtJ i dung 11 4 : Systemn etz
3. Konstruieren Sie Gegenbeispiele für die Umkehrungen der Sätze in Abschnitt 11.4. 4. Leiten Sie alle in Abschnitt 9.5 aufgestellten Gleichungen und Ungleichungen aus Platzinvarianten und Fallen der entsprechenden elementaren Systernnetze ab. 5. Sei N ein elementares Systemnetz, in dem jeder Platz eine positive Platzinvariante hat. Zeigen Sie: Es gibt eine einzige Platzinvariante, die für alle Plätze von N positiv ist.
11
Zum Welterlesen Platzinvarianten elementarer Systemnetze hat Lautenbach in [43] eingeführt, zusammenmit der Matrix eines Netzes und derVektorschreibweise für Markierungen und Schritte. Mit Modulo-n-Invarianten haben Desel et al [17] einen neuen Akzent gesetzt. Die MatrixDarstellung und das Konzept der Platzinvarianten setzt sich bruchlos auf Valks selbst modifizierende Petrinetze fort [74]: Für ein Netz N mit einer Kante (t,p), deren Gewicht der aktuellen Markenzahl des Platzes q entspricht, entsteht der Matrixeintrag N( t,p) = d e f q :p. Dadurch sind die Gleichungen zur Berechnungvon Platzinvarianten nicht mehr linear. Die Berechnung von Platzinvarianten ist aufwendig, da nur ganzzahlige Lösungen des Gleichungssystems (3) zählen. [22] erläutert Einzelheiten. Yamauchi und seine Koautoren nutzen für eine effiziente Heuristik in [79] Satz 13 aus, indem sie Kandidaten verwerfen, die keine Fallen oder keine Co-Fallen sind.
Die Kombination von Fallen und Platzinvarianten elementarer Systemnetze Wenn man zwei gültige Gleichungen oder Ungleichungen addiert oder subtrahiert. entsteht wieder eine gültige Gleichung oder Ungleichung. Wir werden sehen, dass solche Rechnungen
die Ausdruckskraft von Fallen und Platzinvarianten substantiell stärken. Wir beginnen mit Gleichungen und Ungleichungen elementarer Systemnetze.
12.1
Rechnen mit Gleichungen und Ungleichungen
Nach (2) in Abschnitt 11.3 hat eine Gleichung eines elementaren Systemnetzes die Form
Die Addition einer Gleichung
G2
:
m 1'
+ ... + mk
Pi
. Pk
= mo
zu GI liefert die Gleichung
Das skalare Produkt von G l mit einem Faktor z liefert z . G i:
z . n l . P1
+ ... + Z . nk
. Pk = Z . no,
wobei z durchaus eine negative Zahl sein kann. Mit Ungleichungen rechnet man ganz analog nach den üblichen Regeln. Als ausdrucksmächtige Beweisteclmik können wir ausnutzen,
dass die Gültigkeit von Gleichungen bei Addition und skalarem Produkt erhalten bleibt:
12
a
A
B
b
C
~ o
c
E
Aooildung 12 1 Teenrusches Beispie A +
=
Satz 14 (Summensatz gültiger Gleichungen). Sei N ein elementares Systemnetz. Die Summe zwei er in N gültiger Gleichungen und Ungleichungen. sowie das Produkt einer gültigen (Un-)Gleichung mit einem Faktor z, sind wiederum in N gültig. Zum Beweis sei M in N erreichbar, also gelten C , und G2 inM. Da n.. M(Pi)+mi .M(Pi) = (ni+mi) .M(Pi) für (i = 1, ... , k), gilt auch G I + G 2 in M. Für z argumentiert man analog. Diese scheinbar offensichtlichen Rechenschritte erhöhen mas-
siv die Ausclrucksstärke der Information, die aus Fallen, Platzinvarianten und den kanonischen Ungleichungen P ;> [] (vgl. Kapitel 9.4) abgeleitet werden können. Abbildung 12.1 zeigt ein technisches Beispielsystem N mit der gültigen Ungleichung
A+EI,
(4)
die aus der anfangsmarkierten Falle (B,C,D) folgt. Damit ergibt sich (I) aus (2) + (3) - (4).
12 .2
Zustandseigenschaften des Wechselseitigen Ausschlusses
Die zentrale Eigenschaft des wechselseitigen Ausschlusses in Abb. 3.2 lautet C+G0
von 0 (also Addition der Ungleichung - 0
[U l, ... , u.].
f(x) C
x
x
f(x)
e x
f(x)
f(x)
A
a
0
b
x
x B
E
x
x U , .. .Un
F
x
Aooi dung 13 1 Falte {A,e D} , mit oer Un qte cnunc A'" C + f(D )
I u,
Urd- ta 150 f(fl U i l ~U i
wenn es in '-t! e.nen Platz / 1 gibt m t iJ - · t dann gibt es
13
13.2
Summenausdrücke
Wie in Kapitel 2 beschrieben, sind die Kanten eines Systemnetzes N mit Ausdrücken beschriftet. Typische solche Ausdrücke sind Konstanten wie ®. 10. 8. 0. Variablen wie x, y und Ausdrücke wie x-I oder fex). Sie können auch komplizierter zusammengesetzt sein, wie beispielsweise (x- 1)mod 60 in Abb. 4.9. Im Allgemeinen können mehrere Ausdrücke an einem Pfeil stehen. beispielsweise I(x) und rtx) in Abb. 9.1. Abschnitt 2.6 hat erläutert. dass eine solche Menge von Ausdrücken (mit einer Belegung ihrer Variablen) eine Multimenge beschreibt. Die Summe von Multimengen bilden wir nun mit Ausdrücken nach: Die Addition h + b: zweier Ausdrücke b1 und b: und das Inverse -b eines Ausdrucks b sind ebenfalls Ausdrücke. Wie bei Zahlen schreiben wir h - b: für b: + (-b 2 ) und nehmen einen besonderen Ausdruck •.O" (für die leere Multimenge) an. Mit solchen Ausdrücken b1 , b2 , bs können wir wie mit ganzen Zahlen rechnen, indem wir folgende Regeln anwenden:
+ b2 = b2 + i; (b + b2 ) + bs = h + (b2 + bs),
bj
j
h+O = bj , bj
-
bj = O.
Solche Ausdrücke mitsamt ihren Rechenregeln heißen Summenausdrücke . Mit diesen Rechenregeln steht ein Summenausdruck für eine Multimenge: bj
13.3
+ ... + bn für [h, .. . , bnl und 0 für [ I.
(2)
Das Produkt von Summenausdrücken
Aus technischen Gründen benötigen wir ein Produkt von Summenausdrücken. Seien b1 und b2 Summenausdrücke, wobei b1 höchstens eine Variable enthält. Eine Variable kann in bj durchaus mehrfach vorkommen. wie in g(z , h( z)) die Variable z.
Wir definieren das Produkt b, . bz wiederum als Summenausdruck . Er entsteht aus b" indem jedes Vorkommen der Variabl e von b, durch b, ersetzt wird. Beisp ielsweise gilt mit
b,
=
g(z ,h (z» und b, = J(x, y) für das Produkt b, . b,: g(z , h(z )) . J(x , y) = g(J (x , y), h(J (x , y».
Entsprechend gilt mit bJ = J(x ) und b: = (y + z) für das Produk t b, . b,:
J(x ) .(y + z)
=
J(y + z).
In b, . b, kommen offenbar nur die Variablen von b, vor. Als Besonderheit kommen in solchen Produkten "echte" Sum menausdrücke auch als Argumente von Funktionen vor. wie in J(y+ z). Mit weiteren Rechenregeln könne n solche Ausdrück e immer in .n orrnale" Summenausdrücke umgeformt werden. Für jede n-ste llige Funktion J gilt:
J( J( J(
,b, + b" .. .) = J( ,b" ... ) +J(. . . ,b" ... ), , - b, ) = - J( ,b, . . .),
,O,
)=O
Ganz offensichtlich ist das Produkt nicht kommutativ: b,· b, und b: ' b1 sind im Allgemeinen verschiedene Summenausdrücke. N ach diesen Recheruegein gilt beispieiswe ise mit b, = J(x ) + g(x) und b, = h(y) für das Produkt h . b,:
(J (x ) + g(x»
+ g(h(y» . Entsprechend gilt mit b, = J(x ) und bz = g(y) + h(z): J(x ) . (g(y) + h(z» = J(g(y) + h(z )) = J(g(y)) + J(h(z)). 13 4
h(y ) = f(h(y»
Die Anwendung eines Summenausdrucks auf eine Multimenge
Wie in Abschnitt 2.6 beschrieben, kann man einen Ausdruck b mit h öchste ns einer Variablen x für ein Element u eines Uni-
versums U ausrechnen. indem man jedes Vorkommen von x durch u ersetzt. Das Resultat ist wiederum ein Element in U. geschrieben b(u).
13
Verallgemeinert auf MulLimengen sei
b([u!, ... ,unI) = [b(uJl, ... b(un)]
(3)
Fasst man U 1, , U n als (variablenfreie) Ausdrücke auf, entspricht (3) mit (2) der Gleichung
b . (b! + ... + bn) = b . h
+ ... + b . bn.
In (3) bildet der Summenausdruck b eine Funktion, die auf ,un ] angewendet wird, und wiederum die Multimenge [U1, eine Multimenge erzeugt.
13.5
Die Matrix ~ eines Systemnetzes A'
In den folgenden Abschnitten sei Nein Systemnetz mit den Plätzen P1, ,Pk und den Transitionen t 1, , t.. In N besteht die Anschrift Pitj der Kanten von Pi nach t, im Allge,an_ Im Weiteren nomeinen aus mehreren Ausdrücken a 1, tieren wir sie als Summenausdruck a 1 + + an- Entsprechend bildet die Anschrift tjPi der Kante von t j nach Pi einen Summenausdruck. Damit konstruieren wir den Eintrag N( i, j) in der Matrix N von N als den Summenausdruck
N(i,j)
=dd
tjPi - Pitj .
Abbildung 13.2 zeigt sechs technische Beispiele elementarer Systemnetze Ni mit ihren Matrizen Ni- Um die Übersichtlichkeit zu erhöhen, wird der Summenterm ,/:1' nicht notiert.
13.6
Die Platzinvarianten eines Systemnetzes
Sei nun b = (h, ... ,bk) ein Vektor von Summenausdrucken b, (i = 1, ... , k) mit jeweils höchstens einer Variablen. b löst das Gleichungssystem (4) x ·N=O
Nt A
B
g(Xh_-~
Ne
+ g(x)
A
-x
frA)
B
f(x) g(x)
C
B C
Y
f(x)
+ grAl
f(A)
B v
B y
C
f(x,y)
A
-x
B
f(x)
+
8=
ffl') • grAl , ß ' C
[;(u ), g(LJ), fl v ), 9(v I]
Mo frA)
u
g(B) C
v
GIe-,ctJung von i
f(A) + g(8) , C
Mo
+ g(x,y)
u
Gle
etlUf1!.1
von
v
lAI + 181+ ICI
Mo u+v
Gle!chung von
ICI
-x
=
[f(u), g(v )]
If(A)1 Ig(B)1
u
A ' ,- ' (8) [u v)
+
9 '(C)
Ne AXt
G::C::TI f(x) mit f(J(x))
~
x
. J'1JJ j
t
j
i
j Mo
~
A,bt)ll dUI1g 13 :2 Svetemnetze 11'1 11 Md tr X ebce te.teten glJ lugen Gleichungen
~; I ,Jl l\ II "' ,J n a nl en
unu d ·Jfd :.J S
GlefCflung vcn •
A I , (t,)
13
=2
g(x)
C
=
B C
-x -y
A
x
ri Al • grAl
Gle(ct1ung vom
u+v
N4 u
GIe-,ctJung von '
[-ru) , g(u), f(v l, g(v )]
Mo
+ grAl
+ g(y)
A
u -i-v
B
-x -y
A
x
B v
lb
Ne
A
u
-x
f(x)
B
Mo
=[U f{u)]
=
genau dann, wenn für jedes j gilt:
Jede Lösung von (4) ist eine Platzinvariante von N. Abbildung 13.2 zeigt Platzinvarianten der Systemnetze N I, . . . , Ne. Die Invariante von N s setzt Umkehrfunktionen /-1 und «:' voraus. Die Invariante von Ne gilt nur mit /U( x)) ~ x. Die Variable jedes Summenausdrucks b, einer Platzinvariante (bI, ... , bn ) eines Systemnetzes N ist frei wählbar. Für die spätere Verwendung ist es zweckmäßig, den i-ten Platz von N als Variable für b, zu verwenden. In Abb. 13.2 folgen wir dieser Konvention.
13.7
Die Konstante einer Platzinvarianten
Die Anfangsmarkierung Mo von N bestimmt den Wert der Konstanten einer Platzinvarianten b = (b1 , . . . ,bk)' Dazu werden die Ausdrücke b, auf die Anfangsmarkierung des Platzes Pi angewendet (vgl. Abschnitt 13.4) und die resultierenden Multimengen addiert. Die Konstante von b ist also die Multimenge
Beispiel: Die Konstante der Platzinvariante i von NI aus Abb. 13.2 ist die Multimenge [fe u),g(u),f( v),g(v)].
13.8
Die Gleichung einer Platzinvarianten
Wir haben nun alles beisammen, um gültige Gleichungen zu erzeugen: Für eine Platzinvariante b = (b1 , ... ,bk) von N mit der Konstanten bo ist
die Gleichung von h. Abbildung f3.2 zeigt die Gleichungen der Platzinvarianten der Systemnetze N j , ... , N 6 . Abschnitt 9.2 beschreibt die Gültigkeit solcher Gleichungen in N. Damit können
wir den zentralen Platzinvaria ntensatz ftir allgemeine Systemnetze formulieren:
Satz 15 (Allgemeiner Platz invariant ensatz), Sei N ein Systemlien und sei b eine Platzinvariante VOll N. Dann gilt in N die Gleichung von b.
Den - umfangreichen - Beweis überlassen wir dem Leser. Mit diesem Satz gelten also die in Abb. 13.2 abgelei teten Glei chungen für die Systemnetze N" ... , N B. Es bleibt die Frage, wie man Platzinvarianten berechnet. Das ist schon für ele mentare Syst emnetze nicht ganz leicht, weil man dort aus intuitiven Gründen ganzzahlige Lösungen will. Immerhin kann man dort dividieren und die übliche GaussElimination anwe nden. Allgeme ine Systemnetze kennen keine Division. In der Praxis werde n Systemeigenschaften nicht ziellos ausgerec hnet sondern spez ifisch gefordert oder vermutet. Entsprec hend werd en Platzvarianten vermutet. Eine solche Vermutung ist durc h Einsetzen leicht überprüfbar. Gelege ntlich ist eine vermutete Platzinvariante nur "fast" korrekt und k ann durch systematisches Prob ieren korrigiert werden .
13.9
13
Eigenschaften des Philosophensystems
Abbildun g 13.3 zeigt die Matrix und drei Platzi nvari anten des Philosophensystems aus Abb. 9.1. Die Glei chungen dieser Invari ante n laut en
N denkend verfügbar esse nd
i, denke nd verfügbar essend
Mo [p" ... ,Psi l(x ) + r(x ) [y" . . . , Ysl u
- x - (l(x ) + r(x)) x
I,
d v
e
l(e) + r(e)
x
- x
'3
l(d) + r (d) -v
Abtll dung 1 3 M", lr I A"f;;lngsmaquet'lJng \/ unc d re. Ptatzmva re- iten ces Ptliloso;"hens)'-siems
x
essend
denkend + essend = [P I" .. ,P5], vertüqbar + l( essend) +
r( essend)
= [91" .. ,95],
l(denkend) +r(denkend) - verfügbar = [91"" ,95]'
(5) (6) (7)
Mit dem Invariantensatz gelten sie im Philosophensystem.
Intuitiv formuliert heißt (5) für jeden erreichbaren Zustand eines Philosophen Pi: entweder denkt Pi nach oder Pi isst. (6) stellt für jede Gabel 9i fest: sie ist entweder verfügbar oder linke Gabel eines essenden Philosophen oder rechte Gabel eines
essenden Philosophen. Die Gleichung (7) versteht man intuitiv besser in der Darstellung vsrtüqbar + [91" .. ,95] = l( denkend) +
r( denkend).
(8)
Dabei unterscheiden wir für eine Gabel 9i zwei Fälle:
1. 9i ist nicht verfügbar. Dann kommt 9i in der linken Seite von (8) genau einmal vor. Gemäß der rechten Seite von (8) gibt es dann genau einen denkenden Philosophen, dessen linke oder rechte Gabel 9i ist. Also ist der andere Nutzer der Gabel essend. 2. 9i ist verfügbar. Dann kommt 9i auf der linken Seite zwei-
mal vor. Dann gibt es zwei denkende Philosophen P und q, so dass 9i die linke Gabel von P und die rechte Gabel von q ist.
13 .10 Eigenschaften des Kindergartenspiels Um das Modell des Kindergartenspiels aus Abb. 4.13 zu verstehen, leiten wir eine gültige Gleichung aus einer seiner Inva-
rianten ab. Abbildung 13.4 zeigt seine Matrix, eine Invariante bund seine Anfangsmarkierung Mo. Die Funktion f in b bildet jede Multimenge schwarz und weiß gekleideter Kinder auf die
B [0]
Kinder
Mo + W· [0] tt
mit f (0)
Kinder
= 0, f (0) = 1 und 1 + 1 = 0
Abbl dung 13 " Mi:lln :(, I"-'Ialz rwane nte und Antl3ngsmiH'l'i lerung l!J t das
f n. Vier Fragen können mit dem Überdeckungsgraphen entschieden werden: • Sind endlich oder unendlich viele Markierungen erreichbar? • Auf welchen Plätzen sammeln sich ggf. unbeschränkt viele Marken?
14
• Auf welchen Mengen von Plätzen sammeln sich ggf. zugleich unbeschränkt viele Marken? • Ist für eine gegebene Transition t eine Markierung M erreichbar, die t aktiviert?
14.3
uJ-Markierungen
w-Markierungen M verallgemeinern die üblichen Markierungen. indem M (p) ~ w die Unbeschränktheit des Platzes p dokumentiert. Eine w-Markierung M eines elementaren Systemnetzes N mit der Platzmenge P ist also eine Abbildung
M:P--+ 0:U{w}. Zum Umgang mit w-Markierungen ergänzen wir die üblichen Rechenregeln durch w+l~w-l=w.
Mit den Definitionen aus Abschnitt 3.1 sind insbesondere Schritte M --'-, MI für w-Markierungen M und M' wohldefiniert. Wir erweitern die Ordnung< natürlicher Zahlen n durch
n<w und nennen eine w-Markierung M kleiner oder gleich M', geschrieben I M<M ,
wenn für jeden Platz p von N gilt M (p) > .. . natürlicher Zahlen gibt. Zum indirekten Beweis des Satzes nehmen wir nun an, es gäbe einen unendlichen Überdeckungsgraphen H von N. Gemäß der Konstruktion von Überdeckungsgraphen im vorigen Abschnitt ist jeder Knoten von Mo aus erreichbar und hat nur endlich viele Nachfolger. Deshalb entsteht im Laufe der Konstruktion von H ein unendlich langer Weg
n, n,
"
1"10
" 1V"11 -------.. " ...
~
mit paarweise verschiedenen Knoten (nach .König's Lemma" ). Gemäß (I) hat die (unendliche) Folge M oM , ... eine unendlich aufsteigende Teilfolge M nü < M n' < .. .. Nach der Konstruktion von Überdeckungsgraphen wächst mit jedem n, die Zahl der Plätze p mit M n,(p ) = w. Dafür wären unendlich viele Plätze nötig. N hat aber nur endlich viele. Damit ist der Widerspruch gezeigt.
14.6
Die Überdeckung sequentieller Abläufe
14
Sei N ein element ares Syste mnetz. Eine w-Markierun g M von N überdeckt eine Markierung M, falls für jeden Platz p von N gilt: M (p) = M (p) oder M (p) = w. Damit gilt: Sa lz 17 (Überdeckungssatz). Sei H ein Oberdeckungsgraph eines elementaren Systemnetzes N . Zujedem sequentiellen Ab-
lauf Mo ........... M, .z, ... von N gibt es in H einen Weg Mo ~ M1 ~ M 2 .. . in dem lvIi die Markierung Mi iiberdeckt (i = 1,2 , . . .). Der Beweis folgt aus der Konstruktion von H durch induktion über i, Die Umkehrung gilt im Allgemeinen nicht. Im Allgemeinen können unterschiedliche Systemnetze gleiche Überdeckungsgraphen haben. Wir lassen die Konstruktion eines solchen Beispiels als Übungsaufgabe.
st ein Weg In beid en
berd e-
ckun gsgraoo en vcn Abb 14 3 aber k.e r WeQ r Ab t.! 14
14.7 D
A •
o un d E
c S lfHJ:
nicht simulta n
unb escru ankt , aber
Simultan unbeschränkte Plätze
Man könnte sich triviale Überdeckungsgraphen vorstellen, die jeden sequentiellen Ablauf eines elementaren Systernnetzes N überdecken: Jeder Platz erhält einen w-Eintrag. Ein sinnvoller Überdeckungsgraph hat nur für unbeschränkte Plätze wEinträge; mehrere w-Einträge in einem Knoten kennzeichnen zudem simultanunbeschränkte Plätze: Eine Menge
Q von Plätzen
von N ist simultan unbeschränkt, wenn es zu jeder Zahl i E ::\ eine erreichbare Markierung Mi von N gibt, so dass für alle qE
Q M i ( q) ;:> i.
Tatsächlich liefert. die Konst.ruktion aus Abschniu 14.4 nur "sinn-
volle" Überdeckungsgraphen. Für einen Knoten Meines Überdeckungsgraphen und einen Platz p von N sei
pEWM gdw
M(p)~w.
Dann gilt: Satz 18 (Simultaner Unbeschränktheitssatz). Sei Hein Überdeckungsgraph eines elementaren Systemnetzes N. Für jeden Knoten M von H ist W M unbeschränkt. Zum Beweis sei M ein Knoten von H und sei i E N. Zu zeigen: Es gibt eine erreichbare Markierung Mi von N mit Mi(q) ;:> i für alle q E WM. Den Beweis führen wir induktiv über die Mächtigkeit von
WM: Falls WM leer ist, ist die Behauptung trivial. Anderenfalls gilt offenbar für jeden Pfeil M, --'--, M 2 von H: WM, C;; WM,. Da zudem die Anfangsmarkierung von N keinen Platz mit W markiert, hat H einen Weg der Form M' ~ ... ~ M mit
WM'
= W M undwMII
~
WM',
für jeden Schritt MI! ~ M'.
Dann existiert ein Weg der Form L ~ ~ M' in H mit L :s; M' und W L ~ W M'. Zur Konstruktion von Mi nehmen wir nach Induktionsannahme eine erreichbare Markierung L' mit L'(p) = i + (i + n) . m + n für p E WL und L'(p) ~ L(p), sonst. Ausgehend von L' trete nun die Transitionssequenz U l, . . . .v-, insgesamt i + n mal ein, gefolgt
von t 1 , . . . ,tn . Jeder ui-Schritt reduziert die Markenzahl jedes wL-Platzes um höchstens 1. Jede U l , . .. , um-Folge erhöht die Markenzahl jedes wMI\wL-Platzes um mindestens 1. Jeder t i Schritt reduziert die Markenzahl jedes wM;-Platzes um höchstens 1. Deshalb hat die resultierende Markierung die für MI geforderten Eigenschaften.
14.8
Tote Transitionen
Eine Transition t ist tot, wenn keine erreichbare Markierung t aktiviert. Leicht beweist man folgenden Satz: Satz 19 (Satz zu toten Transitionen). Sei Hein Überdeckungsgraph eines elementaren Systemnetzes N. Eine Transition t ist in N genau dann tot, wenn H keine t-beschriJtete Kante hat.
14.9
Überdeckungsgraphen allgemeiner Systemnetze
Auch für ein allgemeines Systemnetz N kann man nach dem Verfahren in 14.4 Überdeckungsgraphen konstruieren. Die Ordnung auf Multimengen ist schon in Abschnitt 2.3 eingeführt worden. Alles andere geht analog. Insbesondere gelten auch die in den Abschnitten 14.5 - 14.8 beschriebenen Eigenschaften für allgemeine Systemnetze.
Aufgaben 1. Konstruieren Sie zwei verschiedene elementare Systernnetze mit gleichen Überdeckungsgraphen. 2. Im Beweis von Satz 16 ist folgende Teilaufgabe übrig geblieben: Sei P eine endliche Menge und sei MoM j ... eine Sequenz von Abbildungen Mi : P --+ N (i = 0, 1, ...). Zeigen Sie: Es gibt eine streng aufsteigende Sequenz no < n j < ... von Indizes, so dass MTI{) < M n 1 < Wir empfehlen Induktion über die Mächtigkeit von P. Für IPI = 1 und für den Induktionsschritt empfehlen wir die induktive Konstruktion der Indizes no, n i ,
14
3. Konstruieren Sie elementare Systemnetze N mit folgenden Eigenschaften:
a) N ist blockierungsfrei und nicht lebendig. b) N ist unbeschränkt und reversibel.
* c) * d)
N ist lebendig, beschränkt und nicht reversibel. N ist lebendig (also insbesondere blockierungsfrei) und reversibel, und für die Anfangsmarkierung Mo gilt: Ergänzt man Mo um eine zusätzliche Marke auf einem der Plätze von N, so ist das Netz mit dieser neuen Anfangsmarkierung nicht mehr blockierungsfrei.
4. Zeigen Sie für jedes elementare Systemnetz N: a) Wenn N blockierungsfrei ist, terminiert N nicht. b) Wenn N lebendig ist, ist N blockierungsfrei. c) N ist lebendig gdw. es für jede erreichbare Markieruug von N, genommen als Anfangsmarkierung, keine tote Transition gibt. d) N ist beschränkt gdw. nur endlich viele Markieruugen in N erreichbar sind. e) Wenn N beschränkt ist, liefert die Konstruktion des Überdeckungsgraphen den Markierungsgraphen von N.
Zum Weiterlesen Schon 1969 haben Karp und Miller in [39] die Idee des Überdeckungsgraphen vorgestellt. Seither zirkulieren unterschiedliche Fassungen. Sie unterscheiden sich in der Einfachheit des Verständnisses, ihrer Größe, der Geschwindigkeit ihrer Bereclmung und ihrer Zweckmäßigkeit für spezielle Netzklassen. Finkel zeigt in [25], wie man minimale Überdeckuugsgraphen konstruiert. Auf der Basis klassischer Verfahren des Model Checking gewinnt Schmidt [72] viele der in einem einfachen Systernnetz N gültigen temporallogischen Formeln aus dem Überdeckungsgraphen von N.
Erreichbarkeit in elementaren Systemnetzen Zu den interessanten, aber auch schwierigsten Fragen zu elementaren Systemnetzen gehört die Erreichbarkeit einer frei gewählten Markierung M eines Systemnetzes N : Wie kann man entscheiden, ob eine Markierung M in einem elementaren Systemnetz N (von der Anfangsmarkierung Mo aus) erreichb ar ist? Wenn nur endlich viele Markierungen erreichbar sind, kann man sie alle konstruieren und prüfen, ob M dabei ist. Wenn M erreichbar ist, kann man auch einen unendlichen Markierungsgraphen schrittweise aufbauen und wird dabei irgendwann auf M treffen. Wenn in N unendlich viele Zustände erreichbar sind, aber M nicht dazugehört, hat man ein Problem, dies festzustellen. Dieses Problem ist aber lösbar: Man kann zu N und Meine endliche Menge K erreichb arer Markierungen konstruieren , so dass M genau dann erreichbar ist, wenn M in K liegt. Diese Menge ist allerdings ungeheuer groß und es hat lange gedauert, bis das Problem der Erreichbarkeit gelöst war. Wir diskutieren hier einige notwendige Bedingungen für die Erreichbarkeit und damit hinreichende Bedingungen für die Nichterreichbarkeit einer Markierung M. Zugleich fragen wir nach Kriterien zur Entscheidung, ob endlich oder unendiich viele Markierungen erreichbar sind. Wir erweitern dazu das linear-algebr aische Handwerkszeug um die Marki erung sgleichung und um Transitionsinvarianten . Auch der Überdeckungsgraph liefert Kriterien zur Erreichbarkeit von Markierunge n und zur Endlichkeit der Menge der erreichbaren Markierungen.
15
15.1
Folgerungen aus Platzinvarianten
Aus den Platzinvarianten eines elementaren Systemnetzes N kann man einige Auskünfte über die erreichbaren und die nichterreichbaren Markierungen M von N ableiten: Aus dem elementaren Platzinvariantensatz in Abschnitt 11.3 folgt unmittelbar für jede Markierung M von N: Wenn N eine Platzinvariante i hat mit i .M
a A
b
c
B
o ge:tlOflltJ f!..tl:f 'Of Pt Hll nva nanre. rrczoern Sind nur endhcn Ma tku'!! rLm~en
i . Mo,
ist M nicht erreichbar. Umgekehrt garantiert i . M ~ i . Mo allerdings nicht, dass M erreichbar wäre. Aus positiven Platzinvarianten, wie in Absclmitt 11.4 eingeführt, können wir mit dem positiven Invariantensatz aus Abschnitt 11.4 leicht schließen: Satz 20 (Endlichkeitssatz positiver Platzinvarianten). In einem Systemnetz N sind nur endlich viele Markierungen erreichbar, wenn jeder Platz von N eine positive Platzinvariante hat.
D
Viele
f
Die Umkehrung des Satzes gilt im Allgemeinen nicht.
errercncat
15.2
Die Markierungsgleichung
.s:
Für eine Folge Mo ~ M 1 M 2 zweier Schritte gilt mit der Vektordarstellung aus Abschnitt 11.1: M 2 ~ Mo + t + f. Für das Beispiel einer Folge t, M ea M M o ------+ 1 ------+ 2
t, ------+
MS
von Schritten gilt dann konsequenterweise
Ms
~
Mo
+ 21:1 + ~.
(1)
Hierbei nutzen wir aus, dass M; nicht von der Reihenfolge abhängt, in der die Transitionen eintreten, sondern nur von ihrer Häufigkeit. Für ein elementares Systemnetz N mit l Transitionen sei v ~ (0, ... ,0,1,0, ... ,0) ein Vektor der Länge I mit ,,1" an
der i-ten Stelle. Dann filtert das Produkt N . v die i-te Spalte aus N. Für den Schritt M --"-, MI gilt also MI~M+N·v .
Konsequenterweise kann (1) dargestellt werden als
M s = M o+ N · (2,1,0, ... ,0). Generell gilt für jede Schrittfolge
von einer Markierung M zu einer Markierung M': Wenn t i in o genau ai mal vorkommt (i = 1, . .. ,I ), löst der Vektor (l, = (a l, . .. ,al) das Gleichungssystem
MI
~
M
+N
Der Vektor (l, ist der Zählvektor von
(7
A~C
B~D b
0-:
. ;r:. (7.
(2)
AB ~ BC ~AD ~ CD
Zählvektor: (2,1)
Als Lösung von (2) be-
trachten wir vernünftigerweise nur Vektoren
{f
=
(a1, . .. ,al)
mit natürlichen Zahlen ai' Das Gleichungssystem (2) wird üblicherweise in der Form N·x=MI~M
(3)
notiert und als Markierungsgleichung fur M und MI bezeichnet. Aus seiner Konstruktion folgt sofort
N~B b
A •
C
Satz 21 (Satz zur Markierungsgleichung). Sei N ein elementares Systemnetz mit einer Schrittfolge o von einer Marlderung M zu einer Markierung M', Der Zählvektor von o löst die
Q=
Markierungsgleichung für M und MI.
Keine Schaltfolge M --+ ... --+ MI
Die Umkehrung gilt nicht: Nicht jede Lösung (l, der Markierungsgleichung (3) ist einZählvektor einer Schrittfolge. von M nach MI. Wenn man allerdings - bildlich gesprochen - Marken "leihen" kann, ist jede Lösung der Markierungsgleichung der Zahl vektor einer Schrittfolge:
Mi"L
Sei M =def A und MI =def D .
(l,l)löst ll- x
=
Mi
hatQ als Zählvektor.
Satz 22 (Satz zur Realisierbarkeit). Sei N ein elementares Sys-
temnetz mit Markierungen Mund M' und einer wsung {f der Markierungsgleichung (3). Dann gibt es eine Markierung L von N und eine Schrittfolge (7 von M + L nach MI + L, mit (l, als Zählvektor von (7.
M
~
C gilt
a
b
+ L ---t B ---t MI + L.
~ Mo .
0
15
Zum Beweis kann man L so groß wählen, dass alle Transitionen in 0' unabhängig voneinander eintreten können. Das "Ausleihen" von Marken ist nur nötig, wenn das Netz N einen Zyklus hat, also eine Kette von Kanten sich zu einem kreis schließt. Andernfalls ist N azyklisch. Jede Lösung von (3) ist dann der Zählvektor einer Schrittfolge von M nach MI:
Satz 23 (azyklischer Realisierungssatz). Sei N ein azyklisches elementares Systemnetz; seinen Mund M' Markierungen von N und sei g, eine Lösung der Markierungsgleichungjür Mund MI. Dann ist g, der Zahlvektor einer Schrittfolge von M nach MI. Den Beweis kann man induktiv über die Summe der Komponenten von g führen. Die in N "vorderen" Transitionen sind in M aktiviert.
Aus dem Satz zur Markierungsgleichung folgt sofort: Wenn (3) keine Lösung hat, ist MI von M aus nicht erreichbar.
15.3
Transitionsin varianten
Interessant ist der Spezialfall M = MI in der Markierungsgleichung (3). Dann reduziert sich die Gleichung auf (4) --+
wobei die Länge des Vektors 0 = (0, ... ,0) der Zähl der Plätze von N entspricht. Analog zu (3) aus Abschnitt 11.3 ist eine Lösung m ~ (mI,' .. ,mk) von (4) mit natürlichzahligen Komponenten eine Transitionsinvariante von N. Aus (3) folgt sofort: Satz 24 (Transitionsinvariantensatz). Sei g eine Transitionsinvariante eines elementaren Systemnetzes N und sei 0' eine Schrittjolge von einer Markierung M nach einer Markierung M' mit aals Zählvektorvon 0'. Dann sind Mund M' identisch.
Umgekehrt gilt auch: Satz 25 (Reproduzierbarkeitssatz). Wenn ein elementares Systemnetz N keine Transitionsinvarianten hat, ist keine Markierung von sich selbst aus wieder erreichbar. Transitionsinvarianten sind in ganz unterschiedlichen Zusammenhängen interessant. Wenn N beschränkt ist (beispielsweise von einer positiven Platzinvariante überdeckt) und eine Transition t kommt in keiner Transitionsinvarianten mit einem
N ~C B
Eintrag> 0 vor, tritt t nur endlich oft ein. Die Häufigkeiten der Transitionen eines Szenarios (vgl. Ab-
schnitt 5.1) bilden eine Transitionsinvariante. Umgekehrt sind Transitionsinvarianten mit kleinen Komponenten Kandidaten
zur Konstruktion von Szenarien.
Aufgaben 1. Widerlegen Sie die Umkehrung des Satzes 21: Konstruieren Sie ein elementares Systemnetz N mit einer nicht erreichbaren Markierung MI, dessen Markierungsgleichung N . 1: = MI - Mo eine Lösung mit natürlichzahligen Komponenten hat. 2. Berechnen Sie drei realisierbare Transitionsinvarianten des Crosstalk-Algorithmus in Abb. 3.9. Hilfe: Überlegen Sie sich den Zusammenhang zwischen Transitionsinvarianten und Szenarien.
3. Beweisen Sie den azyklischen Realisierungssatz (Satz 23).
Zum Weiterlesen Die Frage nach der Erreichbarkeit einer Markierung M von einer Markierung Mo aus hat sich
schon Ende der 1960er Jahre gestellt. Keller hat sie als rein mathematisches Problem der Existenz einer Sequenz beliebig vieler Instanzen aus einer gegebenen endlichen Menge ganzzahliger Vektoren formuliert, deren Zwischensummen keine negativen Komponenten haben. Das
Problem ist deutlich komplizierter als man intuitiv zunächst annehmen mag. Erst 1980 hat Mayr das Problem gelöst [47], [48]. SeitIter wurden zahlreiche Varianten seines Beweises vorgelegt. Reutenauer stellt in [70] das Erreichbarkeitsproblem in den Kontext anderer matltematischer Fragestellungen. Der Beweis von Priese und Wimmerl in [61] ist vergleichsweise gut lesbar.
15
Als untere Grenze wächst der Speicherbedarf jedes Algorithmus für das Problem exponentiell in der Größe des Netzes. Damit ist klar, dass es kein generelles Verfahren zur Entscheidung der Erreichbarkeit gibt, das in der Praxis verwendbar wäre. Deshalb verwendet man andere Techniken, insbesondere Fallen, Co-Fallen, Platzinvarianten, Überdeckungsgraphen, Markierungsgleichungen und Transitionsinvarianten, um notwendige oder hinreichende Kriterien zur
Erreichbarkeit abzuleiten. Transitionsinvarianten hat Lautenbach in [43] eingeführt.
Ablaufeigenschaften Die Frage des vorigen Kapitels, ob es in einem Systemnetz N möglich ist, eine Markierung M zu erreichen, wird nun verschärft zur Frage, ob M aufj eden Fall erreicht wird.
16.1
Intuitive Fragestellung
Es geht hier um eine prinzipiell neue Fragestellung. Denn alle bisher (in den Kapiteln 9 - 15) behandelten Fragen betreffen letztlich Eigenschaften der einzelnen erreichbaren Markierungen, oder (wie die Reversibilität und die Lebendigkeit) einzelne Wege im Markierungs- oder Überdeckungsgraphen. Die nun anstehende Frage, ob eine Markierung M auf jeden Fall erreicht wird, betrifft hingegen alle Abl äufe von N zugleich. Ein typisches Beispiel ist im Crosstalk-Al gorithmus N von Abb. 3.7 die Rückkehr eines wartenden Prozesses in seinen Ruhezustand: In jedem sequentiellen Ablauf w = Mo ....::... M 1 .s, ... von N folgt jeder Markierung M i mit M i (wartend,) = 1 eine Markierung M iH , k :::: 0, mit MiH (ruhig,) = 1. Dies ist nicht ganz offensichtlich und es stellt sich die Frage, wie man es beweist. Generell stellen sich in vielen Systemen Fragen nach Eigenschaften mit einer ähnlichen Struktur: In der Glocken-Uhr (Abb. 4.9) schlägt die Glocke zu jeder vollen Stunde. Im Kindergartenspiel (Abb. 4.14) steht irgendwann nur noch ein einziges Kind auf der Spielfläche. Im System der speisenden Philosophen (Abb. 9.1) wird jede Gabel immer wieder verfügbar. Manche Eigenschaften sind aus elementaren Eigenschaften zusammengesetzt. Beispielsweise gibt der Keksautomat für je de eingeworfene Münze entweder eine Keksschachtel ab oder
, " ~ P t
x +1
DU
16 11
Kinder
13
eine Münze zurück. Wenn das Licht des Licht/Lüfter-Systems (Abb. 7.2) eingeschaltet wird, startet irgendwann der Lüfter oder das Licht wird wieder ausgeschaltet.
Gelegentlich ist es interessant, dass eine Eigenschaft nicht
gilt: Der Mutex-Algorithmus (Abb. 3.2) garantiert nicht, dass jeder wartende Prozess irgendwann kritischwird.Der CrosstalkAlgorithmus (Abb. 3.7) verlangt nicht, dass ein Prozess seinen Ruhezustand verlässt.
Eigenschaften der geschilderten Art sind Ablaufeigenschaften eines Systemnetzes.
16 .2
Der Begriff der Ablaufeigenschaft
Um Ablaufeigenschaften zu fassen, greifen wir auf Zustands-
eigenschaften (Kapitel 9) der Form p ;:> 1 für Plätze p zurück. Wie in Abschnitt 9.7 erläutert, schreiben wir für eine MarkierungM M fo p, (1) ("in M gilt p") wenn M(p) ;:> 1. Beispielsweise gilt lokal, in der Anfangsmarkierung Mo des wechselseitigen Ausschlusses
in Abb. 3.2. Als aussagenlogische Kombination gilt in Mo beispielsweise auch
lokal, !I Schlüssel. Technisch konstruiert man eine Ablaujeigenschaft aus zwei Zustandseigenschaften e und f von N und schreibt e
e-+
f
(2)
("e führt zu f'). Für e e-+ f fragt man nun nicht nach der Gültigkeit in einer einzelnen Markierung M, sondern in einem
sequentiellen Ablauf o = Mo ~ M 1
.z:
von N. Die
Eigenschaft (2) gilt in (7 , wenn für jeden Index i gilt: Falls Mi
fo e, gilt M j fo f
(3)
für ein j ;:> i. Die Eigenschaft (3) gilt in einem Systemnetz N genau dann, wenn (3) injedem vollständigen sequentiellen Ablauf (7 von N gilt. Wir schreiben dafür:
N Fee->f.
(4)
Als technisches Beispiel gilt A e-> E im elementaren Systemnetz in Abb. 16.1: Diese Eigenschaft gilt, weil jede erreichbare Markierung M mit M F A auch C oder 0 markiert.
A -3undA
C
AOO ildur.q 16 '1 De menteres Systemnetz \ mt N F A --< E
Ein typisches Beispiel ist die Ablaufeigenschaft wartend,
f-----+
ruhiq,
für den Crosstalk-Algorithmus. Sie beschreibt die in Abschnitt 16.1 geschilderte Rückkehr des Algorithmus in seinen Ruhezustand. Die ebenfalls in Abschnitt 16.1 geschilderte Ablaufeigenschaft des Licht/Lüfter-Systems lautet dann Licht an
e->
·'.(":\_0"'"'" .
.chalten
~
Lichtan
I~Uft ......:
""oe
steht
Lüfterstortet
(Lüfter läuft V Licht aus).
Häufig soll ausgedrückt werden, dass von jeder erreichbaren Markierung M aus eine Markierung M' mit einer Eigenschaft f erreicht wird . Beispielsweise wird von jeder erreichbaren Markierung des Crosstalk-Algorithmus der Platz ruhig: erreicht. Um das als Eigenschaft der Form (2) auszudrücken, brauchen wir eine Zustandseigenschaft e, die in jeder erreichbaren Markierung gilt. In der logischen Begriffswelt wählen wir dafür natürlich e = true. Für den Crosstalk-Algorithmus gilt also true
f-----+
ruhigr_
Bisher haben wir Ablaufeigenschaften elementarer Systemnetze behandelt. Ablaufeigenschaften allgemeiner Systemnetze kann man ganz analog formulieren. Der einzige Unterschied
16
besteht in der Beschreibung einzelner Marken u auf einem Platz p als aussagenlogische Atome, in Analogie zu (1). Wie in Abschnitt 9.7 erläutert, schreiben wir dafür p. u. Mit dieser Notation formulieren wir beispielsweise die Rückgabe der linken und rechten Gabel jedes essenden Philosophen im Systemnetz der Abb. 9.1 als
essend.a
e-+
(vertügbar.l(a)!I verfügbar.r(a)).
Der Keksautomat aus Abb. 1.11 gibt für jede eingeworfene Münze entweder eine Keksschachtel ab oder er gibt die Münze zurück. Um das zu formulieren, müssen wir das Modell um einen Rückgabeschlitz ergänzen, wie in Abb. 16.2. Dann gilt (mit den Notationen von Abschnitt 9.7): Einwurtschlitz.®
e-+
Entnahmefach.[jJ V Rückgabeschlitz.®
Speicher Münze einwerfen
,
®
Einwurfschlitz
®
Entnahmefach
®
® Rückgabeschlitz
Münze zurück
Einwurf möglich
x
x-1
•
kein Signal
®
Zähler 5
Kasse
Für die Glocken-Uhr in Abb. 4.10 gilt offensichtlich tr-ue an und für das Kindergartenspiel in Abb. 4.13 gilt true I Kinder] = 1.
16.3
e-+ e-+
Die Ableseregel
In Abschnitt 16.2 wurde die Gültigkeit einer Ablaufeigenschaft in einem Systenmetz N über die Menge aller vollständigen
sequentiellen Abl äufe von N definiert. Dabei kann N unend lich viele solche Abläufe haben, und jeder kann unendli ch lang sein. Um zu zeigen, dass in einem Systemnetz N eine Abl aufeigenschaft e ~ J gilt, kann man natürlich nicht je den der Abl äufe ein zeln danach untersuchen, ob in iJun e ~ J gilt. Man kann aber einfache gültige AbJaufeigenschaften unmittelbar aus der statisc hen Struktur eine s Systemnetzes ablesen und komplexe Eigenschaften aus abgelesenen ableiten . ( t)
(2) A
l
~ ~x~~~
B
----0----0---0--~ A ~B
c
0
AC ~ B D
(3)
(4)
- ~-- ~
-- - ~ - -. c
u
A ~B V
0
0
16
(5) A
l
B
-- --0----0---0-- ~
-- --Q--?:J---Q--- ~ ___ ~ u 0
AC >-+ BC v D AC ~ BC, falls A ~
~
E
Abbildung 16 3 " er ':I rukturen e nes Netzes !I und In N gut ge
Aoiaufelgeoscha"en
Abbildung 16.3 zeigt fünf Beispiele kleiner Teilnetze . Jedes ist so zu verstehen, dass es über die gestrichelten Pfeile in ein größeres Systemnetz N eingebettet ist. N hat dann die
dem Teilnetz zugeordnete Eigenschaft (zur Notation vgl. (25) aus Abschuitt 9.7). Das sei für den Fall genauer erläutert, dass das Teilnetz (1) in N vorkommt. Sei wein vollständiger Ablauf von N und sei M eine Markierung von w mit einer Marke auf A. Da M die Transition t aktiviert und im Nachbereich A· von A keine weiteren Transitionen liegen, tritt t irgendwann in wein. Damit wird in weine Markierung M' erreicht mit einer Marke auf B. Deshalb gilt A e-+ B in N. Ganz analog dazu komme das Teilnetz (4) in N vor und in einer Markierung M von w sei A markiert. Damit aktiviert M die Transition 1. Nun kann im Verlauf von w zusätzlich auch C eine Marke erhalten. Dann tritt ggf. nicht t sondern u ein. Wir können also nur
schlussfolgern, dass B oder 0 eine Marke erhalten. Die Liste der Beispiele gültiger Ablaufeigenschaften aus Abb. 16.3 ist keineswegs vollständig. Den allgemeinen Fall elementarer Systemnetze beschreibt eine Ableseregel für Ablaufeigenschaften. Für ein elementares Systemnetz N mit der Platzmenge P generiert diese Regel in N gültige Eigenschaften der Form
mit Q, k ... , In C; P. Mit (25) aus Abschuitt 9.7 steht dabei eine Menge {P I, ... ,Pk} von Plätzen für den logischen Ausdruck PI /\ ... /\ p». Zur Formulierung der Ableseregel definieren wir den Effekt einer Transition t von N auf eine Menge Q C; P als die Menge der Marken, die bei Eintritt von t von Q übrig bleiben oder neu entstehen:
efJ(Q,t) =d,,(Q\'t) ut'. Abbildung 16.4 zeigt Beispiele für den Effekt einer Transi-
tion auf verschiedene Platzmengen. Mit Platzmengen Q
~
"t
und R n 't = 0 gilt offenbar efJ(Q U R, t) = Ru t'. Dies alles führt zu folgender Ableseregel für Ablaufeigenschaften eines Systernnetzes N, bei einer gegebenen Menge Q von Plätzen von N:
1. Anwendbarkeit testen: Hat N eine heiße Transition t mit 't C; Q? Wenn nicht, ist die Regel nicht anwendbar.
--- ~
---« D
--- 0-- ...
eJf( A,t) = eJf (AB, t) = C eJf( D, t) = eJf(AD, t) = eJf(ABD, t) = CD
2. Transitionen ausschließen : Wähle T = {t" . .. , tn} eJf(Q , t , ) V .. . V
eJf(Q , tn). Als Beispiel beweisen wir ACe-> BC für (5) in Abb 16.3 unter der Annahme A ---> , E. 1. t ist eine heiße Transition mit ' t = A. Deshalb ist die Regel
anwendbar. 2. (AC)' = {t, u] . Mit der Annalune A ---> , E gilt A ---> , ' u. Wir können also u ausschließen und wählen T = { t }. 3. Da eJf( AC,t ) = BC folgt die Behauptung. Dass jede so abgeleitete Eigenschaft in N tatsäch lich gilt. belegt der folgende Satz: Salz 26 (Ablesesatz für Ablaufeigenschaften ), Sei N ein elementares Systemnetz . sei Q eine Teilmenge seiner Pl ätze, so dass Q mindestens eine heiße Transition von N akti viert. Sei T = {t" .. . , tn} 2 und jede Transition t E 'p gilt:
t'
=
{p},
(1)
Man hätte diese Sorte von Netzen auch ganz anders motivieren können: Die Synchronisation von Marken an einer Transition ist deterministisch; die zum Eintritt einer Transition nötigen Marken sammeln sich und gehen nicht wieder verloren. Für jede Transition t von N mit I'tl ;:> 2 undjeden Platz p E 't verlangen wir nun: p' = {t}
(2)
Tatsächlich beschreiben die beiden Forderungen (1) und (2) die gleichen Netze! Eine dritte, symmetrische Forderung beschreibt wiederum die gleichen Netze: Für jede Kante p -+ t von N gilt: 't ~ {p} oderp' ~ {t}, (3) r-rcru oe i ce zuglf!\Ch
Pfehe
Die Variante des Keksautomaten aus Abb. 6.2 ist ein FreeChoice-Netz.
17.2
c
Isl fur kerne .Anlim!J:;ma tkie'Ung lenendl q:
DIE- Co-rBI.e- {A,e } emnetr uoemau pt veine F alte
Das FalieICo-Falle-Theorem für Free-Choice-Netze
In Kapitel 10 haben wir für elementare Systemnetze mit der Falle/Co-Falle-Eigenschaft gezeigt, dass jede erreichbare Markierung mindestens eine Transition aktiviert. Für Free-ChoiceNetze mit der Falle/Co-Falle-Eigenschaft gilt ein wesentlich stärkerer Satz: Alle Transitionen können immer wieder eintreten (das Netz ist lebendig nach Kapitel 10).
Satz 27 (Falle/Co-Falle-Satz für Free-Choice-Netze). Sei N ein Free-Choice-Netz: N ist genau dann lebendig, wenn N die FallelCo-Falle-EigenschaJt hat.
Der Beweis dieses Satzes ist nicht einfach. Aus diesem Satz folgt sofort: Ergänzt man die Anfangsmarkierung eines lebendigen Free-Choice-Netzes um weitere Marken, entsteht wiederum ein lebendiges Netz. Für allgemeine elementare Systemnetze gilt das nicht. Eine Reihe von Eigenschaften von FreeChoice-Netzen ist vergleichsweise effizient entscheidbar.
173
Cluster
Ein Cluster ist ein besonders einfach gestaltetes Teilnetz. Es stellt sich heraus, dass Free-Choice-Netze aus solchen Clustern bestehen. Ein Cluster eines Netzes N ist eine Teilmenge seiner Plätze und Transitionen. Es gibt zwei Sorten:
r~~,J :
1. Sorte: Für einen Platz P mit p' = {t l, ... ,t n } (n ;:> 0) enthalte der Vorbereich 'ti jeder Transition t i (i = 1, . .. , n) nur p. l Dann ist {p, t l , . .. , t n } ein Free-Choice-
Cluster von N: Eine Marke auf dem Platz p hat die "freie Auswahl" zwischen den Transitionen t., 2. Sorte: Für eine Transition t mit 't = {PI, ... ,Pm} (m;:> 0) enthalte der Nachbereich pj' jedes Platzesp, (j = 1, ... , m) nur t. Dann ist {t,p" ... , Pm} ein Deterministic-SynchronirationCluster von N. Die Transition t tritt ein, indem sie "so lange wartet", bis die Plätze P I, ... ,Pm alle markiert sind. Die besonders einfache Struktur {p, t} mit p' = {t} und 't = {p} ist offenbar ein Cluster beider Sorten. In Abb. 17.1 sind {B,a,b} und{C,c,d} Free-Choice-Cluster. [e, D, E} ist ein Deterministic-Synchronization-Cluster und {A, J} ist ein Cluster beider Sorten. Die Cluster eines Free-Choice-Netzes N partitionieren N: Satz 28 (Clustersatz für Free-Choice-Netze). Ein elementares Systemnetz N ist genau dann ein Free-Choice-Netz, wennjeder Platz undjede Transition von N in genau einem Cluster von N ZieRt.
ln
= 0 beschreibt den Fall p. =
0
p
I
)
1~ i l
i
:
P1
t
•
Pm
i
i
i
17
A
p~u q
~t
Der Beweis verwendet die Charakterisierung (3) von FreeChoice-Netzen: Wenn N Free-Choice ist, gibt es damit für jede Kante (p,t) zwei Möglichkeiten: Falls 't ~ {p} gibt es ein Free-Choice-Cluster (p"", t",,). Andernfalls gilt p' ~ {t} und es gibt ein Deterministic-Synchronization-Cluster (t, . . . , p, ...). Wenn N nicht Free-Choice ist, gibt es eine Kante (p,t), eine Transition u und einen Platz q mit t, u E p. und p , q E "t: Damit liegen p und t in überhaupt keinem Cluster.
17.4
Das Rang-Theorem
Ein adäquates Netzmodell N eines realen Systems ist häufig lebendig (jede Transition kann immer wieder eintreten) und beschränkt (nirgends sammeln sich unbeschränkt viele Marken). Für Free-Choice-Netze N sind Lebendigkeit und Beschränktheit im Wesentlichen charalcterisierbar mit einem Zusammenhang zwischen den Clustern und der Matrix von N: Der Rang
der Matrix N von N ist um 1 geringer als die Zahl der Cluster von N. Dabei ist der Rang von N wie üblich die Anzahllinearer unabhängiger Spalten von N. Damit gilt folgender Satz: Satz 29 (Rangsatz für Free-Choice-Netze). Ein Free-ChoiceNetz N hat genau dann eine Anfangsmarkierung mit der N lebendig und beschränkt ist. wenn gilt:
a) N hängt zusammen (jeder Knoten ist mit jedem anderen
über eine Kette von Kanten verbunden) und enthält mindestens einen Platz und eine Transition, b) N hat eine positive Platzinvariante i, deren Träger alle
Plätze von N enthält, c) N hat eine Transitionsinvariante j, deren Träger alle Transitionen von N enthält,
d) Wenn der Rang von N den Wert k hat, besitzt N genau k+ 1 Cluster. Der nicht-triviale Beweis steht gut lesbar in [15]. Das Free-Choice-Netz in Abb. 17.1 erfüllt die Bedingungen
a), b) und e). Seine Matrix hat allerdings den Raug 6, verletzt also mit seinen 4 Clustern die Bedingungen d).
Aufgaben 1. Konstruieren Sie die Cluster des Free-Choice-Netzes in Abb. 17.2. Um welche Sorte von
Clustern handelt es sich jeweils?
c
B
D
E Abb ildung 17.3 Free-Chcice- letz
2. Zeigen Sie: Mit einer Marke auf S, 0 oder E als Anfaugsmarkierung ist das Free-ChoiceNetz in Abb. 17.3 lebendig. 3. Verschärfen Sie die Antwort auf Aufgabe 3b) in Kapitel 9. 4. Überprüfen Sie mit Hilfe des Raugsatzes, ob das Free-Choice-Netz in Abb. 17.4 eine Anfaugsmarkierung hat, mit der es lebendig und beschränkt ist.
17
A
9
.Ä.bblkk Jn9 17 4 ' Free-Cbo ce-t l etz
Zum Weiterlesen Schon sehr früh, 1972, hat Michael H. T. Hack [33] Free-Choice-Netze definiert und praktisch motiviert als Schemata zum Zusammenbau und zur Zerlegung komponierter Objekte. Zudem hat er die grundlegenden Begriffe der Falle und der Co-Falle für Systemnetze gebildet und mit ihnen die lebendigen und sicheren Free-Choice-Netze strukturell charakterisiert (Kapitel 17 Satz 28). Die linear algebraischen Zusammenhänge mit dem Rang-Theorem stammen aus den 1980er Jahren. Desel und Esparza haben in [15] die Theorie der Free-Choice-Netze zusammengestellt.
Analyse der markierten Graphen Wenn man die Free-Choice-Struktur einschränkt und gar keine Auswahl mehr zulässt, erhält man die markierten Graphen. Diese Einschr änkung vereinfacht die Analyse erheblich. Insbesondere kann jeder markierte Graph lebendi g und I -beschränkt markiert werden.
18 .1
Markierte Graphen
Ein elementares Systemnetz N ist ein markierter Graph . falls für jede n Platz p von N gilt:
I'pl = Ip'l = 1. Abbildung 18.1 zeigt einen markierten Graphen. G
B
F
D
H
18
Aboi dung 18 1 Markie er Graph
Das entscheidende Strukturmerkmal eines markierten Graphen N sind seine Wege und Kreise. Ein Weg von N ist eine Sequenz w = PI . . . Pn paarweise verschiedener Plätze mit Pi-
= · PH I für (i
w ist sogar ein Kreis. wenn
=
1, ... , n - 1)
Der markierte Graph aus Abb. 18.1 hat acht Kreise: AB, CD, EF, ACDB, ACEFDB, CEFD, BGFD, HFD. Man sieht leicht, dass jeder Kreis eine positive Platzinvariante ist. Deshalb gilt: Satz 30 (Kreissatz markierter Graphen). Sei N ein markierter Graph und sei P1 ... Pn ein Kreis von N mit anfangs zusammen kMarken. Dann gilt in N die Gleichung PI
18.2
+ ... +Pn =
k.
Lebendigkeit markierter Graphen
In Abschnitt 14.1 haben wir die Lebendigkeit eines Systemnetzes N definiert: N ist lebendig, wenn für jede Transition t und jede erreichbare Markierung M von N gilt: Von Maus ist eine Markierung M' erreichbar, die t aktiviert. Für markierte Graphen ist diese Eigenschaft aus der Struktur heraus entscheidbar: Satz 31 (Lebendigkeitssatz markierter Graphen). Ein markierter Graph N ist genau dann lebendig. wenn jeder Kreis von N mindestens einen anjangsmarkierten Platz hat. Die Notwendigkeit sieht man sofort: Ohne einen anfangsmarkierten Platz ist ein Kreis w = P1, ... .p-, in jeder erreichbaren Markierung unmarkiert, weil weine Platzinvariante ist. Damit kann keine Transition inp: jemals eintreten. Umgekehrt sei M eine erreichbare Markierung und sei t eine Transition von N. Da nach Annahme jeder Kreis von N mindestens einen anfangsmarkierten Platz hat, ist nach dem obigen Satz auch unter M jeder Kreis markiert. Dann gibt es einen Weg P1, ... .p-, mit P~ = t, so dass die Transition t! in ·P1 unter M aktiviert ist. Der Schritt M
.s:
MI! reduziert die Länge dieses Weges. Per Induktion über die Länge solcher Wege wird schließlich eine Markierung erreicht, die t aktiviert. Jeder der acht Kreise des Systemnetzes N in Abb. 18.1 enthält mindestens einen anfangsmarkierten Platz. Damit ist N lebendig.
18.3
1-beschränkte markierte Graphen
Absclmitt 3.5 zeigt die wichtige Rolle I-beschränkter Systemnetze. Lebendige I-beschränkte markierte Graphen sind einfach charakterisierbar : Satz 32 (Beschränkter Lebendigkeitssatz markierter Graphen). Ein lebendiger markierter Grap h N ist gellOu dann l -beschränkt, wenn j eder PlaTZ \ '011 N auf einem Kreis liegt, der anf angs ins gesaml llltT eine M arke hat. Die Notwendigkeit zeigen wir indirekt: Sei p ein Platz. der ausschließlich zu mehrfach anfangsmarkierten Kreisen gehört. Da N lebendig ist. ist eine Markierung M erreichbar, die die Transition in p' aktiviert und damit p selbst markiert. Entfernen wir nun vorübergehend diese Marke aus p. Mit der verbleibenden Markierung M ' bleibt N lebendig, da jeder Kreis markiert bleibt. Deshalb ist von M' aus wiederum eine M arkierung M I! erreichbar. die p markiert. Mit der vorübergehend entfernten M arkierung hat p nunmehr zwei Marken. Die umgekehrte Richtung folgt sofort aus Satz 30. Mit Ausnahme der drei Kreise ACDB, CEFD und ACEFDB enthält jeder Kreis des Systenmetzes N aus Abb. 18.1 genau einen anfangsmarkierten Platz. Jeder Platz von N liegt auf einem dieser Kreise. Damit ist N auch I -beschränkt.
18.4
Lebendigkeit 1-beschränkter markierter Graphen
Es stellt sich nun die Frage. welche markierten Graphen zugleich lebendig und I-beschränkt sind. Die Antwort mag überraschen: Jeden streng zusammenhängenden markierten Graphen N kann man derart anfangsmarkieren. Dabei heißt N streng zusammenh ängend, wenn vonjedem Platz zu jedem anderen Platz ein Weg führt.
18
Satz 33 (Satz zur Anfangsmarkierbarkeit markierter Graphen). Zu jedem streng zusammenhängenden markierten Graphen N gibt es eine Markierung M. so dass N mit der Anfangsmarkterung M zugleich lebendig und i-beschränkt ist. Zum Beweis beginne man mit einer Markierung Mo, die jeden Kreis mit mindestens einer Marke markiert: Eine einfache Aufgabe. Liegt nun ein Platz auf ausschließlich mehrfach markierten Kreisen, entfernt man einzelne Marken nach dem Verfahren im Beweis von Satz 32 bis ein Kreis mit nur einer Marke übrig bleibt. Der Graph in Abb. 18.1 ist so markiert.
Aufgaben 1. Überprüfen Sie die markierten Graphen der folgenden Abbildungen mit Hilfe der Sätze 31 und 32 auf Lebendigkeit und I-Beschränktheit: a) Abbildung 18.2 a
c
A •
b
c
o
Atlbildllng 18 2 Lebendiges lind t- bescm cnktes Systemn etz
b) Abbildung 18.1 mit der Anfangsmarkierung Mo = ADF. 2. Sei N ein markierter Graph, seien t und u Transitionen, und sei p ein Platz von N. Die Transition t ist über p mit u verbunden, wenn 'p = {t} und p' = {u} .
N hängt schwach zusammen, wenn es für alle Transitionen t und u eine Sequenz t o, . . . ,tn von Transitionen gibt, so dass t o = t, t n = u, und für i 1, . .. ,n gilt: t i - 1 ist mit ti verbunden, oder t; ist mit t i _ 1 verbunden. Zeigen Sie, dass für jede Transitionsinvariante m = (m1 ' ,mk) eines schwach zusammenhängenden markierten Graphen gilt: m 1 = m2 = .. . = mk.
Zum Weiterlesen Markierte Graphen hat Genrich in [27] eingeführt. Besonders in den 1970er Jahren ist eine reichhaltig ausgebaute Theorie markierter Graphen entstanden.
Das Zollslationenproblem Eine überraschende Anwendung für Satz 33 ist die Lösung des Zollstationenproblems [26]: Gegeben sei eine Stadt, die ausschließlich Einbahnstraßen hat. Sie ist so angelegt, dass ein Fahrer von jeder Straße aus jede andere erreichen kann. Auf einigen Straßen sollen nun Zollstationen eingerichtet werden, so dassjeder Fahrer auf mindestenseine Zollstation trifft, wenner einen Rundkurs fährt, derihn zu seinerAnfangsstraße zurückbringt. Zugleich soll es für jede Straße eine .Sonntagsrunde" geben: Auf einem solchen Rundkurs trifft der Fahrer genau eine Zollstation. Das Zollstationenproblem geht der Frage nach, ob in jeder solcher Stadt Zollstationen so verteilt werden können, dass diese beiden Bedingungen erfüllt sind. Zur Lösung des Problems modelliert man jede Kreuzung t als eine Transition, jede Straße von einer Kreuzung t zu einer Kreuzung u als Platz p mit Pfeilen in Fahrtrichtung, undjede Zollstation auf einer Straße p als Marke auf dem Platz p.
0-----0--0 t
p
"
Nun verteilt man zunächst einmal "genügend" Zollstationen, so dass jeder Rundkurs mindestens eine Zollstation hat. Falls dabei eine Straße p nur auf Rundkursen liegt, die alle zwei oder mehrZollstationen haben, verschiebt manZollstationen über Kreuzungen hinweg, gemäß der Schaltregel von Transitionen, in Analogie zum Beweis von Satz 33. Irgendwann gelangen zwei Zollstationen nach p; eine davon wird entfernt. Dieses Verfahren wiederholt man so oft, bis p auf mindestens einem Rundkurs liegt, der nureine Zollstationhat. Damit hat man eine Sonntagsrunde für p gewonnen. Interessant an diesem Beispiel ist, dass eine an sich statische Fragestellung mit einem dynamischen Verfahren gelöst wird.
18
Wohlgeformte Systemnetze Viele reale Systeme besitzen einen speziellen Zustand, in dem jede einze lne Instanz des System s endet. D as System kann dannneu instanziiert werden. Ein entsprechendes Systemnetz ze ichnet eine erreichbare
M arkierung als Zielmarkierung aus. Zudem erfüllt es drei intuitiv nahe liegende Bedingungen: • Von jeder erreichbaren Markierung aus kann die Zielmarkierun g erreicht werden. • Am Ende einer Instanz bleiben keine zwischendurch produzierten Marken übrig.
• Jede Transition kanneintreten. Wir werden sehen, wie sich diese drei Bedingungen recht einfach gem einsam überprüfen lassen.
19 1
Beispiel: Modelle von Geschä fIsprozesse n
Ein Geschäftsprozess ist ein standardisiertes Verfahren, u m organisatorische Vorgänge zu re alis ieren, wie sie typischerwei se
in Verwaltungen auftreten. Ein Geschäftsprozess enthält Aktivitäten, die untereinander zusammenhängen. In einem PetrinetzModell eines Gesch äftsprozesses wird jede Akti vität als Transition modelliert. Das Petrinetz-Modell selbst ist ein wohlgeformtes Systemnetz. Abbildung 19.1 zeigt ein Petrinetz-Modcll des Geschäftsprozesses zur Erstellung eines Angebots. Seine Zielmarkierung hat eine Marke auf dem Platz stop .
19
Revi'''n venangen
Aooi dung 19 1 GeSChafiS!)fOZeSS ZJr Erste lung eines Ange bo:s
19.2
Wohlgeformte elementare System netze
Wir beschränken uns hier auf wohlgeformte elementare Systernnetze. Sei also N ein elementares Systemnetz und sei E eine frei gewählte erreichbare Markierung von N. Dann ist N mit der Zielmarkierung E wohlgeformt, wenn N folgende drei Eigenschaften hat: • Die Zielmarkierung E ist eindeutig: Keine Markierung der Form E+L ist erreichbar, wenn L mindestens einen Platz markiert. • N ist überdeckt: Zu jeder Transition t gibt es eine erreichbare Markierung, die t aktiviert. • N ist terminierbar: Von jeder erreichbaren Markierung M aus ist die Zielmarkierung erreichbar.
19,3
Entscheidung der Wohlgeformthelt
Um zu entscheiden, ob ein elementares Systernnetz N mit einer Anfangsmarkierung Mo und der Zielmarkierung E wohlgeformt ist, ergänzen wir N zu einem Netz N* und fragen nach der Lebendigkeit und Beschränktheit von N'. Im Einzelnen konstruieren wir eine neue Transition t E . Dazu bilden wir für jeden Platz p eine Kante (p, tEl mit dem Ge-
wicht E(p) (vgl. Abschnitt 6.2) und eine Kante (tE,p) mit dem Gewicht Mo(p). Kanten mit dem Gewicht 0 fallen weg. Indem man nun N um diese Transition t E erweitert, entsteht das Systernnetz N* . Das Systemnetz N in Abb. 19.1 hat als Zielmarkierung eine Marke auf stop. Also entsteht N* aus N mit einer zusätzlichen Transition t, so dass 't = {stop} und t' = {start}. Die beiden (nicht notierten) Kantengewichte haben den Wert 1. Mit den Begriffen der Lebendigkeit aus Abschnitt 14.1 Gede Transition kann immerwieder eintreten) und derBeschränktheit aus Abschnitt 14.1 (es gibt eine Zahl n, so dass M (p) e1l dafür ~r.;dg Ht: [ l." '\ u...dru cks nuttel. der dre i Fall-audien wi n l zu... : i tl l i~~ I1l;" i llf: neue' \11' " "lt.::l .\ lIill.\Sl.'lCd lll i k eiugcfühn \Vr.:l:hsr.:lscitlgcr \ u:-sd llu.. :-. I.' nur mit Faln tt') \ . 1 1.. II l: UCIII Ausdruck-mi ne ] m'ld~' l lierh. r n~' r ( ' Fl IP l ieh Sd llii" ..;e :I n..; da \ nal)..;e einer ~ lil l cdcr
Jd l il:rull ~'"
Lu:-,ulIg dc... S) IIIIH:...CplO le ins ~1IIt: 1 ..cq ucuucllcu Hcsc hrci )UII!!. A!!t' IlICll llcl/.\\crke 't."n~enJ::: noll hrnu üu vou S) . CITI Jlc L
Ic n
Wechselseitiger Ausschluss Der wechselseitige Ausschluss von Prozessen wurde schon in den 1960er Jahren als ein zentrales Problem der Organisation von Rechensystemen identifiziert. Es entsteht immer dann, wenn eine Ressource gelegentlich, aber jeweils exklusiv von mehreren Prozessen genutzt wird (beispielsweise ein Prozessor, ein Speicherbereich, ein Drucker, oder eine Kommunikationseinheit). So lange ein Prozess die Ressource nutzt, ist er in seinem kritischen Zustand. Eine Verabredung der Prozesse muss garantieren, dass sich niemals zwei Prozesse zugleich in ihren jeweiligen kritischen Zustand befinden. Wir stellen eine solche Verabredung für Prozesse vor, die nur über asynchrone Nachrichten miteinander kommunizieren können.
20.1
Das Problem
Mit dem Systemnetz in Abb. 3.2 haben wir bereits ein Modell kennengelemt, das den wechselseitigen Ausschluss zweier Prozesse l und r garantiert: Sie sind niemals zugleich in ihrem jeweiligen kritischen Bereich. Ein Mutex-Algorithmus garantiert zusätzlich, dass jeder Prozess, der in seinen kritischen Bereich möchte, irgendwann tatsächlich seinen kritischen Bereich erreicht. Um das zu präzisieren, betrachten wir noch einmal die Rolle der drei Zustände lokal, wartend und kritisch und der Schritte zwischen ihnen. Im Einzelnen: (1) Zustand lokal: Dies ist ein Zustand, in dem der Prozess auf seinen eigenen Daten arbeitet. (2) Schritt von lokal nach wartend: Ein Prozess dokumentiert mit diesem Schritt sein Interesse, die knappe Ressource zu nutzen. Diesen Schritt kann der Prozess jederzeit spontan ausführen. Ein Mutex-Algorithmus kann diesen Schritt
20
nicht beeinflussen. Ein Prozess ist zu diesem Schritt nicht verpflichtet; er kann für immer lokal bleiben. Deshalb ist a eine kalte Transition.
(3) Zustand wartend: In diesem Zustand erwartet der Prozess, dass der Mutex-Algorithmus ihm den Schritt nach kritisch ermöglicht. Der Algorithmus kann wartend in eirüge Zwischenzustände verfeinern. (4) Schritt von wartend nach kritisch: Ern Mutex-Algorithmus kann Vorbedingungen für diesen Schritt stellen, die einem Prozess den Schritt eine Zeit lang verwehren. Irgendwann einmal muss der Schritt jedoch persistent möglich sein: Der Mutex-Algorithmus muss den Schritt (oder seine Teilschritte) nicht nur für einige Zeitintervalle zulassen, sondem kontinuierlich, bis der Prozess kritisch erreicht hat. Zugleich kann der Mutex-Algorithmus darauf bauen, dass der Prozess den entsprechenden Schritt (oder die entsprechenden Teilschritte) auch ausführt. Wir werden sehen, dass der Algorithmus in Abb. 3.2 dies nicht garantiert. (5) Zustand kritisch: In diesem Zustand verwendet der Prozess die Ressource. (6) Schritt von kritisch nach lokal: Diesen Schritt kann der Prozess jederzeit spontan ausführen. Ein Mutex-Algorithmus kann diesen Schritt nicht beeinflussen. Ein Prozess ist zu diesem Schritt verpflichtet; er darf nicht immer kritisch bleiben.
20.2
Realisierbarkeil
Ein elementares Systemnetz, das einen Mutex-Algorithmus (d.h. die Forderungen (I )-{6) aus Abschnitt 20.1) realisiert, beschreibt jeden der drei lokalen Zustände jedes Prozesses vernünftigerweise mit einem I-beschränkten Platz. Mit (2) gibt es für jeden Prozess eine kalte Transition von lokal nach wartend. Mit (6) gibt es eine heiße Transition von kritisch nach lokal. Abb. 20.1 skizziert diese Zusammenhänge. Die "Wolke" kennzeichnet den Wirkungsbereich des Mutex-Algorithmus.
MUTEX
kri':isch
E.:
~al Abtildung 20 t 60 ge Komponenten emes
~\;1u:ex
AJgorithmus
Wir nehmen nun ein solches elementares Systemnet z N an und leiten einen Widerspruch ab. So zeigen wir, dass kein MutexAlgorithmus als elementares Systemnetz realisierbar ist. Abb. 20.2 zeigt einen vollständigen verteilten Ablauf des in Abb. 20.1 neu skizzierten Systemnetzes N . Der linke Prozess l (obere Zeile) wird dabei unendlich oft kritisch. der rechte Prozess r (untere Zeile ) bleibt immer lokal. (Für unsere Zwecke könnte r endlich oft kritisch werden und dann in lokal, bleiben). Dieser Ablauf erfüllt alle sechs Forderungen aus Abschnitt 20.1. Abb. 20.3 zeigt eine Ergänzung dieses Ablaufs: Der rechte Prozess macht einen Schritt nach wartend. Auf Grund der Forderung (2) ist dieser Schritt möglich. Dieser Ablauf ist ebenfalls vollständig. Allerdings verletzt er die Forderung (4). Damit ist N kein Mutex-Algorithmus. lokal/
AbOI dwo9 20 2 60 «ceepre er AbldLJ I emes
c=5>-D----E9-- --Abb IclJng 20.3: an nich- a zeptaber .Ablauf
Mul~x-A,jgorltflmws
kritisch
,"",
20 lOkal/
20.3
< d
Fairness-Annahmen
Mit Hilfe eines neuen Ausdrucksmittels konstruieren wir nun dennoch Algorithmen für den wechselseitigen Ausschluss. Dazu betrachten wir das System N aus Abb. 3.2 noch einmal genauer: N approximiert einen Mutex-Algorithmus A, indem jeder ••gemeinte" Ablauf von A auch ein Ablauf von N ist. Allerdings hat N auch weitere •••nicht gemeinte" Abläufe. beispielsweise (mit offensichtlicher Umbenennung der Plätze und Transitionen) den sequentiellen Ablauf ADE
.s, ADF
~ BDF
.s. CF --"-, ADF ~ BDF .s, .
Dieser Ablauf aktiviert die Transition e unendlich oft. ohne dass e jemals eintritt. e wird - intuitiv - "unfair" behandelt. Symmetrisch dazu sind alle Abläufe ••nicht gemeint'. die die Transition b unfair behandeln. Diese Beobachtung motiviert folgende Definition für einen sequentiellen Ablauf w = o t, S1 ------+ ~ . elementaren Systemnetzes N und uD ------+ ... emes eine Transition t von N: w ignoriert Fairness für t, wenn t von unendlich vielen Markierungen Si aktiviert wird, aber in w nur endlich oft vorkommt (nur für endlich viele Indizes i gilt: t = t i ) . w respektiert Fairness für t, wenn w Fairness für t nicht ignoriert. Ein verteilter Ablauf K von N respektiert Fairness für t. wenn jeder sequentielle Ablauf von K (wie in Abschnitt 4.1 beschrieben) Fairness von t respektiert. Um die Menge der Abläufe eines Systemnetzes N auf jene Abläufe zu beschränken, die Fairness für eine Transition t respektieren, wird in der graphischen Darstellung von N die Transition t mit ,,'P" beschriftet. Das Systemnetz N aus Abb. 3.2 beschreibt also einen korrekten Algorithmus für den wechselseitigen Ausschluss, wenn die beiden Transitionen bund e mit ,,'P" beschriftet sind. Ohne den Begriff des •.Implernentierbaren" formal zu fassen, erkennt man schnell, dass Fairness nicht implementierbar ist. Besonders anschaulich wird das mit der Beobachtung, dass Fairness nicht endlich appoximierbar ist: Jedes endliche Anfangsstück eines unfairen verteilten Ablaufs kann man zu einem fairen Ablauf fortsetzen. Ob man Fairness korrekt implementiert hat oder nicht, wäre erst ,,nach unendlich langer Zeit"
feststellbar. Die Annah me von Fairness für Transitionen von Systemnetzen erhöht also die Ausdrucksstärke der ModelIierungstechni k. Die Fairness-Forderung .D ie Trans ition t wird irgendwann bevorzugt" kann man allerdings "verschärft' implementieren mit "t wird sp ätestens nach k Möglichkeiten bevorzugt'. Ein entsprechen der Algorithmus steuert dabei den Fluss der Marken auf dem Vorbereich ' t von t. Für den linken Prozess betrifft das die Transition b mit den Plätzen B und D, für den rechten Prozess die Transition e mit den Plätzen F und D. Die Algorithmen beider Prozesse greifen beide auf den Platz D zu. Sie müssen sich deshalb auch untere inander synchronisieren . Wir suchen stattdessen nach einem Mutex-Algorithmus, dessen als fair angenommene Transitionen mit ihrem Vorbereich jeweils vollständig innerhalb der Prozesse liegen.
20.4
Mutex mit autonomer Fairness
Wir konstruieren einen Algorithmus mit einem Token, das aktuell immer einer der beiden Prozesse besitzt. Wer das Token hat, kann den Schritt von wartend nach kritisch unmittelbar durchführen. Wer das Token nicht hat, schickt von wa rtend aus zunächst eine Nachricht anseinenPartner, mitder Bitte um das Token. Soba ld der Partner das Token geschickt hat, geht der Prozess nach kritisch. Wer das Token hat und eine Bitte seines Partners um das Token bekommt, schickt irgendwann das Token an den Partner. Abbildung 20.4 zeigt den Algorithmus als Verfeinerung der " Wolke" in Abb. 20.1. Im gegebenen Anfangszustand hat der linke Prozess das Token (Marke auf verfüqbar.). Der linke Prozess kann deshalb unmittelbar in einem Schr itt von wartend, mit der Transition a nach kritisch, übergehen. Der rechte Prozess hat das Token nicht; er gelangt allerdings von warte nd, mit der Transition h nach aktiviert, und schickt dabei eine Nachricht an den linken Prozess ab (plat z anqetords rt.). Der linke Prozess kann diese Nachricht über seine Transition c mit dem Token beantworten (Platz gewäh rt, ), worauf der rechte Prozess mit der Transition k kritisch, erreicht. Der Eintrag ,,'P" (für
20
"Fairness") in der Transition c schließt "unfaires" Verhalten aus. Der linke Prozess wäre unfair, wenn vom rechten Prozess eine Bitte um das Token vorliegt (Platz anqsfordert.), der linke Prozess diese Bitte - d. h. die Alternative zwischen den Transitionen a und c - aber immer zu Gunsten von a und damit zu Ungunsten von c entscheidet (und damit die Bitte von r ignoriert). lokal/
wartend,
angefordert/
gewährt/
kritisch/
20.5
lokal,
angefordert,
gewährt ,
kritisch,
Die Szenarien des Algorithmus
Zum systematischen Verständnis des Algorithmus hilft die Betrachtung seiner Szenarien. Tatsächlich ist der Algorithmus szenarienbasiert. Mit den Notationen aus Abb. 20.5 beschreibt das Szenario Sr in Abb. 20.6 den Zyklus in dem der Besitzer des Tokens (in Abb. 20.4 und Abb. 20.5 also der linke Prozess) kritisch wird. Das entsprechende Szenario ST (mit einer initialen Marke auf M statt auf N) ist offensichtlich.
R
L
8
G
c c •
,
o
K
a
E
ADblldlJno 20 5 UniJenrlnnuT1 g ....on Plätt en und Tran 1I0"l en
B} --
-
-
,
B
F
Abbildung 20 6 Das. Szenario SI
Ab bildun g 20.7 zeigt einen partiellen Ablauf An in dem der rech te Prozess • mit h das Token anfordert, • mit k das Token erh ält • kritisch wird und mit j das Token abgibt.
@>----~/
20 N
J A
I dung 20 7
~
pa-t e! e Abli::luf \ .
Der entsprechende partielle Ablauf Al (mit einer initialen Marke auf C statt auf B) ist offensichtlich. Abb. 20.8 zeigt einen partiellen Ablauf BI in dem der linke Prozess das Token • mit c abgibt, • mit b anfordert, und • mit d erhält, und anschließend kritisch wird. G
K
H
J
Der entsprechende partielle Ablauf B, (mit einer initialen Marke auf M statt auf N) ist offensichtlich. Die Kommunikationskanäle G, K, Hund J des Algorithmus kommen sowohl in AT als auch in B, als Platzinschrift vor. Indem man nun die gleich beschrifteten Plätze von AT und B, verschmilzt, entsteht ein Szenario, S1, in dem zunächst der rechte und darm der linke Prozess kritisch wird. Symmetrisch dazu sei das Szenario 8 2 auf Al und B T zusammengesetzt. Jeder verteilte Ablauf des Systemnetzes in Abb. 20.5 besteht aus Instanzen der vier Szenarien Sr, Sn S1 und 8 2 . Damit ist der Mutex-Algorithmus in der Tat szenarienbasiert.
20.6
Korrektheit des Algorithmus
Wie für jeden Mutex-Algorithmus sind für den Algorithmus aus Abb. 20.4 neben dem wechselseitigen Ausschluss die sechs Eigenschaften aus Abschnitt 20.1 zu zeigen. Bis auf Eigenschaft (4) sind sie alle offensichtlich erfüllt. Mit den Bezeichnungen aus Abb. 20.5 beschreibt der logische Ausdruck ,(E /\ Q) und damit die Ungleichung
E+ Q 2.AB f-----> 3 . A C~ 4 . H
~
Abb . 20.10 j d f - > 5.HM f----'--' 6.J - > 7.JD>--> 8.E
/
Ahbl (jung 20 ~ BewelsQI epn IJ r -1 - F
~
20
/ m I .H - > 2.HK - > 3.HKP f - > 4.HQ >--> 5.HM
~ Äbbl rJung
20 , 0 Bewetsgraot'! lur F/
ff \ I
/ '
Aufgaben 1. Zeigen Sie die Korrektheit der Beweisgraphen in den Abbildungen 20.9 und 20.10. 2. Konstruieren Sie die in 20.5 beschriebenen Szenarien
S1
und 8 2 .
Zum Weiterlesen Eine Reihe programmiersprachlich formulierter Lösungen des Problems des wechselseitigen Ausschlusses sind auch als Petrinetze nachgebildet worden [63]. Der Kasten nach Kapitel 4 diskutiert einige prinzipielle Probleme derartiger Nachbildungen. Kindler und Walter haben in [40] gezeigt, dass jeder Algorithmus für den wechselseitigen Ausschluss für autonom arbeitende Prozesse irgendeine Form von Fairness-Annahmen benötigt.
Das Problem des wechselseitigen Ausschlusses Das Problem des wechselseitigen Ausschlusses erscheint in ganz unterschiedlichen Ausprägungen. Diese Ausprägungen unterscheiden sich insbesondere in Bezug auf • die Anzahl der Prozesse und die Topologie ihrer Vernetzung: In Kapitel 20 haben wir eine Lösung für zwei Prozesse vorgestellt, in Abschnitt 9.3 sind es fünf Prozesse (,,Philosophen"). Nennen wir Prozesse benachbart, wenn sie sich eine knappe Ressource ("Gabel") teilen, dann bildet die Nachbarschaftsrelation der fünf Philosophen einen Kreis. Im Allgemeinen gibt es beliebig viele Prozesse und ganz unterschiedliche Muster der Nachbarschaftsrelatioo. Neben Kreisen werden häufig auch Sterne, Gitter, Bäume und n-dimensionale Würfel (Hyperwürfel) verwendet. Auch ist für eine Ressource die Zahl möglicher Nutzer nicht notwendig auf zwei begrenzt. • Die Zuordnung der knappen Ressourcen: Bisher haben wir nur Beispiele gesehen, die jeder knappen Ressource ihre Nutzer fest vorgeben. Das ist nicht immer so. Beispielsweise kann es unerheblich sein, an welchen von zwei Druckern eine Programminstanz ihre Ergebnisse zum Drucken schickt. • die Kommunikation der Prozesse: In der Lösung in Abb. 20.4 schicken sich die Prozesse Nachrichten. In anderen Lösungen greifen die Prozesse auf gemeinsame Variablen zu oder führen gemeinsam Aktivitäten durch.
• den Einfluss einer global agierenden Instanz: Ein Beispiel ist ein Betriebssystem, das die Prozesse und Ressourcen verwaltet. Im Gegensatz dazu verwendet die Lösung in Kapitel 20 homogene Prozesse, die von keiner globalen Instanz gesteuert werden. Formulierung und Lösung der unterschiedlichen Ausprägungen des Problems hängt stark von der verwendeten ModelIierungstechnik ab. Häufig werden gemeinsam genutzte Variablen verwendet. Dabei gehört jede Variable einem Prozess, der sie aktualisieren kann. Jede Variable kann von allen Prozessen gelesen werden. Die nötigen Fairnessannahmen sind in die Modellierungssprache selbst integriert: Eine unbeschränkte Sequenz von LeseEreignissen einer Variable x kann vom Besitzer der Variable unterbrochen werden, um x zu aktualisieren. Bei der ModelIierung solcher Variablen mit Petrinetzen (vgl. Kasten ,,Lesen und Schreiben vs. Nehmen und Geben") am Ende von Kap. 4 werden diese Fairness-Annahmen offensichtlich. In Lamport's .bakcry algorithrn" steckt die Fairness-Annahme in der unbehinderten Sicht aller Prozesse auf eine Anzeigetafel. In der Praxis kann man solche Fairness-Annahmen oft vernachlässigen: ,,Lang andauernde" Zugriffe aufknappe Ressourcen können durch "kurze" Zugriffe auf andere Ressourcen organisiert werden.
20
Asynchrone Hardware Diese Fallstudie beschreibt die syst ematische Konstruktion asy n-
chroner Hardware am Beispiel einer extrem dynamischen Architektur eines Prozessors, der sich selbst an die j eweils aktuel le Verfügbarke it von Datenpaketen und Funktionen und an die unters chiedlich lange Dauer einzelner Rechensc hritte anpasst.
21 1
Der Counter Flow Pipeline-Prozessor (CFPP) Das Problem
Der Sprout Counter Flow Pipe line Prozessor ist eine bekannte. komplexe asynchrone Hardware-Archi tektur. W ir modellieren das prinzipie lle Verhalten auf der abstrakten Ebene de s Datenund Kontrollflusses: Ein Strom d , ... d.,. von Datenpaketen und ein Str om 1, ... Im von Instru ktionen erreichen be ide einen Prozessor P . Auf jedes Datenpaket di soll P der Reihe nach die Instruktionen !J, .. . , Imanwenden und die resultierenden Datenpakete
für i = 1, ... , n der Reihe nach ausgeben. N achdem der Pro-
zessor P einen Daten- und einen Instruktionenstrorn verarbeitet hat, ist er bereit für ein entsprechendes neu es Paar von Strömen.
Die Ströme können jeweils verschied en lang sein. Datenpakete undJnstruktionen erreichen P a.;,;ynchron , nicht in festgelegten Zeiti nterva llen. Die Dauer der Anwendung von f j auf das Datenpaket
1;- 1(. .. J,(J,(d;)) ...) ist für alle i und j unbekannt. Ocr Prozessor soll möglichst schnell rech nen. also m öglichst viele Operat ionen parallel ausführen.
21
Zugleich soll er möglichst flexibel auf unterschiedlich schnelle und unterschiedlich lange lange Daten- und Operatorenströme und unterschiedlich lang dauernde Berechnungen der Instruktionen reagieren.
21 .2
Die Lösungsidee
Zur Lösung dieser Aufgabe verwendet die CFPP-Architektur eine Sequenz P = M 1 ... MI; hintereinandergeschalteter Module, wie in Abb. 21.1 skizziert. Die Datenpakete d 1 , ... , d.,
Aooildung :!"1 1 Autbau des
CF P ~
aJS Modulen M,
fließen von links, also über Mt, nach P hinein. Die bereclmeten Datenpakete 8 1, ... , Sn verlassen P rechts, über MI;. Umgekehrt fließen die Instruktionen von rechts über Mk nach P hinein und verlassen P über Mt. Alle Module arbeiten nach demselben Schema. Ein Modul Mi kann von seinem linken Nachbarn Mi- l Datenpakete empfangen und an ihn Instruktionen abgeben. An seinen rechten Nachbarn Mi+l kann Mi Datenpakete abgeben und von ihm Instruktionen empfangen. Die Module kommunizieren synchron: Mi gibt ein Datenpaket an Mi+l ab, indem Mi+l es empfängt. Entsprechend gibt Mi eine Instruktion an Mi~ l ab, indem Mi_l sie empfängt. Abbildung 21.2 zeigt das Verhalten eines "inneren" Moduls Mi(i ~ 2, ... , k - 1) als Zustandsautomat. Am Anfang kann Mi ein Datenpaket d (von Mi- I) und eine Instruktion f (von Mi+1 ) empfangen. Wenn Mi beides - in beliebiger Reihenfolge - empfangen hat, ist Mi bereit zum Rechnen und wendet f auf d an. Das neu berechnete Datenpaket und die Instruktion kann Mi ~ in beliebiger Reihenfolge - an Mi+l bzw. Mi- l abgeben. Mi speichert dann nichts mehr, reorganisiert sich und erreicht wieder den Anfangszustand.
Datenpaket abgeben
Instruktion abgeben
rechnen
reorganisieren
Instruktion abgeben
!
atenpaket empfangen
Datenpaket abgeben
' - - - - - - - - - ohne Datenpaket, _ - - - - - - - - - ' mit Instruktion
AtJbtl l1ln g ;2 1 2. Ein CFPP-MOl:tLII r:l S Z USol arll1s dtJl om ",1
Interessant sind die beiden Zwischenzustände (oben und unten in Abb. 21.2), in denen Mi entweder nur ein Datenpaket oder nur eine Instruktion speichert: Mi kann das Datenpaket unbearbeitet an Mi+1, bzw. die Instruktion unbenutzt an Mi- 1 abgegeben. Das Modul Mj am linken Rand der CFPP-Architektur verhält sich im wesentlichen wie ein inneres Modul. Es gibt aber eine Instruktion t, erst an die Umgebung ab, nachdem t, auf das letzte Datenpaket d., angewandt worden ist. Entsprechend gibt das Modul Mk am rechten Rand ein Datenpaket Si erst an die Umgebung ab, wenn die letzte Instruktion f m auf Si angewandt worden ist. Wir modellieren die beiden Module nicht explizit. Eine Architektur mit k Modulen kann einen Strom d 1 , . . . , d., von Datenpaketen mit einem Strom f 1 , ... , f m von Instruktionen genau dann verarbeiten, wenn n und m nicht beide größer als k sind: Dann können die Datenpakete oder die Instruktionen alle zugleich in den Modulen gespeichert werden. Die unterschiedliche Dauer von Instruktion kann ein CFPP nur ausgleichen, wenn k größer als n oder mist.
21
A
~
{2, 4, 5},
B
{3, 4, 5},
D~{1,2,6},
E ={1,3,5},
F = {2, 4,6}, H ~ {3, 4, 6}
G~{5,1,2},
H
21 .3
~
C~{1,3,6},
eoes CFPP-Modt.;ls
Das Syntheseproblem des CFPP
Der Zustandsautomat aus Abb. 21.2 verwendet sechs verschie-
dene Aktionen, von denen vier in jeweils zwei Schritten vorkommen. Wir fragen nun nach den
VOf-,
Neben- und Nachbe-
dingungen für ihr Eintreten und damit nach lokalen Zuständen, die einen Modul des CFPP organisieren. Zu diesem Zweck lösen wir das Syntheseproblem des Zustandsautomaten (vgL Kapitel 7). In der Notation aus Abb, 21.3 erzeugen seine acht minimalen Regionen das elementare Systemnetz N aus Abb. 21.4. Sein Markierungsgraph ist isomorph zum Zustandsautomaten aus Abb, 21.2. Damit löst N also das Syntheseproblern des CFPP
21.4
Strukturelle Vereinfachung eines Moduls
Das Systemnetz N aus Abb, 21.4 karm strukturell vereinfacht werden. Dafür leiten wir zunächst ab:
A+ H+ E+ 0
E+ F ~B~ 0 ~2E
~
2
~
1
Platzinvariante
~
Platzinvariante ~1 Platzinvariante
'S
0
Kanonische Ungleichung von E
c a
E •
H
F
b
B Abbildung 21 4 t:h e l Osung oes SjT1U'lcseflrolJlernS oes CFPP
Die Summe dieser vier Ungleichungen ergibt A + F + H - B ->
C.i.
22
B
a
A
4--0
~/ (X,Y)
,,+ U' E
x
0
(Y,x)
1?-!;i
,t
'4./:')
(X,Y)
c
C
b
(X,Y)
d
F
G
AOO ildlJng 22 13· Der Eche-.Ngoo:nmus
Beim Beweis dieser Eigenschaften helfen drei in N gültige Gleichungen:
A+B+C=i, E + pr ! (F)
+G =
U' und
N(A) + N(C) + 0 + N(E) + F + F + N(G)
=
U.
Die Gültigkeit dieser Gleichungen kann mit Hilfe von Platzinvarianten leicht nachgewiesen werden.
22.3
Synchronisation auf azyklischen Netzwerken
Netzwerk-Algorithmen arbeiten häufig in Runden: Jeder Knoten wechselt die Zustände "aktiv" und "passiv" ab und beginnt mit "aktiv" die jeweils nächste Runde. Wir beschreiben einen Algorithmus, der die Knoten so eng wie möglich synchronisiert: Zugleich aktive Knoten sind in derselben Runde. Anfangs sind alle Knoten aktiv in der O-ten Runde. Wie schon im Echo-Algorithmus hat jeder Knoten u in jeder Runde einen "Pivot-Nachbarn" v. Hier allerdings erwartet u zunächst keine Nachricht von v, sondern nur von jedem anderen N achbarn. Als Beispiel zeigt Abb, 22.7 die zweite Runde
des Knoten v im Netzwerk N 2 aus Abb, 22.1. mit S als PivotNachbar. Die Transition a ist aktiviert mit der Markenmenge N('Y)\{h S) } = {(Vx), ("(,ß), ("(,S)}\{("(,S)} = {("(,a), hß)}.
Der Eintritt von a erzeugt dann die Nachr icht (-y ,~) von 'Y an seinen aktuellen Pivot-Nachbarn Im Zustand passiv erwartet 'Y dann eine Nachricht (-y, ~) von ~ und schickt Nachrichten an seine beiden anderen Nachbarn Q und ß. ö .
aktiv In Runde 0
a
aktiv In Runde 1
b
~ " (>;6)
N(, )\ (("ö)} "'N acnrictlten an
'Y @
N(, ) \ ( " ,)} Nachrichten von
'Y
Ab I ~ n g 2::' 7 Oie Runde oes Knoten v nut oem Prvce -Nacn em (j
Um darzustellen, dass prinzipiell jeder Nachbar von 'Y die Rolle des Pivot-Nachbarn sp ielen kann, ersetzen wir in Abb. 22.7 den Knoten ~ durch die Variable y (Abb. 22.8). a
b
aktiv In Runde 1
N(, ) \ ((y,,)} Nachrichten von y
Abbllcl,mg 22.8: Erste Run de des «no en -, r- mbe! ebrqem Pr....ot r·Ja cn01.'l r
Alle Knoten verhalten sich nach dem Muster, dass Abb. 22.8 für den Knoten 'Y zeigt. In Analogie zum Schritt von Abb. 22.4 nach Abb. 22.5 für den Echo-Algorithmus entsteht aus Abb. 22.8 nun Abb. 22.9: In den Kanteninschriften wird der Knoten 'Y durch die Variable x ersetzt und die konstante Rundennummer o durch die Variable i. Im Platz " a ktiv in Runde f' wird der Knoten 'Y mit der Rundennummer 0 durch die Knotenmenge U eines beliebigen Netz werkes ersetzt : Jeder Knoten aus U hat dabei die Rundennummer O. Ein Knoten u auf dem Platz " a ktiv in Runde f ' mit nur einem Nachbarn v aktiviert die Transition a im Modus x=u, ohne dass weitere Nachrichten an u vorliegen. Damit beginnen diese Knoten eine neue Runde. Unser Algorithmus ist für azyklische
22
aktiv in Runde i
x.i
a
b
passiv
N(x) \ {(x,Y)}
N(x) \ ((y,x))
Nachrichten an x
Nachrichten von x
A.rbIdlllHl :22 9 r-te RL.n d~ e r c s. A g e n t ~ tl
endliche Netzwerke korrekt. Jedes solche Netzwerk hat mindestens zwei Knoten mit jeweils nur einem Nachbarn. Aus Abb. 22.9 entwickeln wir das Systemmodell in Abb. 22.10 indem wir
• die Plätze "aktiv in Runde
r' und "aktiv
in Runde i+1" zu
einem Platz, A, zusammenfassen, • die abgeschickten, aber noch nicht empfangenen N achrichten in einem Platz, B, zusammenfassen, • den Platz "passiv" in C umbenennen.
(x,i+1) N(x) \ ((y.x))
(x.y)
(x.y.i)
(x.y.i)
c .Abbildung 22.10: Syncnrc ni saucn in azykhscnen Netzwerk en
Technisch bildet eine Runde aller Knoten zusammen ein Sze-
nario (vgl. KapitelS) für Markierungen M mit pr j(M(A)) = U. Drei Eigenschaften charakterisieren die Korrektheit des Algorithmus in Abb. 22.10:
I. Die Zustandseigenschaft ,,Zwei aktive Knoten sind in der
selben Runde" :
A.(u,n) /\ A(v, m)
~
n
=
m.
2. Die Zustandseigenschaft ,,Die Rundennummer eines passiven und eines aktiven Knoten unterscheidet sich höchstens um I" :
A.(u, n) /\ C(v,m )
~
In-
m l S I.
3. Die Ablaufeigenschaft "Wenn der Agent u die i-te Runde erreicht hat, wird er irgendwann auch die i + I-te Runde erreichen": A.(u, i) >---+ A.(u, i + 1). Beim Beweis dieser Eigenschaften helfen drei Gleichungen : 1. ] eder Knoten ist aktiv oder passiv:
Dabei projiziert prj ein Tupel auf seine erste Komponente, also pr j((u,i)) = u und prj ([(uj, iJl, ... ,(un,in)J) = [Uj, . .. , u n ]. 2. Von und für passive Komponenten sind Nachrichten unterwegs:
Dabei ist pr t,, (a ,b , c) (b, a).
=
pr" l( b,a,c) = (a, b) und (a , b) =
3. Die dritte Gleichung umfasst alle drei Plätze und bezieht die Rundennummer mitein. Zudem verwendet sie vier Funktionen, die jede m Agenten undjeder Zahl eine Multimenge von Knotenpaaren zuordnet:
a (u ,n) =
d