A-Netze - Modellieren mit Perspektiven
|
||
[home] [examples] | ||
Fährmannbeispiel (das Applet erscheint gleich als separates Fenster.) |
Einfaches Einstiegsbeispiel, um das Prinzip des Zusammenspiels
mehrerer Perspektiven zu erklären. Es wird dabei das bekannte Denkspiel von Fährmann, Wolf, Ziege und Kohlkopf modelliert:
Ein Fährmann steht vor folgendem Problem: Er muß einen
Fluss in einem kleinen Boot überqueren, und muß einen Wolf, eine
Ziege und einen Kohlkopf mit zum anderen Ufer nehmen. |
|
1. Perspektive - Fähigkeiten |
Die Regeln des Spiels, die die Passagiere betreffen werden modelliert. "fahren"
können die Passagiere einzeln, fressen betrifft jeweils zwei
Passagiere. Wenn ein Passagier gefressen ist, kann er nicht mehr fahren.
Beim Fressen ist durch Kantenlabel festgelegt, wer die Rolle des Opfers
bekommt. |
|
Würde diese Perspektive allein stehen, könnten alle Schaltfolgen vorkommen, die mit den Fähigkeiten der Passagiere kompatibel sind. Also könnten die Passagiere in beliebiger Reihenfolge mehrfach fahren und fressen, allerdings wäre nach dem "fressen" das entsprechende Opfer "tot". | ||
2. Perspektive Arbeitsplatz |
Wenn man den Fährmann modelliert, stellt man fest, dass dabei der
Fluss eine große Rolle spielt und der Aufenthalt an den beiden Ufern
als Zustand wichtig ist. Statt dies in die erste Perspektive zu integrieren, wird eine neue Perspektive gewählt, die auf diese Sicht spezialisiert ist. "fahren" hat je zwei Eingangs- und Ausgangskanten und gibt damit die Spielregel wieder, dass der Fährmann höchstens einen Passagier mitnehmen kann, der dann am anderen Ufer erscheint. "fressen" kann am linken oder am rechten Ufer geschehen, aber nur, wenn der Fährmann am anderen Ufer ist. ("fressen" hat je 3 Doppelkanten, die 2 Doppelkanten der Passagiere liegen übereinander.) |
|
Würde diese Perspektive allein stehen, wären
schon die meisten Regeln des Spiels realisiert. Es würden Passagiere
übergesetzt, gelegentlich würde ein Passagier den anderen fressen,
aber nur wenn sie gemeinsam an einem Ufer unbeaufsichtigt sind. Allerdings
würden auch Kohl und Wolf in die "fressen"-Transition eintreten können
- und anschließend unbehelligt weiter am Fährbetrieb
teilnehmen.
Weil die Token (Aspekte) beider Perspektiven jedoch als "siblinks"
miteinander verbunden sind und die Schaltregeln für A-Netze in diesem
Fall verlangen, dass Transitionen mit gleichem Label, die in beiden Perspektiven
vorkommen, nur synchron schalten können, sind nicht alle Schaltfolgen
mehr möglich. Mit diesen beiden Perspektiven sind die Spielregeln vollständig modelliert, es sind alle Schaltfolgen möglich - auch die ungünstigen, die auch ein menschlicher Spieler machen dürfte. |
||
2. Perspektive (Dienst-) Vorschrift |
Damit kein Unglück geschieht, wird in einer dritten Perspektive
die Dienstvorschrift für den Fährmann beschrieben:
Wie man schnell sieht, kommt es nur auf die Position der Ziege an, weil sie für beide "fressen"-Regeln kritisch ist.
Wegen der A-Netz-Schaltregeln (s. o.) verlangt eine Transition "fahren" mit
Doppelkante zur Ziege, dass die Ziege mitgenommen wird, während eine
Transition "fahren" ohne Kanten zur Ziege verbietet, dass die Ziege mitgenommen
wird (sie müsste ja in allen Perspektiven am Schaltvorgang mit dem Label
"fahren" beteiligt sein.) Nach einem Umlauf des Fährmanns in diesem Teilnetz, sind alle Passagiere nach rechts übergesetzt, und im nächsten Umlauf bringt der Fährmann sie wieder zurück. |
|
Alle drei Perspektiven können gemeinsam simuliert werden
- Starten mit
Einzelschrittmodus kann mit
ein- und ausgeschaltet werden. Ansehen in Zeitlupe mit Speed = 0.05. Das Verhalten von getrennt stehenden Perspektiven kann beobachtet werden, wenn vor dem ersten Start die siblink-Aspekte in den anderen Perspektiven gelöscht werden. Z. B. wird die Vorschrift nicht mehr beachtet, wenn man vor dem Start den Fährmann in der Vorschriftsperspektive löscht. |
||
A-Nets are free |
A-Nets are Open Source, underlying
the GNU GPL and the A-fair-licence (
www.a-fair.de) |
|
|
More questions? Ask here: info@aspect-nets.de |
A-Netz-Entwicklungsgruppe Last update: 08 May 01
|
Wolfgang Reinfeldt, Holger Bringmann, Hauke Duden, Jan-Eric Duden, Jochen Notholt. |