Ist eine Turing-Maschine auf einem beliebigen (endlichen) Alphabet äquivalent zu einer auf {0, 1}?

Kurzer Kontext:

Ich versuche zu verstehen, warum es eine universelle Turing-Maschine gibt, auf einem Band mit Alphabet { 0 , 1 } . Ich glaube, ich kann sehen, dass a 3 -tape Turing-Maschine kann eine universelle Turing-Maschine darstellen, die Klebeband verwendet 1 für die Eingabe, die der zu simulierenden Turing-Maschine entspricht, Band 2 entsprechend einem Puffer, der den aktuellen Zustand enthält, und Band 3 die eigentliche Berechnung der Eingabe ist.

Dies reduziert sich also auf das Verständnis, warum jede Funktion, die von einer Turing-Maschine mit mehreren Bändern berechenbar ist, auch von einer Turing-Maschine mit einem Band berechenbar ist.

Jetzt, indem ich meinem Alphabet zusätzliche mögliche Symbole hinzufüge, kann ich sehen, wie ich eine Multi-Tape-Turing-Maschine mit einer Single-Tape-Turing-Maschine mit einem größeren Alphabet simulieren könnte (etwas wie: Fügen Sie ein Trennzeichen '#' hinzu, um die Bänder und Symbole 0 ˙ , 1 ˙ , B ˙ um die aktuelle Position auf jedem Band darzustellen). Mir ist jedoch nicht klar, wie es möglich wäre, dies auf einem Band zu tun, auf dem uns nur das Alphabet erlaubt ist { 0 , 1 } .

Meine Frage ist:

Gegeben sei eine Turing-Maschine T auf einem (endlichen) Alphabet Σ { 0 , 1 } die eine partielle Funktion berechnet N N (unter Verwendung der binären Darstellung), gibt es eine Turing-Maschine? T ' nur auf dem Alphabet { 0 , 1 } das die gleiche partielle Funktion berechnet?

(Dies beantwortet dann den letzten Teil meines obigen Gedankengangs.)

Danke! Ich wusste, dass ich mir über die richtigen Namen für Dinge nicht sicher war - ich werde die Frage bearbeiten.
Ja, Sie können Symbole verschlüsseln Σ als Saiten von 0 s und 1 s mit fester Länge Protokoll 2 | Σ | und definieren T ' aus T um mit diesen binären Chunks zu arbeiten. T ' braucht mehr Staaten als T erinnern T den Status von und herausfinden, welches Symbol gescannt wurde ... und andere Details. Aber es kann getan werden.
Oh gut (wieder danke & bearbeiten), ich hatte gehofft, das wäre Ihre Antwort. Manche Leute... sind nicht so, lol. Sehr gerne.

Antworten (1)

Für eine Turing-Maschine mit Alphabet ist das sicherlich möglich { 0 , 1 } eine Turing-Maschine mit einem beliebigen endlichen Alphabet zu simulieren. Die Idee ist, dass, wenn das größere Alphabet eine Größe von weniger als hat 2 k Dann können Sie das Band in "Stücke" der Größe teilen k und verwenden Sie jeden dieser Blöcke, um ein einzelnes Zeichen aus dem größeren Alphabet zu codieren. Dies erfordert eine größere Anzahl von Zuständen in der neuen Maschine, da das Erkennen eines einzelnen Symbols aus dem größeren Alphabet eine Folge von erfordert k Zustände in der neuen Maschine.

Dies ist etwas analog zur Verwendung von UTF-32 zum Speichern von Zeichenfolgen aus beliebigen Unicode-Zeichen in einer Programmiersprache, die nur 8-Bit-Zeichen unterstützt.