Eine schamlos von mir kopierte Antwort :
Eine Mehrband-Turingmaschine ist meistens dieselbe wie eine Einzelbandmaschine, außer dass wir eine erweiterte Übergangsfunktion wobei k die Anzahl der Bänder ist. In jedem Zustand liest die Übergangsfunktion den Inhalt jedes Bandes, wechselt in einen neuen Zustand, schreibt (vielleicht) etwas auf jedes Band und bewegt jeden Kopf - genau wie ein normales TM, außer dass wir jetzt mehr Dinge zum Lesen und Schreiben haben und bewegen.Q × Γk→ Q × Γk× { L , R }kk
Wie aus Ihrer Frage hervorgeht, kann eine solche Maschine mit einem Single-Tape- TM simuliert werden . Noch besser ist, dass dies nur mit quadratischer Verlangsamung möglich ist (für polynomiell geschlossene Klassen reicht es also aus, über Einzelbandmaschinen zu sprechen).
Der Beweis dafür ist etwas aufwendig und mit einer einfachen Websuche leicht verfügbar, daher skizziere ich einfach die Tastenzuordnung der Bänder auf ein einzelnes Band.k
Die Grundidee ist ziemlich einfach; Wir fügen einfach ein paar neue Symbole hinzu und verfolgen jedes Band und jeden Kopf nacheinander. Bei jedem Schritt in der Berechnung können wir nur eine begrenzte Anzahl von Bändern besucht haben, sodass wir nur so viele Informationen über jedes Band speichern müssen. Daher fügen wir für jedes ein neues Symbol γ _ zu Γ hinzu, das angibt, wo sich der Kopf (für jedes Band) an einem beliebigen Punkt der Berechnung befindet. Wir führen auch ein Trennzeichen # in Γ ein, das den Beginn und das Ende der "virtuellen" Bänder angibt. Gegebener Eingang ω = ω 1 … ω nγ& egr ; & Ggr;γ- -- -Γ#Γω = ω1… Ωn(Wir können davon ausgehen, dass sich selbst auf dem Multibandgerät der gesamte Eingang auf dem ersten Band befindet - was beweist, warum dies eine gute Übung ist). Auf dem Multibandgerät hat unser Einzelbandgerät den Eingang
# ω1- -- -- -… Ωn# ⊔- -- -# ⊔- -- -# … # ⊔- -- -#k Abschnitte, einer pro Band⊔ ⊔ ⊔ ⊔ ⊔ ⊔ …
Wir verwenden dann den Status der Einzelbandmaschine, um zu codieren, in welchem Zustand sich die Mehrbandmaschine befindet und was die Köpfe betrachten. Die Übergangsfunktion der Einzelbandmaschine ist eine mehrstufige Simulation der Mehrbandübergangsfunktion, bei der wir die verschiedenen Bandaktionen entsprechend ausführen und das einzelne Band nacheinander zu jedem Abschnitt nach oben bewegen. Die einzigen verbleibenden Falten bestehen darin, alles zu verschieben, wenn wir in einem Abschnitt keinen Platz mehr haben (aber eine solche Submaschine ist eine einfache Übung) - wir reduzieren niemals die Größe jedes Abschnitts.k
Ein (hoffentlich) einfaches Beispiel:
Angenommen, wir haben ein 3-Band-TM, bei dem das Eingabealphabet nur , das Bandalphabet Γ = { 0 , 1 , ⊔ } und die Eingabe ω = 10101 ist . Der anfängliche Bandstatus des Geräts sieht folgendermaßen aus:
Band 1: 1 ∧ 0101 ⊔ ⊔ ⊔ … Band 2: 3 ∧ ∧ ⊔ ⊔ ⊔ ⊔ … Band 3: ⊔ ∧ ⊔ ⊔ ⊔ ⊔ ⊔ …Σ = { 0 , 1 }Γ = { 0 , 1 , ⊔ }ω = 10101
Band 1:Band 2:Band 3:1∧0101 ⊔ ⊔ ⊔ …⊔∧⊔ ⊔ ⊔ ⊔ ⊔ …⊔∧⊔ ⊔ ⊔ ⊔ ⊔ …
Das "
" gibt an, wo sich der Lese- / Schreibkopf auf jedem Band befindet.
∧
Um die kombinierte Einzelbandmaschine zu konstruieren, müssen wir dem Bandalphabet neue Symbole hinzufügen:
- Wir brauchen ein Symbol, das den Anfang und das Ende der simulierten Bänder kennzeichnet
- Für jedes Symbol in benötigen wir außerdem eine Version, die angibt, dass sich der simulierte Bandkopf an diesem Zeichen auf dem simulierten Band befindet.Γ
Γ'= { 0 , 1 , ⊔ , 0- -, 1- -, ⊔- -- -, # }
# 1- -∧0101 # ⊔- -- -# ⊔- -- -# ⊔ ⊔ ⊔ …
∧) und die simulierten Köpfe der 3 simulierten Bänder (die unterstrichenen Zeichen). Natürlich erstreckt sich das Band wie gewohnt unendlich nach rechts. Ich habe auch leicht betrogen, indem ich den Bandkopf zum ersten Zeichen auf der ersten Saite bewegt habe; streng genommen sollte es in der Zelle ganz links beginnen, aber dies ist eine triviale Technik.
#
1101
1
Band 1:Band 2:Band 3:1 0∧101 ⊔ ⊔ ⊔ …1 ⊔∧⊔ ⊔ ⊔ ⊔ …⊔∧⊔ ⊔ ⊔ ⊔ ⊔ …
0
Band 1:Band 2:Band 3:10 1∧01 ⊔ ⊔ ⊔ …1 ⊔∧⊔ ⊔ ⊔ ⊔ …1 ⊔∧⊔ ⊔ ⊔ ⊔ …
Γ'
# 1 0- -∧101 # 1 ⊔- -- -# ⊔- -- -# ⊔ ⊔ ⊔ …
Nach dem zweiten Schritt:
# 10 1- -∧01 # 1 ⊔- -- -# 1 ⊔- -- -# ⊔ ⊔ ⊔ …
Natürlich ist dies eine allgemeine Ansicht des Prozesses - ich habe nicht versucht zu erklären, wie die Zustände aufgebaut werden oder wie jedes simulierte Band länger wird (dazu benötigen Sie eine kleine Routine, die überprüft, ob Sie auf den gestoßen sind Ende des simulierten Bandes, bewegt dann alles einen Schritt nach rechts und drückt einen neuen Rohling ein - dh es werden nur simulierte Bandzellen hinzugefügt, wenn sie benötigt werden).