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 ist, 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.