Übung 8 - Informatik 12

Transcription

Übung 8 - Informatik 12
Informatik 12
Cauerstraße 11
91058 Erlangen
TECHNISCHE FAKULTÄT
8. Übung zur Vorlesung Ereignisgesteuerte Systeme
Diese Übung findet im Raum 02.133 als praktische
Übung am Lehrstuhl statt!
In dieser praktischen Übung verwenden wir das frei verfügbare Werkzeug PIPE2 1 . Dieses erlaubt
eine grafische Eingabe von Petri-Netzen sowie deren Simulation und einfache Analysen. Unter anderem die Berechnung von Inzidenzmatrizen, Invarianten und Erreichbarkeitsgraphen. Auch wenn
der Funktionsumfang von PIPE2 nicht mit kommerziellen Werkzeugen vergleichbar ist, bietet es
dennoch einen guten Einstieg und kann für Übung und Klausurvorbereitung nützlich sein.
Aufgabe 1 Modellieren Sie eine Produktionsanlage für Mützen und Schals mit dem Petri-Netz Werkzeug PIPE2. Die Anlage verarbeitet rote und schwarze Wolle und strickt daraus Mützen und Schals.
Diese werden in Sets zu je einer Mütze und einem Schal abgepackt und ausgegeben. Verwenden Sie
folgende Hinweise:
• Die zu verarbeitende Wolle kann durch Stellen modelliert werden, wobei eine Marke 100g
Wolle entspricht.
• Die Anlage soll aus drei Strickmaschinen, einer Abpackmaschine (Transitionen) und benötigten Behältern/Lagern (Stellen) aufgebaut werden.
• Es gibt zwei Strickmaschinen für Mützen: Eine strickt aus 200g roter Wolle eine rote Mütze,
und die Andere strickt aus 100g schwarzer und 100g roter Wolle eine schwarz-rote Mütze.
• Die Strickmaschine für Schals benötigt 1kg rote Wolle und produziert daraus einen roten Schal.
• Die Abpackmaschine packt irgendeine Mütze (Farbe egal) mit einem Schal zusammen.
a) Stellen Sie die Inzidenzmatrix A für das von Ihnen beschriebene Petri-Netz auf. Vergleichen
Sie diese zur Kontrolle mit der von PIPE2 erzeugten Matrix.
b) Berechnen Sie unter Verwendung der Inzidenzmatrix A, ob aus 4.7kg roter und 300g schwarzer
Wolle 4 Sets und 1 Mütze produziert werden können. Falls ja, suchen Sie eine Feuerungssequenz mit PIPE2 (z.B. durch Animation).
c) Berechnen Sie eine Stelleninvariante IS 6= 0 und interpretieren Sie Ihr Ergebnis unter folgenden
Gesichtspunkten: Welche Stellen sind sicher? Welchen Zusammenhang gibt es zwischen den
Stellen?
d) Entscheiden Sie anhand der Transitionsinvarianten, ob das Netz reversibel ist.
e) Lassen Sie sich den Erreichbarkeitsgraphen für die Anfangsmarkierung M00 = (2, 1, 0, 0, 0) ausgeben. Was ist ein Deadlock? Entscheiden Sie anhand des Erreichbarkeitsgraphen, ob das Netz
deadlockfrei ist.
1 http://pipe2.sourceforge.net/
1
f) Angenommen, die Kapazität des Schalbehälters ist durch K = 5 beschränkt. Formen Sie dieses
kapazitätsbeschränkte Netz in ein äquivalentes Petri-Netz ohne kapazitätsbeschränkte Stellen um. Wählen Sie eine geeignete Anfangsmarkierung und überprüfen Sie damit die Beschränkung.
Aufgabe 2 Das Philosophenproblem (eng. Dining Philosophers Problem) ist ein klassisches Beispiel aus der theoretischen Informatik für die mögliche Verklemmung von Systemen. Dabei sitzen
fünf Philosophen an einem runden Tisch. Vor jedem Philosophen steht ein Teller mit Spaghetti. Leider sind insgesamt nur fünf Gabel vorhanden, die zwischen den Philosphen liegen. Dies ist auf dem
Bild unten dargestellt, das Wikipedia entnommen ist. Zum Essen braucht ein Philosoph eine Gabel
in jeder Hand. Es können also nicht alle Philosphen gleichzeitig essen. Der Ablauf ist wie folgt:
• Ein Philosoph denkt entweder, oder er hat Hunger bzw. isst.
• Alle Philosphen denken am Anfang.
• Zum Essen muss ein Philosoph zwei Gabeln aufnehemen, mit einer Gabel kann er nicht essen.
• Aufnehmen kann er die Gabeln nur nacheinander (also erst die Linke, dann die Rechte, oder
umgekehrt), da das Umschalten von Denken zu Essen nicht so schnell geht.
• Erst wenn ein Philosoph satt ist (also gegessen hat), legt er beide Gabeln gleichzeitig weg. Das
heißt im Umkehrschluss: Wenn er eine Gabel aufgenommen hat und die andere Gabel gerade
benutzt wird, wartet er so lange, bis diese frei ist.
a) Modellieren Sie zunächst einen Philosophen, der obige Spezifikation erfüllt und zwei Gabeln
zur Verfügung hat. Testen Sie Ihren Philosophen, indem sie ein paar Schritte simulieren.
b) Nutzen Sie diesen einen Philosophen, um das Philosophenproblem wie oben beschrieben
vollständig als Petri-Netz zu beschreiben. Verwenden Sie der Übersichtlichkeit halber nur drei
Philosophen und drei Gabeln.
c) In dem System kann es zu Verklemmungen kommen. Beschreiben Sie eine mögliche Schaltfolge von Transitionen, die zu einer Verklemmung führt und überprüfen Sie diese.
d) Lassen Sie sich die Invarianten ausgeben. Was kann aus diesen gefolgert werden?
2