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