Die Turingmaschine ist ein von dem britischen Mathematiker Alan Turing 1936 entwickeltes mathematisches Modell, um eine Klasse von berechenbaren Funktionen zu bilden. Sie wurde im Rahmen des von David Hilbert im Jahr 1920 formulierten Hilbertprogramms, speziell zur Lösung des so genannten Entscheidungsproblems, in der Schrift "On Computable Numbers, with an Application to the Entscheidungsproblem" vorgestellt. Alan Turing beabsichtigte mit der Turingmaschine ein Modell des mathematisch arbeitenden Menschen zu schaffen.
Das Besondere an einer Turingmaschine ist, dass sie mit nur drei Operationen (Lesen, Schreiben und Kopf bewegen) die Probleme lösen kann, die auch von einem Computer gelöst werden könnten. Sämtliche mathematischen Grundfunktionen, wie Addition und Multiplikation lassen sich mit diesen drei Operationen simulieren. Darauf aufbauend kann man schließlich komplexere Programme simulieren.
Die Church-Turing-These stellt schließlich die Behauptung auf, dass eine Turingmaschine alle von Menschen berechenbaren mathematischen Funktionen lösen kann. Daraus darf jedoch nicht gefolgert werden, dass eine Turingmaschine alle mathematischen Funktionen lösen kann. So kann etwa an Hand des Halteproblems gezeigt werden, dass es mathematische Funktionen gibt, die nicht von Menschen (und folglich auch nicht von einer Turingmaschine) berechnet werden können.
Die Turingmaschine besteht aus
Eine Turingmaschine modifiziert die Eingabe auf dem Band nach einem gegebenen Programm. Ist die Berechnung beendet, so befindet sich das Ergebnis auf dem Band. Es wird somit jedem Eingabewert ein Ausgabewert zugeordnet. Eine Turingmaschine muss aber nicht für alle Eingaben stoppen. In diesem Fall ist die Funktion für die Eingabe undefiniert.
Als Ergebnis der Berechnung wird manchmal diejenige Zeichenfolge definiert, die nach dem Anhalten auf dem Band steht. Die Turingmaschine wird jedoch meistens (wie viele andere Automaten auch) für Entscheidungsprobleme eingesetzt, also für Fragen, die mit „ja“ oder „nein“ zu beantworten sind. Hierbei werden zum Beispiel zwei Zeichen vereinbart, wobei das eine als „ja“ und das andere als „nein“ interpretiert wird. Nach dem Anhalten der Turingmaschine liegt die Antwort als eines der beiden Zeichen auf dem Ausgabeband vor. Zu beachten ist dabei, dass sich jedes Problem als Entscheidungsproblem formulieren lässt, indem man fragt, ob ein bestimmter Wert eine Lösung für ein konkretes Problem ist.
Grundsätzlich werden in der Automatentheorie deterministische und nichtdeterministische Automaten unterschieden.
Formal kann eine deterministische Turingmaschine als 7-Tupel dargestellt werden.
Die Turingmaschine führt eine Berechnung aus, indem sie schrittweise eine Eingabe in eine Ausgabe umwandelt. Ein-, Ausgabe und Zwischenergebnisse werden auf dem unendlich langen Band gespeichert.
Zu Beginn steht ein Wort als Eingabe auf dem Band (pro Bandfeld ein Zeichen des Eingabewortes), der Rest des Bandes ist mit dem leeren Feld „formatiert“. Der Schreib-/Lesekopf steht auf dem ersten Zeichen der Eingabe und die TM befindet sich im (Start-)Zustand .
Die Überführungsfunktion gibt an, wie die Turingmaschine schrittweise den Bandinhalt, ihren Zustand und die Position des Schreib-/Lesekopfes ändert. Diese Funktion nimmt als Argument den aktuellen Zustand und das Zeichen, was sich im aktuellen Schritt unter dem Schreib-/Lesekopf befindet. Als Ergebnis liefert sie dann genau einen Zustand (dieses wird dann der Nachfolgezustand der Turingmaschine), ein Zeichen (mit diesem Zeichen wird dann der Inhalt des Feldes, auf das der Schreib-/Lesekopf weist, überschrieben) und entweder das Symbol L (in diesem Fall bewegt sich der Schreib-/Lesekopf um ein Feld nach links), ein R (in diesem Fall bewegt er sich ein Feld nach rechts) oder eine 0 (dann verharrt er auf dem selben Feld). Damit hat die TM einen Schritt ihres Arbeitszyklus' durchlaufen und steht für einen weiteren bereit.
Erreicht die Turingmaschine einen Endzustand, also einen Zustand der Menge , ist die Berechnung beendet. Die Ausgabe ist dann der Inhalt des Bandes (wobei die Felder, die mit Symbolen aus gefüllt sind, insbesondere dem Symbol , nicht berücksichtigt werden).
Je nach Bandalphabet können Ein-/Ausgaben und Zwischenspeicherungen unterschiedlich kenntlich gemacht werden.
Bei der nichtdeterministischen Turingmaschine ändert sich die Überführungsfunktion zu
.
Hierbei steht wie üblich für die Potenzmenge. Das heißt, dass das Ergebnis der Überführungsfunktion eine Menge von Überführungstripeln ist, und nicht mehr genau ein Überführungstripel.
Durch diese Überführungsrelation ist der Folgezustand, der sich aus dem aktuellen Bandzeichen und dem aktuellen Zustand ergibt, nicht mehr eindeutig bestimmt. Die Turingmaschine hat also im Allgemeinen zu jedem Berechnungszeitpunkt eine Auswahl an Folgezuständen, wodurch verschiedene nicht eindeutig vorherbestimmte Rechenwege möglich sind.
Mit anderen Worten: Bei jeder erneuten Ausführung einer nichtdeterministischen Turingmaschine auf der gleichen Eingabe kann diese jedes Mal eine andere Ausgabe liefern. Dieses seltsame Verhalten ist jedoch für Entscheidungsprobleme sinnvoll, also solche Probleme, bei der zu jeder Eingabe nur die Ausgaben „ja“ oder „nein“ erfolgen (also das Eingabewort „akzeptiert“ wird oder „nicht akzeptiert“ wird). Hierbei akzeptiert die nichtdeterministische Turingmaschine die Eingabe, wenn es eine nichtdeterministische Berechnung der Turingmaschine auf dieser Eingabe gibt, deren Ausgabe „ja“ ist.
* * * * alter geles. schr. neuer Kopf- alter geles. schr. neuer Kopf- Zust. Symbol Symbol Zust. richtg. Zust. Symbol Symbol Zust. richtg.
durchläuft zum Beispiel bei der Eingabe "11" folgende Zustände, wobei die aktuelle Kopfposition fett gedruckt ist:
Schritt Zust. Band Schritt Zust. Band
Die Berechnung beginnt im Anfangszustand . Hier wird die erste Eins durch ein leeres Feld ersetzt, der Schreib-/Lesekopf bewegt sich nach rechts und neuer Zustand wird . Der Kopf wandert nun solange nach rechts, bis ein leeres Feld gelesen wird. Danach gelangt die Turingmaschine in den Zustand und überliest alle weiteren Einsen, bis sie erneut ein leeres Feld findet. Dieses wird dann durch eine Eins ersetzt. Im Zustand bewegt sich der Kopf zurück, überliest wieder alle Einsen, bis er auf ein leeres Feld trifft, Zustandswechsel auf . Der Kopf bewegt sich nun solange nach links, bis das ursprünglich in Zustand geschriebene leere Feld gefunden wird. Dieses wird wieder durch eine Eins ersetzt, der Kopf bewegt sich ein Feld nach rechts und die Turingmaschine gelangt wieder in den Zustand . Hier beginnt ein neuer Rechenzyklus.
Wird im Zustand ein leeres Feld gelesen, so gelangt die Turingmaschine in den Endzustand , woraufhin die Berechnung beendet wird.
In der Literatur findet man zahlreiche unterschiedliche Definitionen der Turingmaschine, die sich jeweils in einigen Details unterscheiden. So variieren etwa die Anzahl der Bänder, das verwendete Bandalphabet, die zusätzlich verwendeten Spezialzeichen und andere Eigenschaften. Die Vielfalt ist theoretisch durch die These von Church gerechtfertigt, welche im Hinblick auf die Berechenbarkeit die Äquivalenz aller universellen Maschinenmodelle postuliert. Selbst komplexitätstheoretisch sind die Unterschiede zwischen verschiedenen Definitionen weitgehend zu vernachlässigen. So lässt sich etwa jede f(n)-zeitbeschränkte k-Bandmaschine mit beliebig großem k durch eine nur O(f²(n))-zeitbeschränkte 1-Bandmaschine simulieren. Für die Simulation beliebig vieler Bänder kommt es also zu einem maximal quadratischen Mehraufwand. Insgesamt führen alle Arten von Variationen zu nicht mehr als polynomialen Aufwandsunterschieden (wobei Aufwand hier eine beliebige Ressource meint) und sind daher für viele komplexitätstheoretische Untersuchungen vernachlässigbar. Man passt in Abhängigkeit von den Zielen der jeweiligen Analyse das verwendete Modell so an, dass die Analyse möglichst einfach durchgeführt werden kann. Folgende Beispiele zeigen Anwendungen und Variationen des Turingmaschinen-Modells.
Formal ist eine universelle Turingmaschine eine Maschine , die eine Eingabe liest. Das Wort ist hierbei eine beliebige Beschreibung einer Maschine , die zu einer bestimmten Funktion mit Eingabe die Ausgabe berechnet. ist ein Trennzeichen zwischen Programmbeschreibung und Eingabe. simuliert also das Verhalten von mit Hilfe der Funktionsbeschreibung und der Eingabe . Der Index in zeigt an, dass es nicht nur eine einzige universelle Turingmaschine gibt. So könnten z.B. und verschiedene Wörter verstehen. Das Wort muss dabei in einer Sprache codiert sein, die die versteht.
Laut Definition (Goldin et al., 2003: Turing Machines, Transition Systems and Interaction) ist eine Persistente Turingmaschine (PTM) eine nichtdeterministische 3-Band-Turingmaschine mit einem Input-, einem Arbeits- und einem Output-Band. Der Input wird auf dem Arbeits-Band verarbeitet und erst nach vollständiger Bearbeitung gelangen die Ergebnisse auf dem Output-Band zurück in die "Umwelt". Danach kann ein erneuter Input aus der Umwelt verarbeitet werden. Zwischen zwei Arbeitsschritten bleiben die Inhalte des Arbeits-Bandes als "Gedächtnis" erhalten.
Eine Turingmaschine akzeptiert eine Sprache , wenn sie bei Eingabe eines jeden Wortes nach endlich vielen Schritten in einen der definierten Endzustände übergeht. Wenn die Turingmaschine in einem anderen Zustand oder gar nicht hält, dann wird die Eingabe von ihr nicht akzeptiert.
Eine Sprache heißt genau dann rekursiv aufzählbar (Typ 0 der Chomsky-Hierarchie), wenn es eine deterministische Turingmaschine gibt, die akzeptiert.
Akzeptiert eine Turingmaschine eine Sprache und hält sie zusätzlich bei allen Eingaben, die nicht zu dieser Sprache gehören, so entscheidet die Turingmaschine diese Sprache.
Eine Sprache heißt genau dann rekursiv bzw. entscheidbar, wenn es eine deterministische Turingmaschine gibt, die L entscheidet.
Die Menge der Turing-berechenbaren Funktionen ist die Menge aller Funktionen, die sich mit einer Turingmaschine berechnen lassen (die Turingmaschine muss die Aktion (H) ausführen!). Es gibt noch andere Verfahren, über die man Berechenbarkeit von Funktionen definieren kann, z. B. über rekursive Funktionen. Da andere Verfahren aber nachweislich dieselbe Klasse von Funktionen beschreiben wie die der Turingmaschine, liegt die Vermutung nahe, dass alle (intuitiv) berechenbaren Funktionen bereits durch das einfache Modell der Turingmaschine berechnet werden können. Dieses Ergebnis der Berechnungstheorie wird in der Churchschen These zusammengefasst.
Automatentheorie | Komplexitätstheorie | Formale Sprachen | Berechenbarkeitstheorie
آلة تورنج | Машина на Тюринг | Turingova mašina | Màquina de Turing | Turingův stroj | Turingmaskine | Turing machine | Maŝino de Turing | Máquina de Turing | Turingi masin | Turingin kone | Machine de Turing | מכונת טיורינג | Turing-gép | Mesin Turing | Macchina di Turing | チューリングマシン | 튜링 기계 | Turingmaschinn | Tiuringo mašina | Turingmachine | Maszyna Turinga | Máquina de Turing | Maşină Turing | Машина Тьюринга | Turingov stroj | Turingov stroj | Тјурингова машина | Turingmaskin | เครื่องจักรทัวริง | Turing makinesi | Машина Т'юрінга | 图灵机
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Turingmaschine".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world