Turing -Maschine entschlossen

Im Computerbarkeitstheorie, a entschlossen ist ein Turing Maschine Das hält für jede Eingabe an.[1] Ein Entschlossenheit wird auch als a genannt Total Turing Machine[2] wie es darstellt a Gesamtfunktion.

Da es immer annimmt, kann eine solche Maschine entscheiden, ob eine bestimmte Zeichenfolge ein Mitglied von a ist formelle Sprache. Die Klasse von Sprachen, die von solchen Maschinen entschieden werden können rekursive Sprachen.

Bei einer willkürlichen Turing -Maschine ist es ein Entschlossenheit, zu bestimmen, ob es sich um einen Entschlossenheit handelt unentschlossenes Problem. Dies ist eine Variante der Problem stoppen, was fragt, ob eine Turing -Maschine bei einem bestimmten Eingang anhält.

Funktionen, die von Total Turing -Maschinen berechnet werden können

In der Praxis sind viele interessante Funktionen von Maschinen berechnet, die immer anhalten. Eine Maschine, die nur ein endlicher Speicher für eine bestimmte Eingabe verwendet Ablaufsteuerung Funktionen, damit kein Eingang jemals dazu führt, dass die Maschine eine betritt Endlosschleife. Als triviales Beispiel eine Maschine, die eine Fleiharche implementiert Entscheidungsbaum wird immer anhalten.

Es ist jedoch nicht erforderlich, dass die Maschine völlig frei von Schleifenfunktionen ist, um das Anhalten zu garantieren. Wenn wir Schleifen so einschränken, dass sie eine vorhersehbar endliche Größe haben (wie die für die Schleife in BASIC), wir können alle ausdrücken primitive rekursive Funktionen (Meyer und Ritchie, 1967). Ein Beispiel für eine solche Maschine wird von der bereitgestellt Spielzeugprogrammiersprache Pl- {goto} von Brainerd und Landweber (1974).

Wir können eine Programmiersprache weiter definieren, in der wir sicherstellen können, dass noch anspruchsvollere Funktionen immer anhalten. Zum Beispiel die Ackermann -Funktion, was nicht primitiv rekursiv ist, ist dennoch eine durch a berechnete Gesamtfunktion, die berechnet werden kann Begriff umschreiben System mit a Reduktionsbestellung über seine Argumente (Ohlebusch, 2002, S. 67).

Trotz der oben genannten Beispiele für Programmiersprachen, die die Beendigung der Programme garantieren, gibt es keine Programmiersprache, die genau das erfasst Gesamt rekursive Funktionen, d. H. Die Funktionen, die von einer Turing -Maschine berechnet werden können, die immer angehalten wird. Dies liegt daran, dass die Existenz einer solchen Programmiersprache ein Widerspruch gegen die Nicht-SEMI-Dekidabilität des Problems wäre, ob eine Turing-Maschine bei jedem Eingang hält.

Beziehung zu teilweise Turing -Maschinen

Eine allgemeine Turing -Maschine berechnet eine Teilfunktion. Zwei Fragen können zur Beziehung zwischen teilweise Turing -Maschinen und Total -Turing -Maschinen gestellt werden:

  1. Kann jede teilweise Funktion, die von einer teilweisen Turing -Maschine berechnet werden kann, erweitert werden (dh seine Domäne vergrößert), um eine totale berechnungsbare Funktion zu werden?
  2. Ist es möglich, die Definition einer Turing -Maschine so zu ändern, dass eine bestimmte Klasse von Gesamt -Turing -Maschinen, die alle berechnungsbaren Gesamtfunktionen berechnet, gefunden werden kann?

Die Antwort auf jede dieser Fragen ist nein.

Der folgende Satz zeigt, dass die von Maschinen berechneten Funktionen, die immer anhalten, nicht Erweiterungen aller teilweise berechneten Funktionen enthalten, was impliziert, dass die erste Frage eine negative Antwort aufweist. Diese Tatsache ist eng mit der algorithmischen Unlösbarkeit des Problem stoppen.

Satz-Es gibt Turing Computable Teilfunktionen Das hat keine Erweiterung auf eine total rechenbare Funktion. Insbesondere die Teilfunktion f definiert so f(n) = m wenn und nur wenn die Turing -Maschine mit Index n Halt bei der Eingabe 0 mit Ausgang m hat keine Erweiterung auf eine total berechnbare Funktion.

