Ich lese Sipser und finde es schwierig zu verstehen, wie der Prozess abläuft. Wenn Sie mir k Turing-Maschinen mit k Bändern geben, kann ich eine äquivalente Turing-Maschine mit nur einem Band ausspucken. Ein Beispiel wäre schön. Eigentlich ein ausgearbeitetes Beispiel, das zeigt, wie man von TM mitbin ich auf der Suche nach k Bändern zu einem mit 1 Band wechselt. Ich konnte bisher keinen finden. Ich suche auch keine Beweise.
turing-machines
simulation
user678392
quelle
quelle
Antworten:
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 }k k
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
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
Um die kombinierte Einzelbandmaschine zu konstruieren, müssen wir dem Bandalphabet neue Symbole hinzufügen:
Nach dem zweiten Schritt:
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).
quelle