Theory: Turing Machine |
Turing Machine mit n-Speicherbände |
Die TM lässt sich beliebig um zusätzliche Speicherbände erweitern. Das Prinzip einer solchen n-Speicherband TM (n-tape TM) bleibt jedoch identisch wie die einfache TM. Ebenfalls ändert sich nichts an der Sprachmächtigkeit. Sie kann aber die Abarbeitung effizienter durchführen als eine TM mit einem Speicherband. Dies lässt sich an einem einfachen Beispiel veranschaulichen (aus [Lin97], S. 270):
Die kontextfreie Sprache L = {an bn , n >= 1 } wird mit der einfachen TM wie folgt überprüft::
Es wird das erste a links "abgehakt", indem das Band mit einem anderen Symbol (z. Bsp. x) ersetzt wird. Dann wandert der Schreib-Lese-Kopf nach rechts bis zum ersten b und ersetzt dies mit einem y. Dann wandert der Schreib-Lese-Kopf zurück zum nächsten a, ersetzt dies mit einem x, dann wandert der Kopf wiederum nach rechts zum nächsten b, etc. Es wird somit jedes a mit dem entsprechenden b abgehakt. Wenn am Schluss keine a's oder b's übrig bleiben, d.h. die Anzahl identisch ist, gehört der Inputstring zur Sprache L.
Diese Überprüfung lässt sich mit einem 2-tape TM einfacher bewerkstelligen:
Alle a's werden auf das zweite
Bank kopiert, d.h. man arbeitet sich von links nach rechts vor. Wenn die
b's erreicht worden sind, werden diese gegen die kopierten a's auf dem
zweiten Band abgestimmt: Man liest die b's auf dem ersten Band in Richtung
rechts, während man gleichzeitig die a's auf dem zweiten Band in Richtung
links liest. Bleibt kein Zeichen übrig, gehört der Input zur
Sprache L.
Dieser Vorgang ist effizienter,
da keine Hin-und Herbewegung notwendig ist.
Dasselbe lässt sich auch mit einer kontextsensitiven Sprache der Form an bn cn bewerkstelligen.
Siehe dazu die Beispiele für die 1-Tape TM und 2-Tape TM, sowie die Übungen 2 (kontextfreie Sprachen erkennen) und 5 (kontextsensitive Sprachen erkennen).
Im JFLAP befindet sich nebst
der einfachen TM auch eine TM mit zwei Speicherbänden (2-Tape-TM).
Die Notation findest Du hier.