Aufgabenblatt 1

Werbung
Aufgabenblatt 1
Theoretische Informatik 1, SS07
28.3.2007
1
Turing Maschine
(6 Punkte) Benützen Sie das Tool JFLAP, das in der Vorlesung vorgestellt wurde, um
eine deterministische Turingmaschine T zur Multiplikation von 2 Binärzahlen zu erstellen. Sie können selbst die Anzahl der Bänder wählen, aber Ihre Implementation
sollte bei der gewählten Anzahl der Bänder annähernd optimal sein. Verwenden Sie
die Schulmethode der Multiplikation.
Das Eingabealphabet Σ = {0, 1, #}, das Bandalphabet ist beliebig. Halten Sie für
die Ein- und Ausgabe die in der Vorlesung gezeigten Konventionen ein: Beim Start
sind alle Bänder leer, außer dem Band 1, auf dem die Binärdarstellung der beiden Argumente steht, durch ein einzelnes # voneinander getrennt. Beim Stoppen muß das
Ergebnis auf Band 1 stehen, und zwar ab der aktuellen Kopfposition bis zum ersten
Blank.
Ermitteln Sie anhand ihrer Implementation exakte Werte für:
tT (bin(3)#bin(4)), tT (bin(1024)#bin(2)), tT (bin(31)#bin(32))
Berechnen sie die Zeitkomplexität TT asymptotisch (Theta-Notation). Begründen
Sie (informell), warum bei der von Ihnen gewählten Anzahl von Bändern eine effizientere Berechnung nicht möglich wäre.
2
Simulation einer RM durch eine 4-Band DTM
(6 Punkte) In der Vorlesung wurde die Simulation einer RM durch eine 4-Band-DTM
vorgestellt. Band 1 dient dabei der Eingabe. Band 2 stellt die Registerbelegung in der
Form
###0#bin(c(0))##1#bin(c(1)## ...##bin(m)#bin(c(m))###
dar, wobei nicht belegte Register ausgelassen sein können. Band 3 dient der Ausgabe
und Band 4 kann für die Durchführung von Nebenrechnungen verwendet werden.
1
Ein Auszug aus dem Programm der zu simulierenden RM sieht folgendermaßen
aus:
23 LOAD #5
24 STORE *17
Beschreiben Sie die diesen Befehlen jeweils entsprechenden Zustandsmengen, und
beschreiben Sie detailliert, welche Schritte die DTM durchführt. Wo stehen die Zahlen
5 und 17 (vor dem Beginn der Durchführung der beiden Befehle!) bzw. wie sind diese
codiert?.
ANMERKUNG: Die beiden Befehle sind getrennt zu übersetzen! Keine Optimierungen!
3
Komplexität TM
1. (5 Punkte) Gegeben sind zwei Zahlen a und b in Unärcodierung, also das Eingabewort w = 1a #1b . Die DTM T berechnet 1a∗b . Geben Sie allgemein, ungeachtet
der Anzahl der verwendeten Bänder, eine untere Schranke für die asymptotische
Zeitkomplexität Θ(TT ) an. Vergleichen Sie das Ergebnis mit Beispiel 1.
2. (3 Punkte) Beschreiben Sie eine konkrete Realisierung, die diese Zeitkomplexität
tatsächlich einhält.
4
Komplexität RM
1. (2 Punkte) Von einer eingeschränkten RM R, ohne Multiplikation und ohne Division ist die Zeitkomplexität TR gegeben. Ermittlen Sie eine asymptotische
obere Schranke für die logarithmische Länge der größten Zahl, die diese RM R
berechnen kann.
2. (2 Punkte) Zu einer RM R der Zeitkomplexität TR (n) gibt es eine äquivalente
RM R0 , die weder MULT noch DIV benutzt, so dass fR0 = fR .
Zeigen Sie, dass TR0 (n) = O(TR (n)2 ).
5
Fleißiger Biber - Wettbewerb
(Wettbewerb & 5*-Punkte) Ein fleißiger Biber ist eine Turingmaschine, mit Γ = {, 1}
und einer bestimmten Anzahl k von Zuständen. Der Biber wird auf einem vollständig
leeren Band gestartet. Der Fleiß des Bibers wird daran gemessen, wie viele 1er nach
Ende der Berechnung auf dem Band stehen. Ein Biber, der endlos läuft ist ungültig.
In Abwandlung des Originals suchen wir nun nach einem möglichst fleißigen Biber
mit Γ = {, #, 1}, gewertet wird nur die Anzahl der 1er. Entwerfen Sie mithilfe des
Tools JFLAP und/oder mit anderen Hilfsmitteln einen möglichst fleißigen Biber für
eine DTM mit maximal 3 Zuständen.
Auf den Gewinner wartet eine Überraschung und 1 Freibier im Moxx (wahlweise
auch 1 Antialk-Getränk).
2
Herunterladen