Warum ist das Band nicht Teil der Definition einer Turingmaschine?

11

Ich habe mich gefragt, warum das Band / die Bänder nicht Teil der formalen Definition einer Turingmaschine sind. Betrachten Sie zum Beispiel die formale Definition einer Turing-Maschine auf der Wikipedia-Seite . Die Definition nach Hopcroft und Ullman, beinhaltet: die endliche Menge von Zuständen , um das Band Alphabet Γ , das leere Symbol b Γ , den Anfangszustand q 0Q , um den Satz von Endzuständen F Q , und die den Übergang Funktion δ : ( Q F ) × Γ Q × Γ ×Q. ΓbΓq0Q.F.Q. . Nichts davon ist das Band selbst.δ::(Q.F.)×ΓQ.×Γ×{L.,R.}}

Es wird immer davon ausgegangen, dass eine Turingmaschine auf einem Band arbeitet, und die Übergangsfunktion wird so interpretiert, dass sie den Kopf bewegt, das Symbol ersetzt und den Zustand ändert. Warum wird das Band in der mathematischen Definition einer Turing-Maschine nicht berücksichtigt?

Soweit ich sehen kann, scheint die formale Definition an sich nicht zu implizieren, dass die Turing-Maschine so funktioniert, wie sie oft informell beschrieben wird (mit einem Kopf, der sich auf einem Band bewegt). Oder doch?

Shuzheng
quelle
1
Der nächste Abschnitt in Wikipedia sagt: "In den Worten von van Emde Boas (1990), S. 6:" Das satztheoretische Objekt [seine formale Beschreibung mit sieben Tupeln ähnlich der obigen] liefert nur teilweise Informationen darüber, wie sich die Maschine verhält und wie seine Berechnungen aussehen werden. "" Es ist der Dichotomie / Synergie / Interdependenz zwischen Software und Hardware ziemlich ähnlich. Software setzt eine bestimmte Hardware voraus, auf der sie ausgeführt wird. Wenn jemand in Zukunft Software entdeckte, konnte er deren "Bedeutung" nicht verstehen, ohne auch die Hardware zu verstehen, auf der sie ausgeführt wird.
vzn
Warum ist die Straße nicht Teil des Autos?
Andrej Bauer

Antworten:

8

Um eine Instanz einer Turing-Maschine formal zu definieren (nicht das allgemeine Konzept), müssen Sie das Band selbst oder seinen Inhalt nicht explizit erwähnen. Um eine Konfiguration dieses bestimmten Computers oder eine von ihm durchgeführte Berechnung zu bezeichnen, benötigen Sie eine Notation, um den Inhalt des Bandes zu beschreiben.

André Souza Lemos
quelle
Es wird also nur ein Band benötigt, um eine Konfiguration und Berechnung zu definieren?
Shuzheng
Ja, die Maschine arbeitet nur mit dem Band. Unterschiedliche Inhalte des Bandes erzeugen keine unterschiedlichen Maschinen.
André Souza Lemos
1
Mit anderen Worten: Die Frage zitiert nur die Syntax von TMs. Nur beim Definieren der Semantik wird das Band in das Bild eingegeben. (Analogie: Die Syntaxdefinition von C (oder einer anderen Programmiersprache) erwähnt auch nicht den angenommenen Befehlssatz für Hardwarearchitektur / Betriebssystem / CPU.)
Raphael
Selbst semantisch ist es am natürlichsten, sich vorzustellen, dass die Maschine dieselbe Maschine bleibt, selbst wenn sich der Bandinhalt ändert. (Formal ist dies nicht der Fall, da der ursprüngliche Inhalt Teil der Definition der Maschine ist.)
Reinierpost
2

Es ist ein bisschen grau, aber ich würde sagen, die Definition trennt das Modell von der Instanz . Wenn Sie eine einfache Idee haben möchten, denken Sie an Hardware oder Software.

Das Modell ist die Hardware: Das ist ein Kopf. Es gibt ein Band. Das Band ist auf einer Seite unendlich und enthält Leerzeichen (neben der Eingabe). Der Kopf kann sich Schritt für Schritt bewegen.

Die Instanz ist die Software: Die Eingabe bestimmt, was das Band zu Beginn enthält, die Status- / Übergangsfunktion gibt an, wie sich der Kopf bewegt und wie die Maschine "funktioniert". Die Endzustände geben die Bedeutung von Erfolg / Misserfolg an.

Beide Parameter sind konfigurierbar - beide können geändert werden. Es gibt alternative Modelle mit zwei Bändern, zwei Köpfen, zweiseitigen Bändern, nicht leerem Band usw. Sobald Sie das Modell repariert haben, müssen Sie die anderen "konfigurierbaren" Parameter wie die Anzahl der möglichen Zustände und die Übergangsfunktion festlegen .

P.M.peinttern

Ran G.
quelle
1

Hier schon gute Antworten, aber ich versuche eine prägnante zu machen.

Definitionen sollten nicht übertrieben oder ausführlich sein.

In der Tat definiert die Turing-Maschinendefinition auch die Bandabstraktion. Das q0 - ist der Anfang des Bandes. Das Alphabet ist ein Inhalt des Bandes. Und δ: (Q ∖ F) × Γ → Q × Γ × {L, R} besagt, dass das Band links und rechts und unendlich in beide Richtungen hat.

Also, Band, Kopf, bewegt nur menschenfreundliche Darstellungen des Modells, sie sind bereits im mathematischen Modell , aber sie sind selbst kein formales Modell.

Les
quelle
1

Les liefert eine präzise und korrekte Antwort: Mathematische Definitionen sind so präzise wie möglich, und die explizite Einbeziehung eines unendlichen Bandes in eine Definition einer Turing-Maschine würde ihre Definition viel weniger präzise machen, also tun wir dies nicht.

