Technische Grundlagen der Informatik 8. Musterlösung â Automaten
Technische Grundlagen der Informatik 8. Musterlösung â Automaten
Technische Grundlagen der Informatik 8. Musterlösung â Automaten
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Prof. Dr.-Ing. Sorin A. Huss<br />
<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong><br />
<strong>8.</strong> Musterlösung – <strong>Automaten</strong><br />
Wintersemester 2010/11<br />
Aufgabe 1 Moore-Automat<br />
Eine Moore-Maschine hat zwei Eingänge x 0 und x 1 und einen Ausgang y. Geben Sie das Zustandsübergangsdiagramm<br />
gemäß <strong>der</strong> folgenden Spezifikation an.<br />
Der Ausgang ist konstant, wenn nicht eine <strong>der</strong> folgenden Sequenzen auftritt:<br />
1. Die Sequenz x 0 x 1 = 00, 11 bewirkt y = 0.<br />
2. Die Sequenz x 0 x 1 = 01, 11 bewirkt y = 1.<br />
3. Die Sequenz x 0 x 1 = 10, 11 bewirkt einen Wechsel des Ausgangswerts, y = y.<br />
Der Automat lässt sich bis auf folgendes Zustandsübergangsdiagramm vereinfachen:<br />
00,11<br />
S 0<br />
0<br />
RESET<br />
00<br />
11<br />
01,10<br />
S 1<br />
0<br />
01,10<br />
00,10<br />
S 3<br />
1<br />
00,10<br />
11<br />
S 2<br />
1<br />
01<br />
01,11<br />
Abbildung 1: Zustandsübergangsdiagramm des Moore-<strong>Automaten</strong><br />
(Die Angaben an den Pfeilen bezeichnen x 0 x 1 . Die untere Angabe in den Zuständen ist <strong>der</strong> Wert <strong>der</strong> Ausgabe y.)<br />
Aufgabe 2 Cheaten<br />
a) Sie haben das alte Konami-Spiel Gradius für das NES in Ihrem Schrank gefunden. Sie erinnern Sich daran, wie es<br />
möglich war, während des Pausierens des Spiels den bekannten Konami-Code einzugeben, <strong>der</strong> Ihnen viele Power-<br />
Ups beschert. Dies können Sie beliebig oft tun, falls Ihnen beispielsweise die Munition ausgeht. Zeichnen Sie den<br />
entsprechenden Moore-<strong>Automaten</strong> dazu, <strong>der</strong> alle Eingaben akzeptiert, die <strong>der</strong> NES-Controller bietet und durch<br />
das Abspielen eines Tons die korrekte Reihenfolge des Codes bestätigt (beispielsweise durch Setzen <strong>der</strong> Ausgabe<br />
auf Sound).<br />
Hinweis: Der Code lautet ↑ ↑ ↓ ↓ ← → ← → B A<br />
Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710 1
START<br />
z0<br />
z1 z2 z3 z4 z5 z6 z7 z8 z9 z10<br />
UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />
Sound<br />
b) Schade, Ihr NES funktioniert lei<strong>der</strong> nicht mehr. Dank eines großen glücklichen Zufall haben Sie Zugang zur alten<br />
verlassenen Spielhalle in Ihrer Stadt, in <strong>der</strong> auch ein Gradius-Spielautomat steht. Wie bei den TRON-<strong>Automaten</strong>,<br />
die nebendran stehen, verlangen Cheats noch das Dagegentreten gegen den <strong>Automaten</strong>, um zu funktionieren (o<strong>der</strong><br />
um in eine Cyberwelt eingezogen zu werden). Dabei kann <strong>der</strong> Tritt zu jedem Zeitpunkt <strong>der</strong> Code-Eingabe erfolgen.<br />
Zeichnen Sie den Moore-<strong>Automaten</strong>, <strong>der</strong> Ihnen die Power-Ups für Gradius in <strong>der</strong> verlassenen Spielhalle beschert.<br />
START<br />
z0<br />
UP<br />
UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />
z1 z2 z3 z4 z5 z6 z7 z8 z9 z10<br />
KICK KICK KICK KICK KICK KICK KICK KICK KICK KICK KICK<br />
z11 z12 z13 z14 z15 z16 z17 z18 z19 z20<br />
z21<br />
UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />
Sound<br />
c) Ihr sehr alter Bekannter Simon stellt ihnen eine Quest. Er behauptet, <strong>der</strong> Automat lässt sich mit erheblich weniger<br />
als 22 Zuständen realisieren, indem einfach nur ein neuer Zustand zu dem <strong>Automaten</strong> aus a) hinzugefügt wird,<br />
<strong>der</strong> den Tritt darstellt. Hat er Recht o<strong>der</strong> denken Sie eher, dass da ein Fluch aus ihm spricht? Begründen Sie ihre<br />
Antwort.<br />
Nein, es ist keine Minimierung möglich. Wollte Simon nur einen zusätzlichen Zustand einführen, um das Treten<br />
zu implementieren, müsste er die vorher zuletzt gedrückte Taste speichern. Ansonsten könnte man beispielsweise<br />
vom ersten UP direkt zu A springen und die Tasten dazwischen einfach auslassen.<br />
Aufgabe 3 Vergleichen von Moore- und Mealy-<strong>Automaten</strong><br />
Vergleichen Sie Moore- und Mealy-<strong>Automaten</strong> bzgl. <strong>der</strong> nachfolgenden Kriterien.<br />
a) Welche Unterschiede besitzen die Ausgaben vor Moore- und Mealy-<strong>Automaten</strong>?<br />
Der Moore-Automat hat ein synchrones Ausgabeverhalten. Die Ausgabe des nächsten Taktzyklus wird kombinatorisch<br />
in dem aktuellen Taktzyklus berechnet und synchron zum Takt in das Ausgaberegister übernommen.<br />
Än<strong>der</strong>ungen am Eingang eines Moore-<strong>Automaten</strong> wirken sich auf den Ausgang somit frühstens zum nächsten<br />
Taktzyklus aus.<br />
Ein Mealy-Automat hat ein asynchrones Ausgabeverhalten. Die Ausgabe ist kombinatorisch anhand <strong>der</strong> Eingänge<br />
und des Zustands festgelegt. Somit wirken sich Än<strong>der</strong>ungen am Eingang eines Mealy-<strong>Automaten</strong> direkt auf den<br />
Ausgang aus.<br />
b) Warum ist es problematisch, wenn einer o<strong>der</strong> mehrere Mealy-<strong>Automaten</strong> rückgekoppelt werden?<br />
Werden Mealy-<strong>Automaten</strong> zurückgekoppelt, d. h. <strong>der</strong> Ausgang wirkt direkt auf den Eingang des <strong>Automaten</strong>, so<br />
kann es passieren, dass <strong>der</strong> Ausgang des Mealy-<strong>Automaten</strong> ein Schwingverhalten aufweist: Die asynchonen Ausgaben<br />
nehmen Aufgrund <strong>der</strong> reinen kombinatorischen Verschaltung evtl. keine stabilen Ausgabewerte an.<br />
c) Warum besitzt ein Mealy-Automat gegenüber einem Moore-Automat normalerweise weniger Zustände bei gleicher<br />
Ausgabesequenz?<br />
Gleiche Ausgaben in unterschiedlichen Zuständen können in einem Mealy <strong>Automaten</strong> evtl. zu einem Zustand<br />
zusammengefasst werden.<br />
2 Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710
d) Können Sie einen Fall angeben, bei dem <strong>der</strong> minimale Mealy-Automat mehr Zustände als <strong>der</strong> minimale Moore-<br />
Automat besitzt?<br />
Nein, dies gibt es nicht. Der Beweis bleibt dem Leser überlassen.<br />
Beweisidee als Hilfestellung:<br />
Betrachten Sie zuerst einen <strong>Automaten</strong> mit nur einem Zustand. Zeigen Sie, dass es keinen Mealy-Automat mit<br />
mehr Zuständen gibt.<br />
Betrachten Sie nun einen möglichen Moore-<strong>Automaten</strong> mit n Zuständen bei n verschiedenen Ausgaben. Erweitern<br />
Sie nun den Moore-Automat um einen weiter Zustand n + 1 und betrachten Sie dabei die auftretenden<br />
verschiedenen Fälle:<br />
1. Der neue Zustand erzeugt die Ausgabe n + 1.<br />
2. Der neue Zustand erzeugt die Ausgabe i und ist über eine Transition mit dem Zustand i verbunden.<br />
3. Der neue Zustand erzeugt die Ausgabe i und ist über keine Transition mit dem Zustand i verbunden.<br />
Folgern Sie nun das es keinen Mealy-Automat gibt, <strong>der</strong> mehr Zustände als <strong>der</strong> Moore-Automat besitzt.<br />
e) Wie kann man einen Moore-<strong>Automaten</strong> in einen Mealy-<strong>Automaten</strong> überführen?<br />
Um einen Moore-<strong>Automaten</strong> in einen Mealy-<strong>Automaten</strong> zu überführen, muss die Ausgabe des Zielzustandes an die<br />
Transition geschrieben werden. Dies soll am Beispiel aus Aufgabe Aufgabe 1 gezeigt werden.<br />
00,11<br />
00|0,11|0<br />
01,10<br />
S 1<br />
0<br />
00<br />
11<br />
01,10<br />
S 0<br />
0<br />
S 2<br />
1<br />
00,10<br />
11<br />
RESET<br />
01<br />
S 3<br />
1<br />
00,10<br />
01|0,10|0<br />
00|0<br />
01|0,10|0<br />
00|1,10|1<br />
S 1<br />
S 0 RESET<br />
11|1<br />
11|0<br />
01|1<br />
S 2<br />
S 3<br />
00|1,10|1<br />
01|1,11|1<br />
01,11<br />
Abbildung 2: Überführung eines Moore- in einem Mealy-<strong>Automaten</strong><br />
Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710 3