Kürzlich wurde ich in meiner CS-Klasse in die Turing-Maschine eingeführt.
Nach dem Unterricht habe ich über 2 Stunden lang versucht, die Beziehung zwischen einem Band und einer Maschine herauszufinden.
Ich war mir der Existenz von Computerbändern oder der Interaktion von Bändern und Maschinen bis heute überhaupt nicht bewusst. Ich kann immer noch nicht verstehen, warum eine Maschine Bänder lesen würde, aber ein Scanner ist vielleicht eine nähere Vorstellung von der Turing-Maschine, bei der Papier als Band betrachtet wird und alles, was in einen Scanner gehört, das ist, was eine Turing-Maschine tun würde.
Aber ist die Idee einer Turing-Maschine nicht archaisch? Wir haben so viele physische (anstatt hypothetische) Geräte in unserem Büro oder Wohnzimmer, die genau das tun, was die Turing-Maschine zu tun scheint.
Kann jemand ein besseres Beispiel aus der Realität liefern, damit die wesentlichen Funktionen dieser hypothetischen Konzeption erfasst werden?
quelle
Antworten:
Turing-Maschinen sind neben der Rechnung und den rekursiv definierten rekursiven Funktionen eines der "ursprünglichen" Turing-vollständigen Rechenmodelle . Heutzutage wird in vielen Bereichen der theoretischen Informatik ein anderes Modell verwendet, die RAM-Maschine, die den tatsächlichen Computern viel näher kommt. Da beide Modelle p-äquivalent sind (sie simulieren sich mit höchstens polynomieller Vergrößerung), sind beide Modelle aus der Sicht von Fragen wie P gegen NP äquivalent.λ
quelle
AFAIK the Turing Machine ist der Idee eines Menschen mit Stift und Papier nachempfunden. Der Mensch hat einen bestimmten Zustand im Gehirn, schaut auf das Papier wie die Maschine auf das Band und schreibt etwas auf das Papier oder bewegt sich, um einen anderen Ort zu betrachten, genau wie die Maschine.
TM ist archaisch als Peano Natural Number Arithmetic. TM ist für die praktische Berechnung unbrauchbar und natürlich nicht dafür vorgesehen. Es ist nur ein einfacher Weg, die Berechnung zu axiomatisieren, damit wir überlegen können, was berechenbar ist und was nicht - genau wie Peano-Arithmetik nützlich ist, um anhand erster Prinzipien zu definieren, was natürliche Zahlen sind und welche Eigenschaften sie haben -, aber es wäre lächerlich, wenn Versuchen Sie zu rechnen, indem Sie die Peano-Zahlen von Hand gemäß den theoretischen Definitionen manipulieren.
Stellen Sie sich vor, wie schwierig es wäre, andere Sätze als die Komplexitäts- und Berechenbarkeitstheorie zu beweisen (z. B. zu beweisen, dass das Halting-Problem unentscheidbar ist), wenn Sie sie mit der Semantik der Programmiersprache C ++ anstelle der Turing-Maschine beweisen müssten. Ihre Beweise wären lächerlich oder unmöglich - so lächerlich wie der Nachweis der Assoziativität der natürlichen Zahlenmultiplikation, indem Sie die auf Dezimalzahlen angewandte Grundschulmethode als Ihre Definition der Multiplikation verwenden.
quelle
Viele sehr unterschiedliche Turing-Komplettberechnungsmodelle sind physikalisch realisierbar (bis hin zu Unendlich als Zeichen für Unbegrenztheit). Das kann also nicht der Punkt für die Auswahl eines Modells sein.
Die Antwort von @jkff ist angebracht, um zu bemerken, dass die Turing-Maschine als theoretisches Gerät für den mathematischen Zweck des Studierens von Berechenbarkeit und Beweisbarkeit gedacht ist (was sich tatsächlich im Zusammenhang mit Hilberts Entscheidungsproblem ergibt ). Die Gründe für die Wahl eines einfachen Formalismus sind jedoch nicht ganz richtig.
Das Problem des Anhaltens zu beweisen ist bei fortgeschritteneren Modellen nicht so viel schwieriger. Tatsächlich sind unsere "Beweise" oft nur die Konstruktion einer Lösung. Wir gehen nicht viel auf die tatsächlichen (sehr mühsamen) Argumente ein, dass diese Konstruktionen korrekt sind. Aber jeder, der einen Dolmetscher für eine vollständige Sprache von Turing schreibt, macht so viel wie jede Konstruktion einer Universalmaschine. Nun, C kann ein bisschen kompliziert sein, und wir möchten es vielleicht für einen solchen Zweck ein bisschen rationalisieren.
Die Wichtigkeit eines einfachen Modells besteht vielmehr darin, dass das Modell verwendet werden kann, als dass seine Eigenschaften festgelegt werden (z. B. das Halteproblem, um das von @jkff angegebene Beispiel zu nennen).
Typischerweise sind große Theoreme häufig Theoreme, die sehr einfach ausgedrückt werden können und auf eine Vielzahl von Problemen anwendbar sind. Aber es sind nicht unbedingt Theoreme, die leicht zu beweisen sind.
Im Fall von TM liegt die Bedeutung der Einfachheit darin, dass viele Ergebnisse erzielt werden, indem das Halteproblem oder andere TM-Probleme auf die Probleme reduziert werden, an denen wir interessiert sind (z. B. die Ambiguität kontextfreier Sprachen), wodurch inhärente Einschränkungen für die Lösung festgelegt werden diese Probleme.
Obwohl das TM-Modell sehr intuitiv ist (was wahrscheinlich der Hauptgrund für seine Beliebtheit ist), ist es für die Verwendung in solchen Beweisen häufig nicht einfach genug. Dies ist ein Grund für die Bedeutung einiger anderer, noch einfacherer Modelle, wie beispielsweise des Post-Correspondence-Problems , das weniger intuitiv zu analysieren ist, aber einfacher zu handhaben ist. Dies liegt jedoch daran, dass diese Rechenmodelle häufig verwendet werden, um negative Ergebnisse zu belegen (was auf das ursprüngliche Entscheidungsproblem zurückgeht).
Wenn wir jedoch positive Ergebnisse nachweisen möchten, z. B. die Existenz eines Algorithmus zur Lösung eines bestimmten Problems, ist das TM ein viel zu simples Gerät. Es ist viel einfacher, fortgeschrittene Modusmodelle wie den RAM-Computer oder einen assoziativen Speichercomputer oder eines von vielen anderen Modellen oder auch nur eine der vielen Programmiersprachen in Betracht zu ziehen .
Dann ist das TM-Modell nur ein Bezugspunkt, insbesondere für die Komplexitätsanalyse, da die Reduktion dieser Modelle auf das TM-Modell (in der Regel polynomisch) kompliziert ist. Die Einfachheit des TM-Modells verleiht Komplexitätsmaßen dann viel Glaubwürdigkeit (im Gegensatz dazu, um ein extremes Beispiel zu nehmen, um die Reduktionen von Lambda-Kalkül).
Mit anderen Worten, das TM-Modell ist oft zu einfach, um Algorithmen zu entwerfen und zu untersuchen (positive Ergebnisse), und oft zu komplex, um die Berechenbarkeit zu untersuchen (negative Ergebnisse).
Aber es scheint an der richtigen Stelle zu sein, um als zentrales Bindeglied zu fungieren , um alles miteinander zu verbinden, mit dem großen Vorteil, ziemlich intuitiv zu sein.
In Bezug auf physikalische Analogien gibt es keinen Grund, ein Modell einem anderen vorzuziehen. Viele Turing-Komplettberechnungsmodelle sind physikalisch realisierbar (bis hin zu unbegrenztem Speicher), da es keinen Grund gibt, einen Computer zusammen mit seiner Software als weniger physikalisch als einen "nackten" Computer zu betrachten. Immerhin hat die Software eine physische Darstellung, die Teil des programmierten Computers ist. Da alle Berechnungsmodelle in dieser Hinsicht gleichwertig sind, können wir auch eines wählen, das für die Organisation von Wissen geeignet ist.
quelle
Stellen Sie sich einen Neuling in der Geometrie vor und fragen Sie:
Gibt es eine physikalische Analogie zum Dreieck?
Ist die Idee eines Dreiecks nicht ziemlich archaisch? Wir haben so viele physische (anstatt hypothetische) Formen in unserem Büro oder Wohnzimmer, die zu tun scheinen, was das Dreieck tut.
Was würdest du antworten?
Man könnte sagen, dass diese Fragen zwei grundlegende Missverständnisse über Dreiecke aufdecken:
Gleiches gilt für Turingmaschinen.
Es ist so lange her, dass ich mich mit Geometrie vertraut gemacht habe. Ich kann mich wirklich nicht erinnern, ob ein Neuling diese falschen Vorstellungen über Dreiecke hat. Aber wenn es um Turing-Maschinen geht, stoße ich die ganze Zeit auf diese Missverständnisse . Tatsächlich scheint so oft etwas grundlegend Falsches daran zu sein, wie sie normalerweise unterrichtet werden. Vielleicht ist ein Show-and-Tell- Ansatz angebracht!
Der Vollständigkeit halber:
quelle
Die physikalische Analogie, die Turing zu haben scheint, ist ein Computer, der Probleme mit Bleistift, Papier und Radiergummi auslöst. Sie sollten verstehen, dass 1936 ein "Computer" eine Person war, die zum Rechnen eingesetzt wurde. Natürlich verwendeten die meisten Computer im Jahr 1936 Addiermaschinen, aber Turing erwähnt diese nicht, da sie unwesentlich sind. Dies ist, was er in Bezug auf das Band sagt, um zu rechtfertigen, dass "die 'berechenbaren' Zahlen [dh diejenigen, die eine Turing-Maschine berechnen könnte] alle Zahlen enthalten, die natürlich als berechenbar angesehen würden".
Obwohl Computer kein Beruf mehr ist, wurde den Kindern beim letzten Mal beigebracht, Algorithmen mit Bleistift und Papier als Speichermedium auszuführen. Obwohl diese Analogie altmodisch oder gar archaisch erscheint, ist sie noch nicht überholt.
Weitere Informationen finden Sie unter Über berechenbare Zahlen mit einer Anwendung auf das Entscheidungsproblem , insbesondere in den Abschnitten 1 und 9.
quelle
@jkff hat die Idee etwa
the Turing Machine is modeled on the idea of a human with a pen and paper
nicht ganz richtig. Es gibt jedoch viele Situationen, in denen dies als richtig angesehen werden kann.Denken Sie an den Menschen als Turing-Maschine unter bestimmten Projektionen der Staaten. Mit anderen Worten, wenn Sie einen Menschen nur während seiner Arbeitszeit sehen, führt er während seiner Arbeitszeit bestimmte Aufgaben aus. Diese Aufgaben sind die Grundaufgaben für den Job.
Wenn Sie sich nicht für sein Privatleben interessieren, was er zu Hause, in seinem Zimmer usw. tut, können Sie dies als Projektion seiner Übergangsfunktion in eine neue Übergangsfunktion betrachten, in der nicht arbeitsbezogene Zustände ignoriert werden. Mit anderen Worten, Sie können alle Zustände und Aufgaben überspringen, die nichts mit Ihrem Anliegen und Ihrer Perspektive zu tun haben.
In diesem Modell wird die Turing-Maschine einem Menschen nachgebildet, der mit einem Stift und Papier eine festgelegte Aufgabe erledigt (dh in einer festgelegten Perspektive betrachtet). Das Band ist das, was er auf das Papier schreibt (alle Papiere ignorieren oder auf etwas Papier schreiben, das er nicht für die Aufgabe schreibt)
Wenn Sie andere Aufgaben berücksichtigen, die er erledigt, dann haben Sie eine Vereinigung vieler Turing-Maschinen in einem Menschen. Aber was ist, wenn er seinen Job wechselt und eine andere Aufgabe übernimmt? Dann wechselt sein Gehirnzustand zu einer anderen Turingmaschine, wenn er in einem anderen Zeitrahmen aus einer anderen Perspektive betrachtet wird.
Wenn Sie eine gute Antwort auf Ihre Frage wollen, dann hat Yuval Filmus sie wohl gut beantwortet. Verwenden Sie das RAM-Modell. Bleib dabei.
quelle