Dies beantwortet nicht die Frage: Warum ? Wie kann die Definition das unendliche Band ausschließen, wenn wir eines benötigen?

Die Antwort: Wir nicht. In gewisser Weise benötigen Turing-Maschinen keine unendlichen Bänder, und ihre Definition macht dies deutlich.

Per Definition führt die Bewegung einer Turing-Maschine die Maschine von einer Konfiguration zur anderen. Eine Konfiguration enthält eine endliche Zeichenfolge, die wir als endliches Fragment eines geschriebenen Bandes betrachten. Bei jeder Bewegung wird der Bandkopf entweder um eine Position bewegt oder das Symbol unter dem Bandkopf überschrieben. Jedoch - und dies ist für seinen Betrieb wesentlich:

  • b, das leere Symbol.
  • wir können das unendlich oft tun .

Damit beliebige Turing-Maschinen unbegrenzt arbeiten können, ist an beiden Enden eine unendliche Menge an leeren Bandzellen erforderlich. In der Zwischenzeit ist seine Konfiguration, die die Bandlänge beschreibt, auf die es geschrieben hat, immer endlich: nachhern Schritte kann der Bandkopf nie weiter als verirrt sein n Zellen von seinem Ausgangspunkt.

Eine Möglichkeit, dies neu zu formulieren, besteht darin, zu sagen: Die Maschine arbeitet mit einem unendlichen Band, das vollständig mit Leerzeichen gefüllt ist, mit Ausnahme eines endlichen Fragments, auf dem sich der Bandkopf befindet. Das sagen die meisten Erklärungen.

Eine andere Möglichkeit, dies neu zu formulieren, besteht darin, zu sagen: Die Maschine arbeitet mit einem endlichen Band, das mit Leerzeichen verlängert wird, wenn sich der Kopf an beiden Enden vom Band entfernt.

Dies sind beide gültige Methoden zur Konzeption der Funktionsweise der Maschine: In beiden Fällen würde eine Turing-Maschine korrekt implementiert, wenn Sie tatsächlich eine solche Maschine hätten.

Wenn Sie nur daran interessiert sind, den Schülern die Funktionsweise von Turing-Maschinen beizubringen, spielt es wahrscheinlich keine Rolle, welche Konzeptualisierung Sie auswählen.

Ich denke jedoch, dass die erste Konzeptualisierung aus zwei Gründen ein Fehler ist:

  • Es ist unrealistisch . Wir können keine Maschine mit einem unendlichen Band bauen. Auf Anfrage können wir eine Maschine mit einem endlichen Band bauen.
  • Es ist nicht intuitiv. Wir denken nicht, dass Maschinen, die Aufgaben willkürlich oft ausführen, unendlich viele Ressourcen enthalten. Zum Beispiel denken wir nicht, dass ein Fotokopierer unendlich viel Kopierpapier enthält. Turingmaschinen modellieren die Rechenaktivität. Sie modellieren, was passieren würde, wenn wir einen Computer (der zum Zeitpunkt seiner Erfindung eine Frau war, die Berechnungen auf Papier durchführte) durch eine Maschine ersetzen würden, die beliebige programmierbare Berechnungen durchführen kann. Wir denken nicht, dass diese Frau unendlich viel Papier enthält. Wir gehen vielmehr davon aus, dass sie mit der benötigten Papiermenge versorgt wird, und wir betrachten ein Versäumnis als ein Versagen der Umwelt, anstatt zu sagen, dass eine solche Frau unmöglich existieren kann. Warum nicht dasselbe für die Maschine tun?
  • Es lädt zu irreführenden Schlussfolgerungen ein. Ich habe das viel gesehen. Zum Beispiel:
    • Die Leute sagen, Turing-Maschinen können nicht gebaut werden, während Finite-State-Maschinen dies können. Nun, wir können nicht mehr beliebige große Finite-State-Maschinen bauen, als wir einer Turing-Maschine beliebig viel Band liefern können.
    • Die Leute sagen, Turing-Maschinen modellieren Computer nicht richtig, während Finite-State-Maschinen dies tun. Dies dient dazu, einen wichtigen Punkt zu verdeutlichen: Wenn wir nur eine Maschine zur Entscheidung über Eingabesprachen verwenden möchten, kann ein Computer, der nur auf seinem (festen) internen Speicher arbeitet, jede Finite-State-Maschine bis zu einer bestimmten Größe vollständig implementieren Die meisten Turing-Maschinen können nicht vollständig implementiert werden, da für viele von ihnen kein interner Speicher mehr zur Verfügung steht. Dies wird jedoch häufig verallgemeinert, indem gesagt wird: Computer sind endliche Zustandsmaschinen, was irreführend ist:
      • Es zeichnet kein realistisches Bild der meisten Computerprogramme. Tatsächlich basiert die Datenflussprogrammierung tatsächlich auf endlichen Zustandsmaschinen, die traditionelle imperative Programmierung jedoch nicht. Es werden Programme verwendet, die den Turing-Maschineninstanzen viel näher kommen.
      • In der Praxis interagieren Computer auch mit externen Eingabe-, Ausgabe- und Speicherquellen, deren Größe nicht festgelegt ist.
      • Turingmaschinen sollen Computer überhaupt nicht modellieren; Sie modellieren willkürliches Rechnen.

Zusammenfassend lässt sich sagen, dass die Idee, dass Turing-Maschinen ein unendliches Band verwenden oder enthalten, einen wichtigen technischen Punkt hervorhebt, aber nicht unbedingt die intuitivste Art ist, über Turing-Maschinen nachzudenken, und bestimmte falsche Schlussfolgerungen einlädt. Mit Vorsicht verwenden.

Reinierpost
quelle