Berechenbarkeit und Komplexität (autotool Aufgaben) SS2002
Auf dieser Seite finden Sie Hinweise zur Lösung und Richtlinien zur Bewertung der Übungsaufgabenteile für das autotool.
Allgemeine Hinweise
- Autotool bearbeitet immer nur eine Lösung pro Nutzer gleichzeitig, d.h.
Mail schicken, antwort abwarten und dann erst nächste Mail schicken!
- Die Anmeldung ist bis zum Montag 12. April 2002, 14:00 Uhr durchzuführen, alle Mails müssen
von der in der Anmeldung angegeben E-Mail Adresse kommen.
- Autotool startet mit der Bewertung der ersten Serie am Dienstag (13. April).
- Die gelösten Übungsaufgaben gehen an autotool@theopc.informatik.uni-leipzig.de .
- Das Subjekt der E-Mail ist das entsprechende Kürzel für die Aufgabe (z.B. TM2 für die 2. Aufgabe der 1. Serie),
zu beachten ist hierbei die genaue Schreibweise.
- Achten Sie darauf das in der letzten Zeile "--" steht, dies verhindert das die eventuell angefügte Signatur Fehler
erzeugt.
- Das autotool reagiert empfindlich auf fehlerhafte Einrückung (siehe Beispiel).
- Viele Mail-Programme brechen die Zeilen nach einer bestimmten Zeilenlänge automatisch um (fügen Zeilenumbruch ein),
und stören dann die Einrückung der nächsten Zeile.
1. Serie
Es gilt eine 1-Band-Turing-Maschine zu finden, an die folgende Bedingung gestellt werden:
- die Turingmaschine startet auf dem erstem Buchstaben der Eingabe,
- das Band ist bis auf das Eingabewort (siehe Tabelle) leer,
- es muss die exakte Ausgabe (siehe Tabelle) von Turingmaschine erzeugt werden, Leerzeichen links und rechts von der Ausgabe werden ignoriert,
- das Eingabealphabet ist "01",
- das Arbeitsalphabet ist "01#" und kann um Hilfsbuchstaben erweitert werden,
- das Leerzeichen ist "#",
- die Zustandsnamen sind die natürlichen Zahlen (0,1,2,3,...).
- also:
Ein- und Ausgabe Tabelle der 1. Serie
Beispiele in eckigen Klammern, bin(n) = binäre Darstellung von n, unär(n) = unäre Darstellung von n
Aufgabe | Eingabe | Ausgabe |
TM1 | bin(n) | [ 111 ] | bin(n)#bin(n+1) | [ 111#1000 ] |
TM2 | unär(n) | [ 11 ] | unär(n)#unär(2n) | [ 11#1111 ] |
TM3 | bin(n) | [ 10 ] | bin(n)#unär(n) | [ 10#11 ] |
TM4 | unär(n) | [ 11 ] | unär(n)#bin(n) | [ 11#10 ] |
Beispiel für Serie 1
empfänger: autotool@theopc.informatik.uni-leipzig.de
subject: TM1
-- ein Kommentar beginnt mit "--", er wird vom autotool ignoriert
-- diese import Anweisung muss am Anfang stehen
import Turing
-- Beschreibung der TM siehe oben
-- wichtig sind die Einrückungen am Zeilenbeginn,
-- diese müssen nach student mindestens 1 Leerzeichen sein
student = Turing
{ eingabealphabet = mkSet "01"
, leerzeichen = '#'
, arbeitsalphabet = mkSet "#01bc"
, zustandsmenge = mkSet [ 1, 2, 3 ]
, tafel = t
, startzustand = 1
, endzustandsmenge = mkSet [ 3 ]
}
-- die Überführungstabelle, auch hier nach t jede
-- Zeile um mindestens 1 Leerzeichen einrücken
t = listToFM
[ ( ('1',1 ) , mkSet [ ('c',2 ,R) ] )
, ( ('1',2 ) , mkSet [ ('1',2 ,R) ] )
, ( ('#',2 ) , mkSet [ ('b',3 ,L) ] )
]
-- Beschreibung der ersten Zeile:
-- wenn im Zustand 1 '1' gelesen wird
-- 'c' schreiben, in Zustand 2 wechseln und
-- einen Schritt nach rechts
--
Last modified: Thu Apr 11 23:59:04 CEST 2002