Ü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