Universität Konstanz WS 2007/08 Lehrstuhl DBIS Informationsmanagement Prof. Dr. Marc H. Scholl / Svetlana Mansmann / Halldór Janetzko / Sören Schubert 13. Übungsblatt (Ausgeteilt am: 28.01.2007, Abgabe: 04.02.2007, P 20 Punkte) Aufgabe 1: FINITE STATE MACHINES (8 Punkte) Erstelle einen endlichen Automaten (FSM) “Modulo-3”. Der Automat nimmt eine binäre Zahl entgegen, die bitweise einglesen wird (das bedeutendste Bit zuerst), und soll blinken, falls die bisher gelesene Zahl durch 3 teilbar ist. Beispiel: Die Zahl 13 (binär 1101) wird in 4 Schritten der binären Zahlen 1 (nicht teilbar durch 3), 11 (teilbar durch 3), 110 (teilbar durch 3) und 1101 (nicht teilbar durch 3) ausgewertet. Hinweis: Der endliche Automat soll 3 Zustände haben, die den möglichen Werten von Zahl mod 3 entsprechen, also 0, 1 und 2. Wenn die bisher eingegebene Zahl N ist und Bit b angehängt wird, ergibt sich der neue Wert N 0 = 2N + b (bitte, überprüfe diese Anmerkung anhand der obigen binären Zahlen 1, 11, 110 und 1101). Aus dieser Tatsache lässt sich Folgendes ableiten: 1. Bei N mod 3 = 0 gilt N = 3p + 0, wobei p irgendeine Ganzzahl ist. Nachdem Bit b (d.h., Zahl 1 oder 0) angehängt wird, gilt N 0 = 6p + b und damit N = b mod 3. 2. Bei N mod 3 = 1 gilt N = 3p + 1. Nachdem Bit b angehängt wird, gilt N 0 = 6p + 2 + b und damit N 0 = (b + 2) mod 3. 3. Bei N mod 3 = 2 gilt N = 3p + 2. Nachdem Bit b angehängt wird, gilt N 0 = 6p + 4 + b und damit N 0 = (b + 1) mod 3. Erstelle a) ein “State-Transition”-Diagramm (wie auf der Vorlesungsfolie 59) dieses Automaten. Die Zustände, in denen der Automat blinkt, sollen mit einem F markiert werden. b) eine “State-Transition”-Tabelle (siehe Vorlesungsfolie 66) dieses Automaten mit folgendem Grundgerüst der Tabelle (die erste Zeile ist bereits ausgefüllt). curr state (N mod 3) event (b) next state (N mod 3) action (blinkt?) 0 1 1 nein ... ... ... ... Bitte wenden! −−−−−−−−−−→ - Aufgabe 2: ÜBERFÜHRUNG EINES PETRI-NETZES (8 Punkte) - Der “Zustand” (State) eines Petrinetzes wird nicht alleine durch seine Struktur (Plätze, Transitionen und Kanten) und eine (bislang verarbeitete) Eingabe beschrieben, sondern auch durch die jeweils aktuelle Markierung (Anzahl Tokens in den einzelnen Stellen). a) Betrachte folgendes Petrinetzmodell eines Snack-Automaten nimm 15¢-Snack 10¢ einwerfen 15¢ 5¢ 5¢ einwerfen 5¢ einwerfen 0¢ 5¢ einwerfen 5¢ einwerfen 10¢ einwerfen 10¢ nimm 20¢-Snack 20¢ 10¢ einwerfen und beantworte die folgenden Fragen: i) Wie viele Arten Snacks gibt es? ii) Was für Munzen werden akzeptiert? iii) Kann dieser Automat den Restbetrag zurückgeben? b) Überführe dieses Model in einen äquivalenten endlichen Automaten. c) Beschreibe verallgemeinert, wie ein über ein Petrinetz beschriebener Automat in einen endlichen Automaten überführt werden kann. Es genügt dabei, die wesentlichen Schritte zu definieren. Beschränke Dich auf einfache Petrinetze (ohne verschiedenfarbige Tokens). Aufgabe 3: PETRI-NETZ SIMULATION (4 Punkte) Auf der Webseite http://wwwis.win.tue.nl/~wvdaalst/pn_applet/pn_applet.html findest du ein interaktives Tool zur Modellierung von Petrinetzen. Lies die Einleitung “How to use the applet” auf dieser Seite und probiere das Tool aus. a) Benutze dieses Tool, um das Petrinetzmodell des Snack-Automaten aus Aufgabe 2 zu erstellen (lass die Knoten ohne Beschriftungen und setze die Kapazität jedes Platz-Knoten auf 1). Da das Modell selbst nicht gespeichert werden kann, mache ein Screenshot davon für die Abgabe. b) Versetze das Modell in den Simulationsmodus und lass es laufen. Wie viele verschiedene Ausführungsmöglichkeiten gibt es, um i) einen 20¢-Snack und ii) einen 15¢-Snack zu bekommen? Ï