In der Tat, wenn g waren eine total berechnungsbare Funktion, die sich erstreckte f dann g würde von einer Turing -Maschine berechnet; Fix e als Index einer solchen Maschine. Bauen eine Turing -Maschine M, verwenden Kleenes Rekursionstheorem, was bei der Eingabe 0 simuliert die Maschine mit Index e Laufen auf einem Index nM zum M (somit die Maschine M kann einen Index von sich selbst erzeugen; Dies ist die Rolle des Rekursionstheorems). Nach Annahme wird diese Simulation schließlich eine Antwort zurückgeben. Definieren M[klären] so dass wenn g(nM) = m dann der Rückgabewert von M ist . Daher f(nM), der wahre Rückgabewert von M auf Eingabe 0, wird nicht gleich g(nM). Somit g erstreckt sich nicht f.

In der zweiten Frage wird im Wesentlichen gefragt, ob es ein weiteres vernünftiges Berechnungsmodell gibt, das nur Gesamtfunktionen berechnet und alle berechnungsbaren Gesamtfunktionen berechnet. Wenn ein solches Modell vorhanden war, kann jeder seiner Computer von einer Turing -Maschine simuliert werden. Wenn also dieses neue Berechnungsmodell aus einer Sequenz bestand von Maschinen würde es a geben rekursiv aufgezählt Reihenfolge von Turing -Maschinen, die die Gesamtfunktionen berechnen und so dass jede Gesamtfunktion der gesamten berechnungsbaren Funktion von einer der Maschinen berechnet wird Ti. Das ist unmöglich, weil eine Maschine T könnte so konstruiert werden, dass bei der Eingabe i Die Maschine T kehrt zurück . Diese Maschine kann keiner Maschine gleich sein T Auf der Liste: Angenommen, es stand auf der Liste des Index j. Dann , was kein Ganzzahlergebnis zurückgibt. Daher kann es nicht insgesamt sein, aber die Funktion nach Bau muss insgesamt sein (wenn die Gesamtfunktionen rekursiv aufgezählt werden, kann diese Funktion konstruiert werden), was ein Widerspruch ist. Dies zeigt, dass die zweite Frage eine negative Antwort hat.

Der Satz von Indizes der gesamten Turing -Maschinen

Das Entscheidungsproblem ob die Turing -Maschine mit Index e Es ist nicht entzündbar. Tatsächlich ist dieses Problem auf dem Niveau des arithmetische Hierarchie. Daher ist dieses Problem streng schwieriger als das Halting problem, was fragt, ob die Maschine mit Index e Halt bei der Eingabe 0. Intuitiv ist dieser Unterschied in der Unlöslichkeit darin, dass jede Instanz des "Gesamtmaschinen" -Problems unendlich viele Fälle des Stoppproblems darstellt.

Vorsicht

Man kann nicht nur daran interessiert sein, ob eine Turing -Maschine total ist, sondern auch daran, ob dies in einem bestimmten logischen System nachgewiesen werden kann, wie z. erste Bestellung Peano -Arithmetik.

In einem Klang Proof-System, jede nachweislich totale Turing-Maschine ist in der Tat total, aber das Gegenteil ist nicht wahr: informell gibt es für jedes so starke Beweissystem erster Ordnung, das stark genug ist (einschließlich Erdbaumarithmetik), es gibt Turing-Maschinen, die als total angenommen werden, aber aber kann nicht als solche bewiesen werden, es sei denn, das System ist inkonsistent (in diesem Fall kann man alles beweisen). Der Beweis für ihre Gesamtheit beruht entweder auf einigen Annahmen oder erfordert ein anderes Beweissystem.

Da man also alle Beweise im Proof -System aufzählen kann, kann man eine Turing -Maschine auf Eingabe n erstellen, die die ersten N -Beweise durchläuft und nach einem Widerspruch suchen. Wenn es einen findet, gerät es in eine unendliche Schleife und hält niemals an; Ansonsten hält es an. Wenn das System ist konsistentDie Turing -Maschine stoppt jeden Eingang, aber man kann dies nicht in einem ausreichend ausreichend Beweissystem durchliegenden System beweisen Gödels unvollständige Theoreme.

Man kann auch eine Turing-Maschine erstellen, die nur dann anhält, wenn das Proof-System inkonsistent ist und daher für ein konsistentes System nicht zutreffend ist, aber nicht nachgewiesen werden kann: Dies ist eine Turing-Maschine, die unabhängig von der Eingabe alle Beweise aufzählt und hält im Widerspruch.

Eine Turing -Maschine, die durchgeht Goodstein -Sequenzen und hält bei Null insgesamt, kann aber nicht als solche als solche nachgewiesen werden.

Siehe auch

Verweise

  1. ^ Sipser, 1996[Seite benötigt]
  2. ^ Kozen, 1997[Seite benötigt]