So ordnen Sie die Bänder einer „K-Tape“ -Turingmaschine dem einzelnen Band einer „1-Tape“ -Turingmaschine zu


11

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 mitkbin ich auf der Suche nach k Bändern zu einem mit 1 Band wechselt. Ich konnte bisher keinen finden. Ich suche auch keine Beweise.


Was meinst du mit "einer gleichwertigen Maschine"? Was ist die Eingabe und was ist die Ausgabe? (Vielleicht meinten Sie eine Turing-Maschine mit Bändern?)k
Yuval Filmus

Ja. Eine Drehmaschine mit k Bändern.
user678392

Antworten:


16

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.×ΓkQ.×Γ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γΓγ_Γ#Γω=ω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:10101Band 2:Band 3:
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:

  1. Wir brauchen ein Symbol, das den Anfang und das Ende der simulierten Bänder kennzeichnet
  2. 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:10101Band 2:1Band 3:

0

Band 1:10101Band 2:1Band 3:1

Γ'

#10_101#1_#_#

Nach dem zweiten Schritt:

#101_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).


2
Alternativ können Sie separate " Spuren " verwenden, um die separaten Bänder nebeneinander in denselben Bereich zu schreiben. Dies beinhaltet jedoch die Einführung eines neuen Alphabets.
Hendrik Jan

2
@ user678392 Es würde mindestens ein paar Stunden dauern, die Konstruktion im Detail durchzugehen und alles hier aufzuschreiben. Wenn Sie nicht einmal erklären wollen, welchen Teil Sie nicht verstehen, warum sollte jemand so viel Arbeit in Ihrem Namen leisten? Und was ist, wenn jemand es tut? Wollen Sie nur sagen: "Ich verstehe es nicht. Jemand anderes tut es."
David Richerby

1
@ user678392 Danke. Und, um es zu verdeutlichen, ist es das Englisch, mit dem Sie Schwierigkeiten haben (dh, eine Neuformulierung hilft wahrscheinlich), oder benötigen Sie weitere Einzelheiten in der Erklärung?
David Richerby

1
@ user678392, ich habe ein Beispiel für die allgemeine Ansicht der ersten Schritte der Konvertierung und die praktische Ausgabe auf den Bändern hinzugefügt. Ich habe es vermieden, darüber zu diskutieren, wie man die neuen Zustände konstruiert, da dies sehr komplex ist und Sie keine bessere Erklärung erhalten als das, was in Sipser oder ähnlichem enthalten ist - es ist von Natur aus fummelig und mathematisch.
Luke Mathieson

1
@RomaKarageorgievich Es scheint, dass einige der klareren Beweise in den letzten 5 Jahren verschwunden sind (traue dem Internet nicht: D). Das klarste, was ich gefunden habe, ist hier (Warnung, DOC-Datei!). Der Beweis in Martins "Einführung in Sprachen und die Theorie der Berechnung" ist ziemlich gut, wenn Sie Zugang zu diesem Buch haben (S. 244 in der 4. Ausgabe). Der Beweis in Sipsers "Einführung in die Berechnungstheorie" ist ausreichend (S. 177 in der 3. Aufl.).
Luke Mathieson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.