Turingmaschine

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

EineTuringmaschineist ein mathematischesModelldertheoretischen Informatik,das eineabstrakte Maschinedefiniert. Bei diesem Rechnermodell werden nach festgelegten Regeln Manipulationen vonZeichenvorgenommen. Die Turingmaschine ist benannt nach dem britischen MathematikerAlan Turing,der sie 1936/37 einführte.

Turingmaschinen machen die Begriffe desAlgorithmusund derBerechenbarkeitmathematischfassbar, das heißt, sie formalisieren diese Begriffe. Im Gegensatz zu einem physischen Computer ist eine Turingmaschine damit einmathematisches Objektund kann mit mathematischen Methoden untersucht werden.

Eine Turingmaschine repräsentiert einen Algorithmus bzw. ein Programm. Eine Berechnung besteht dabei aus schrittweisen Manipulationen von Symbolen bzw. Zeichen, die nach bestimmten Regeln auf ein Speicherband geschrieben und auch von dort gelesen werden. Ketten dieser Symbole können verschieden interpretiert werden, unter anderem alsZahlen.Damit beschreibt eine Turingmaschine eineFunktion,welche Zeichenketten, die anfangs auf dem Band stehen, auf Zeichenketten, die nach „Bearbeitung “durch die Maschine auf dem Band stehen, abbildet. Eine Funktion, die anhand einer Turingmaschine berechnet werden kann, wirdTuring-berechenbaroder auch einfachberechenbargenannt.

Turingmaschinen spielen auch eine bedeutende Rolle bei derAkzeptanzvonformalen Sprachen. So entsprechen die Sprachen, die von Turingmaschinen akzeptiert werden, den mitTyp-0-Grammatikendefinierbaren Sprachen. Es konnte gezeigt werden, dass eineTransformationsgrammatikder Grammatik einer Turingmaschine entsprechen kann, die in der Lage ist, jede berechenbare Funktion zu berechnen.[1]Eine Sprache oder ein Computersystem heißenTuring-vollständig,wenn sie beziehungsweise es alle Operationen ausführen kann, die eine universelle Turingmaschine ausführen kann.

Informelle Beschreibung

[Bearbeiten|Quelltext bearbeiten]
Ein-Band-Turingmaschine
Modell einer Turingmaschine

Die Turingmaschine hat ein Steuerwerk, in dem sich das Programm befindet, und besteht außerdem aus

  • einem unendlich langenSpeicherbandmit unendlich vielen sequentiell angeordnetenFeldern.Pro Feld kann genau einZeichenaus einem vordefiniertenAlphabetgespeichert werden. Als zusätzliches Zeichen ist ein Blank (englisch für „leer/unbeschrieben “) zugelassen, das einem leeren Feld auf dem Speicherband entspricht.
  • einemprogrammgesteuertenLese- und Schreibkopf, der sich auf dem Speicherband feldweise bewegen und die Zeichen verändern (im Fall eines zu ‚schreibenden‘ Blanks auch löschen) kann.

Eine Berechnung für ein Eingabewort startet mit dem Eingabewort auf dem Band und dem Lese- und Schreibkopf auf dem ersten Symbol des Eingabeworts. Die Turingmaschine verarbeitet dann die Eingabe auf dem Band schrittweise nach dem festgelegten Programm.

Mit jedem Schritt liest derLese-Schreib-Kopfdas aktuelle Zeichen, überschreibt dieses mit einem anderen (oder dem gleichen) Zeichen und bewegt sich dann ein Feld nach links oder rechts oder bleibt stehen. Welches Zeichen geschrieben wird und welche Bewegung ausgeführt wird, hängt von dem an der aktuellen Position vorgefundenen Zeichen sowie dem Zustand ab, in dem sich die Turingmaschine gerade befindet. Dies wird durch eine zu der Turingmaschine gehörende Überführungsfunktion definiert. Zu Beginn befindet sich die Turingmaschine in einem vorgegebenen Startzustand und geht bei jedem Schritt in einen neuen Zustand über. Die Anzahl der Zustände, in denen sich die Turingmaschine befinden kann, ist endlich. Ein Zustand kann mehrere Male durchlaufen werden, er sagt nichts über die auf dem Band vorliegenden Zeichen aus.

Eine Turingmaschine stoppt, wenn für den aktuellen Zustand und das gelesene Bandsymbol keine Überführung zu einem neuen Zustand definiert ist. Es hängt also im Allgemeinen von der Kombination aus Zustand und Symbol ab, ob die Turingmaschine weiter rechnet oder stoppt. Zustände, in denen die Turingmaschine unabhängig von dem gelesenen Bandsymbol anhält, bezeichnet man als Endzustände. Es gibt aber auch Turingmaschinen, die für gewisse Eingaben niemals stoppen.

Neben der Berechnung von Funktionen wird die Turingmaschine – wie viele andereAutomaten– auch fürEntscheidungsproblemeeingesetzt, also für Fragen, die mit „ja “oder „nein “zu beantworten sind. Bestimmte Endzustände werden als „akzeptierend “, andere als „nicht akzeptierend “definiert. Die Eingabe wird genau dann akzeptiert, wenn die Turingmaschine in einem akzeptierenden Endzustand endet.

Der MathematikerAlan Turingstellte die Turingmaschine 1936 im Rahmen des vonDavid Hilbertim Jahr 1920 formuliertenHilbertprogrammsspeziell zur Lösung des so genannten Entscheidungsproblems in der SchriftOn Computable Numbers, with an Application to the Entscheidungsproblemvor.

Das von Hilbert aufgestellteEntscheidungsproblemfragt, ob eine gegebene Formel derPrädikatenlogikallgemeingültigist, also ob die Formel unter jederInterpretationwahr ist. Hilbert stellte die Frage, ob dieses Problem automatisch gelöst werden kann. Die Methode, die für eine prädikatenlogische Formel bestimmt, ob sie allgemeingültig ist, soll also von einer „Maschine “durchgeführt werden können. Vor der Erfindung des Computers bedeutete dies, dass ein Mensch nach festen Regeln – einem Algorithmus – eine Berechnung durchführt.

Turing definierte mit seinem Modell die Begriffe des Algorithmus und der Berechenbarkeit als formale, mathematische Begriffe. Im Allgemeinen wird davon ausgegangen, dass die Turing-Berechenbarkeit das intuitive Verständnis von Berechenbarkeit trifft, diese Aussage ist alsChurch-Turing-Thesebekannt. Ihr wohnt eine starke Plausibilität inne, u. a. durch die mathematische Äquivalenz des Begriffs der Turing-Berechenbarkeit mit anderen Berechenbarkeits-Begriffen (wie zum Beispiel der Ausdrückbarkeit imLambda-Kalküloder alspartiell-rekursive Funktion,sowie die Berechenbarkeit durchRegistermaschinen,welche strukturell heute verwendeten Computern nachempfunden sind). Das Besondere an einer Turingmaschine ist dabei ihre strukturelle Einfachheit. Sie benötigt nur drei Operationen (Lesen, Schreiben und Schreib-Lese-Kopf bewegen), um alle Operationen der üblichen Computerprogramme zu simulieren. Im Rahmen der theoretischen Informatik eignet sie sich deshalb besonders gut zum Beweis von Eigenschaften formaler Probleme, wie sie von derKomplexitäts-undBerechenbarkeitstheoriebetrachtet werden.

DieKomplexität(etwaLaufzeit-undSpeicherkomplexität) von Algorithmen wird in Bezug auf bestimmte Maschinenmodelle definiert. Auf Turingmaschinen ist etwa die asymptotische Anzahl der Zustandsübergänge in Abhängigkeit von der Eingabelänge ein mögliches Laufzeitkomplexitätsmaß eines Algorithmus. Auf anderen Modellen werden oftmals Komplexitätsmaße definiert, die einenwahlfreien Zugriffauf jede Speicherzelle oder die Ausführung arithmetischer Operationen als einzelne Schritte definieren. Diese Maße eignen sich im beschränkten Rahmen (kleiner Datenmengen bzw. kleiner Zahlen) besonders gut, um die Laufzeit vieler Algorithmen auf realen Computern abzuschätzen und sind dementsprechend oft (insbesondere unspezifiziert) anzutreffen. Aufgrund der sequentiellen Struktur von Turingmaschinen ist daher die Laufzeitkomplexität im Sinne der asymptotischen Anzahl der Zustandsübergänge für viele Algorithmen verglichen mit Definitionen für Registermaschinen höher. DieKomplexitätstheoriebefasst sich mit der Frage, für welche Probleme Algorithmen mit welcher Komplexität existieren, etwa in welchenKomplexitätsklassenProbleme liegen bzw. nicht liegen. Sofern es bei der Untersuchung der Laufzeitkomplexität nicht auf Faktoren polynomiell in der Eingabelänge ankommt, sind Turingmaschinen hier recht allgemein einsetzbar, da die Simulation vieler Registermaschinen in vielen Komplexitätsmaßen nur polynomiellen Mehraufwand bedeutet.

Nicht allemathematischen Funktionenkönnen von einer Turingmaschine berechnet werden, selbst wenn man sich aufwohldefinierteFunktionen mit endlicher Ein- und Ausgabe beschränkt (etwa lassen sich Funktionen zwischen beliebigenreellen Zahlennicht durch Funktionen mit endlicher Ein- und Ausgabe repräsentieren, da die reellen Zahlenüberabzählbarsind, und es gibt formal gesehen Funktionen, die sich überhaupt nicht spezifizieren lassen). So konnte Turing zeigen, dass eine Turingmaschine das Hilbertsche Entscheidungsproblem nicht lösen kann, genauso wenig wie dasHalteproblem.

Ebenfalls unentscheidbar ist nach demSatz von Ricejedwede nicht-triviale Eigenschaft einesProgrammsin einerturingmächtigenProgrammiersprache. Selbst wenn man sich auf terminierende Turingmaschinen beschränkt, ist es unentscheidbar, ob zwei terminierende Turingmaschinen dieselbe Sprache akzeptieren. DieBerechenbarkeitstheoriebeschäftigt sich mit der Frage, welche Probleme von welchen Maschinenmodellen berechenbar bzw. nicht berechenbar sind.

Systeme,ComputerundProgrammiersprachen,die unter Ausblendung der Beschränktheit des Speichers und damit verbundener Eigenschaften eine Turingmaschineemulierenkönnten, werden alsturingvollständigbezeichnet.

Formale Definition

[Bearbeiten|Quelltext bearbeiten]

Formal kann einedeterministischeTuringmaschine als 7-Tupeldargestellt werden (siehe auchnichtdeterministische Turingmaschine).

  • ist die endliche Zustandsmenge
  • ist das endlicheEingabe Alpha bet
  • ist das endliche Band Alpha bet und es gilt
  • ist die (partielle) Überführungsfunktion
  • ist der Anfangszustand
  • steht für das leere Feld (Blank)
  • die Menge der akzeptierenden Endzustände

Die partielle Überführungsfunktionliefert zu einem Zustand und einem gelesenen Bandsymbol (i) den nächsten Zustand, (ii) ein Bandsymbol das in das aktuelle Feld geschrieben wird, und (iii) die Bewegungsrichtung des Lese-Schreib-Kopfes (L.. ein Feld nach links, N.. nicht bewegen, R.. ein Feld nach rechts). Da in akzeptierenden Endzuständen die Berechnung auf jeden Fall anhält, sind diese in der Definitionsmenge der Überführungsfunktion ausgenommen.

Konfiguration einer Turingmaschine im Zustand.Der Lese-Schreibkopf befindet sich über dem grau hervorgehobenen-Symbol. Verwendet manals das Blank Symbol der Turingmaschine, entspricht diese Konfiguration dem Tripel

Die Konfiguration einer Turingmaschine beschreibt nicht nur den ihr eigenen momentanen Zustand,sondern auch die Position des Lese-Schreib-Kopfes und die gerade auf dem Band vorhandenen Symbole. Die Symbole befinden sich in einem endlichen Bereich des Bandes, der von unendlich vielen leeren Symbolen umgeben ist. Es genügt deshalb, diesen endlichen Bereich zu betrachten.

Formal besteht eine Konfiguration aus dem aktuellen Zustand,einem endlichen Wort,das den Inhalt des Bands links des Lese-Schreib-Kopfes enthält und einem endlichen Wort,das den Inhalt des Bandes ab der aktuellen Position des Lese-Schreib-Kopfes enthält. Eine Konfiguration ist also ein Tripelmit,,, wobei das Band durchgegeben ist und der Lese-Schreib-Kopf auf dem ersten Zeichen vonsteht.

Oft werden Konfigurationen auch durch eine Folge,mitbeschrieben, bei der der aktuelle Zustand an der aktuellen Position des Lese-Schreibkopfes in das Wort, das den Bandinhalt wiedergibt, eingefügt wird. ist das am weitesten links stehende, nicht-leere Bandsymbol,das am weitesten rechts stehende, nicht-leere Bandsymbol, unddas Symbol über dem sich der Lese-Schreibkopf befindet. Bewegt sich der Lese-Schreib-Kopf über den Rand hinaus, sind der Konfiguration noch weitere-Symbole hinzuzufügen.

Durch eine Startkonfiguration wird das Eingabewort festgelegt. Eine übliche Startkonfiguration istmit Startzustandund Eingabewort. Diese entspricht dem Tripel,wobeidasleere Wortist.

Die Überführungsfunktiongibt zu einer Startkonfiguration den Ablauf einer Turingmaschine vor. Sie wechselt in einem Schritt von der aktuellen Konfiguration in die Nachfolgekonfiguration. Ein solcher Schritt von Konfigurationzu Konfigurationkann alsdargestellt werden.

Schreibt die Überführungsfunktion für einen Zustandund das Eingabesymbolzum Beispiel vor, dassgeschrieben wird, der Lese-Schreibkopf sich nach links bewegt und der Nachfolgezustandist, so bedeutet dies folgenden Schritt: .

Die Berechnung einer Turingmaschine ist eine endliche oder unendliche Folge von Konfigurationsschritten. Eine Turingmaschine akzeptiert ein durch die Startkonfiguration gegebenes Wort, wenn die Berechnung in dieser Startkonfiguration beginnt und in einer Konfiguration endet, in der die Turingmaschine in einem akzeptierenden Endzustandist. Endet die Berechnung in einer anderen Konfiguration, verwirft die Turingmaschine das Eingabewort. Ist die Berechnung der Turingmaschine unendlich, wird das Wort weder akzeptiert noch verworfen.

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 besteht aus leeren Feldern.Der Lese-Schreib-Kopf steht auf dem ersten Zeichen der Eingabe und die Turingmaschine befindet sich im Startzustand.

Die Überführungsfunktion gibt an, wie die Turingmaschine schrittweise den Bandinhalt liest und beschreibt, ihren Zustand wechselt und die Position des Lese-Schreib-Kopfes ändert. Diese Funktion nimmt als Argument den aktuellen Zustand und das Zeichen, das sich in der aktuellen Konfiguration unter dem Lese-Schreib-Kopf befindet. Als Ergebnis liefert sie dann:

  • genau einen Zustand (dieser wird zum Nachfolgezustand der Turingmaschine),
  • ein Zeichen (mit diesem wird der Inhalt des Feldes, auf welches der Lese-Schreib-Kopf weist, überschrieben) und
  • entweder das Symbol L (in diesem Fall bewegt sich der Lese-Schreib-Kopf um ein Feld nach links), R (in diesem Fall bewegt er sich ein Feld nach rechts) oder N (dann verharrt er auf demselben Feld).

Damit hat die Turingmaschine einen Schritt ihres Arbeitszyklus durchlaufen und steht für einen weiteren bereit.

Da die Überführungsfunktion partiell ist, muss sie nicht für jeden Zustand und jedes Eingabezeichen einen Übergang definieren. Der Endzustand hat beispielsweise für kein Eingabezeichen einen Nachfolgezustand. Erreicht die Turingmaschine einen Endzustand,kann die Turingmaschine deshalb keine weiteren Aktionen durchführen, und die Berechnung ist beendet. Die Ausgabe ist dann der Inhalt des Bandes.

Die folgende deterministische Ein-Band-Turingmaschineerwartet eine Folge von Einsen als Eingabe auf dem Band. Sie verdoppelt die Anzahl der Einsen, wobei ein Leersymbol in der Mitte stehen bleibt. Aus „11 “wird beispielsweise die Zeichenfolge „11011 “. Der Schreib-/Lesekopf befindet sich initial auf der ersten Eins. Der Anfangszustand ist,der Endzustand.Die Null steht für das leere Feldund das Band besteht bis auf die darauf geschriebenen Einsen aus leeren Feldern.

Die Überführungsfunktionist wie folgt definiert:

Die Überführungsfunktionals Graph
aktueller
Zustand
geles.
Symbol
schr.
Symbol
neuer
Zustand
Kopf-
richtung
s1 1 0 s2 R
s1 0 0 s6 N
s2 1 1 s2 R
s2 0 0 s3 R
s3 1 1 s3 R
s3 0 1 s4 L
s4 1 1 s4 L
s4 0 0 s5 L
s5 1 1 s5 L
s5 0 1 s1 R

durchläuft im oben erwähnten Beispiel, also bei der Eingabe „11 “, folgende Zustände, wobei die aktuelle Kopfposition fett gedruckt ist:

Die beschriebene Turingmaschine auf die Eingabe „11 “angewandt.
Schritt Zust. Band
1 s1 11000
2 s2 01000
3 s2 01000
4 s3 01000
5 s4 01010
6 s5 01010
7 s5 01010
8 s1 11010
Schritt Zust. Band
9 s2 10010
10 s3 10010
11 s3 10010
12 s4 10011
13 s4 10011
14 s5 10011
15 s1 11011
16 s6 -halt-

Die Berechnung beginnt im Anfangszustand.Hier wird die erste Eins durch ein leeres Feld ersetzt, der Schreib-Lese-Kopf 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 Zustandund überliest alle weiteren Einsen, bis sie erneut ein leeres Feld findet. Dieses wird dann durch eine Eins ersetzt. Im Zustandbewegt 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 Zustandgeschriebene 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 Zustandein leeres Feld gelesen, so gelangt die Turingmaschinein den Endzustand,woraufhin die Berechnung beendet wird.

Äquivalente Varianten der Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

In der Literatur findet man zahlreiche unterschiedliche Definitionen und Varianten der Turingmaschine, die sich jeweils in einigen Details unterscheiden. Diese sind äquivalent in dem Sinne, dass Turingmaschinen einer Definition leicht in Turingmaschinen der anderen Definitionen umgewandelt werden können, sodass diese die gleichen Berechnungen durchführen. Häufige Abweichungen von der obigen Definition sind:

  • Es wird nicht zwischen Eingabe Alpha bet und Band Alpha bet unterschieden.
  • Statt einer Menge von akzeptierenden Endzuständen gibt es nur einen einzigen akzeptierenden Endzustand.
  • Zusätzlich zu einem oder mehreren akzeptierenden Endzuständen gibt es noch einen oder mehrere verwerfende Endzustände.[2]
  • Der Lese-Schreib-Kopf bewegt sich immer entweder nach links oder nach rechts. Für die Bewegung des Kopfes gibt es also nur die Symbole.[3]
  • Die Funktionist als totale Funktion gegeben. Die Maschine hält in Endzuständen und in Zuständen,wenn das Symbolgelesen wird und.[4]
  • Semiunendliches Speicherband: Das Speicherband ist nur in eine Richtung unendlich. Es gibt ein spezielles Symbol, das den Anfang der Eingabe markiert. Der Lese-/Schreibkopf kann sich dann nicht darüber hinaus nach links bewegen, aber beliebig weit nach rechts.[2]

Zudem gibt es Erweiterungen, die ebenfalls hinsichtlich der Berechenbarkeit äquivalent zu Turingmaschinen sind. Selbstkomplexitätstheoretischsind die Unterschiede zwischen vielen der Varianten weitgehend zu vernachlässigen. Insgesamt führen sehr viele Varianten zu nicht mehr alspolynomialenAufwandsunterschieden (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. Es gibt jedoch auch hinsichtlich der Berechenbarkeit, nicht aber der Komplexität (im Sinne von „bis auf polynomiellen Mehraufwand “), äquivalente Erweiterungen der Turingmaschine, wie zum Beispielnichtdeterministische Turingmaschinenund bestimmteOrakel-Turingmaschinen.

  • Mehrspuren-Turingmaschine(engl.Multi-track Turing machine): Turingmaschinen, die erlauben, mehrere Symbole in ein Feld des Speicherbands zu speichern.
  • Mehrband-Turingmaschine(engl.Multitape Turing machine): Turingmaschinen mit mehreren Bändern mit jeweils einem Lese-Schreib-Kopf.
  • Vergessliche Turingmaschine (engl.Oblivious Turing machines): Eine Turingmaschine wird vergesslich[5]oder auch bewegungsuniform[6]genannt, falls die Kopfbewegungen nicht vom konkreten Inhalt der Eingabe abhängen, sondern nur von der Länge der Eingabe. Jede Turingmaschine kann durch eine vergessliche simuliert werden.[7]
  • Zweikellerautomat(engl.Two-stack Push Down Automaton): EinKellerautomatmit zweiKellerspeichern.
  • Zählermaschinen (engl.Counter Machine)[8]mit mindestens 2 Zählern.

Überführungsfunktion δ als Ganzzahl

[Bearbeiten|Quelltext bearbeiten]

In seinem ursprünglichen Artikel zu Hilberts Entscheidungsproblem beschreibtAlan Turingeine Möglichkeit, die Überführungsfunktion, die man meistens grafisch abbildet oder in einer Tabelle aufschreibt, mithilfe einer einzigen Zahl zu definieren.[9]Dazu überführt er die Tabelle zuerst in eine Normalform und ersetzt dann die einzelnen Zustände, Buchstaben und Anweisungen durch Zahlen, die dann zu einer langen Zahl zusammengefasst werden.

Universelle Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

In der obigen Definition ist das Programm fest in die Maschine eingebaut und kann nicht verändert werden. Kodiert man die Beschreibung einer Turingmaschine als hinreichend einfache Zeichenkette, so kann man eine sogenannteuniverselle Turingmaschine– selbst eine Turingmaschine – konstruieren, welche eine solche Kodierung einer beliebigen Turingmaschine als Teil ihrer Eingabe nimmt und das Verhalten der kodierten Turingmaschine auf der ebenfalls gegebenen Eingabe simuliert. Aus der Existenz einer solchen universellen Turingmaschine folgt zum Beispiel die Unentscheidbarkeit desHalteproblems.Eine ähnliche Idee, bei der das Programm als ein Teil der veränderbaren Eingabedaten betrachtet wird, liegt auch fast allen heutigenRechnerarchitekturenzugrunde (Von-Neumann-Architektur).

Formal ist eine universelle Turingmaschine eine Maschine,die eine Eingabeliest. Das Wortist hierbei eine hinreichend einfache Beschreibung einer Maschine,die zu einer bestimmten Funktion mit Eingabedie Ausgabe berechnet.ist ein Trennzeichen zwischen Programmbeschreibung und Eingabe.simuliert also das Verhalten vonmit Hilfe der Funktionsbeschreibungund der Eingabe.Der Indexinzeigt an, dass es nicht nur eine einzige universelle Turingmaschine gibt. So könnten z. B.undverschiedene Wörter verstehen. Das Wortmuss dabei in einerSprachecodiert sein, die dieversteht.

Bekannte Turingmaschinen

[Bearbeiten|Quelltext bearbeiten]
Fleißiger Biber mit 2 Zuständen + Endzustand, der vier ‚1‘ schreibt, bevor er terminiert

AlsFleißige Biber(engl.Busy Beaver) werden die deterministischen Turingmaschinen bezeichnet, die bezogen auf alle terminierenden, deterministischen Turingmaschinen mit derselben Anzahl von Zuständen und Symbolen die maximale Anzahl eines bestimmten Symbols auf das Band schreiben und dann anhalten. Es existiert keine berechenbare Funktion, die einer gegebenen Anzahl von Symbolen und Zuständen eines entsprechenden Fleißigen Bibers die Anzahl der von ihm am Ende geschriebenen Symbole (die sogenannteRadó-Funktion) oder die Anzahl der Schritte zuordnet, die er braucht, um zu terminieren.

Chris LangtonsAmeiseist eine Turingmaschine mit zweidimensionalem Band (eigentlich eine Fläche) und sehr einfachen Regeln, dessen Bandinhalt als zweidimensionales Bild zunächst chaotisch aussieht, jedoch nach über 10.000 Schritten eine gewisse sichtbare Struktur herausbildet.

An Turingmaschinen angelehnte Maschinenmodelle

[Bearbeiten|Quelltext bearbeiten]

Nichtdeterministische Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Eine nichtdeterministische Turingmaschine verwendet anstatt der Übergangsfunktioneine Übergangsrelation. In der Konfiguration dieser nichtdeterministischen Turingmaschine kann es daher mehrere Möglichkeiten für den nächsten Berechnungsschritt geben. Die Maschine akzeptiert ein Wort, wenn eine der möglichen Berechnungen, die mit dem Wort als Eingabe starten, einen akzeptierenden Endzustand erreicht.

Alternierende Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Eine alternierende Turingmaschine ist eine nichtdeterministische Turingmaschine, welche die Regeln für die Akzeptanz einer Eingabe erweitert. Dabei werden existentielle und universelle Zustände der Maschine unterschieden. Erstere akzeptieren eine Eingabe, wenn es eine mögliche Berechnung gibt, die akzeptiert, während die zweiten Zustände Eingaben nur dann akzeptieren, wenn alle möglichen Berechnungen akzeptiert werden.

Orakel-Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Orakel-Turingmaschinen sind Verallgemeinerungen der Turingmaschine, bei der die Turingmaschine in einem Schritt bestimmte zusätzliche Operationen durchführen kann, etwa die Lösung unentscheidbarer oder nur mit hohem Aufwand entscheidbarer Probleme. Somit erlauben Orakel-Turingmaschinen eine weitere Kategorisierung unentscheidbarer Probleme, siehe hierzuTuringgrad,oder auch die Definition zusätzlicher Komplexitätsklassen.

Probabilistische Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Probabilistische Turingmaschinenerlauben für jeden Zustand und jede Eingabe zwei (oder äquivalent dazu endlich viele) mögliche Übergänge, von denen bei der Ausführung – intuitiv ausgedrückt – einerzufälligausgewählt wird, und dienen der theoretischen Beschreibungrandomisierter Algorithmen.[10]

Quanten-Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Quanten-Turingmaschinendienen in derQuanteninformatikals abstrakte Maschinenmodelle zur theoretischen Beschreibung der Möglichkeiten vonQuantencomputern.Quantenschaltungensind in diesem Kontext als anderes verbreitetes Modell zu nennen.

Persistente Turingmaschine

[Bearbeiten|Quelltext bearbeiten]

Um interaktiveModelle(im Sinne von „Modellen mit Gedächtnis “) durch eine Turingmaschine darzustellen, ist eine Erweiterung derselben um ebendieses Gedächtnis notwendig.

Laut Definition[11]ist einePersistente Turingmaschine(PTM) einenichtdeterministische3-Band-Turingmaschine mit einem Eingabe-, einem Arbeits- und einem Ausgabeband. Die Eingabe wird auf dem Arbeitsband verarbeitet, und erst nach vollständiger Bearbeitung gelangen die Ergebnisse auf dem Ausgabeband zurück in die „Umwelt “. Danach kann eine erneute Eingabe aus der Umwelt verarbeitet werden. Zwischen zwei Arbeitsschritten bleiben die Inhalte des Arbeitsbandes als „Gedächtnis “erhalten.

Die Zenomaschine ist eine in geometrischer Reihe beschleunigt immer schneller rechnende Turingmaschine. Sie stellt ein fiktives Modell jenseits der Turing-Berechenbarkeit dar.

Beziehung zwischen einer Turingmaschine und einer formalen Sprache

[Bearbeiten|Quelltext bearbeiten]

Akzeptierte Sprache

[Bearbeiten|Quelltext bearbeiten]

Eine Turingmaschine akzeptiert eineSprache,wenn sie bei Eingabe eines jeden Wortesnach endlich vielen Schritten in einem akzeptierenden Zustand hält und bei Eingabe eines jeden Wortesin einem nicht akzeptierenden Zustand oder überhaupt nicht hält.

Eine Spracheheißt genau dannrekursiv aufzählbarbzw. semientscheidbar (Typ 0 derChomsky-Hierarchie), wenn es eine Turingmaschine gibt, dieakzeptiert.

Entscheidbare Sprache

[Bearbeiten|Quelltext bearbeiten]

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 Spracheheißt rekursiv oderentscheidbargenau dann, wenn es eine Turingmaschine gibt, dieentscheidet.

Commons:Turing machines– Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Turingmaschine– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
  1. George A. Miller:Wörter. Streifzüge durch die Psycholinguistik.Herausgegeben und aus dem Amerikanischen übersetzt vonJoachim GrabowskiundChristiane Fellbaum.Spektrum der Wissenschaft, Heidelberg 1993; Lizenzausgabe: Zweitausendeins, Frankfurt am Main 1995; 2. Auflage ebenda 1996,ISBN 3-86150-115-5,S. 255.
  2. abJuraj Hromkovič:Theoretische Informatik.Formale Sprachen, Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kommunikation und Kryptographie. 3. Auflage. B.G. Teubner Verlag, Heidelberg 2007,ISBN 978-3-8351-0043-5.
  3. John E. Hopcroft,Rajeev Motwani,Jeffrey D. Ullman:Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie.3., aktualisierte Auflage. Pearson Studium, München 2011,ISBN 978-3-86894-082-4.
  4. Ingo Wegener:Theoretische Informatik. Eine algorithmenorientierte Einführung.B.G. Teubner, Stuttgart,ISBN 3-519-02123-4.
  5. auf Englisch: oblivious, siehe Sanjeev Arora, Boaz Barak:Computational Complexity: A Modern Approach.Cambridge University Press, Cambridge / New York 2009,ISBN 978-0-521-42426-4,S.45(princeton.edu[PDF; abgerufen am 13. Juni 2013]).
  6. Karl Rüdiger Reischuk:Komplexitätstheorie.2. Auflage. Band I:Grundlagen.Teubner, 1999,ISBN 978-3-519-12275-3,S.103.
  7. Sanjeev Arora, Boaz Barak:Computational Complexity: A Modern Approach.Cambridge University Press, Cambridge / New York 2009,ISBN 978-0-521-42426-4,S.19(princeton.edu[PDF; abgerufen am 13. Juni 2013] Remark 1.10).
  8. John E. Hopcroft,Rajeev Motwani,Jeffrey D. Ullman:Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie.3., aktualisierte Auflage. Pearson Studium, München 2011,ISBN 978-3-86894-082-4,8.5.3 Zählermaschinen 8.5.4 Die Leistungsfähigkeit von Zählermaschinen.
  9. Alan Turing:On Computable Numbers, with an Application to the Entscheidungsproblem.November 1936,S.8–10.
  10. Eintrag zur probabilistischen Turingmaschineauf der Seite desNIST
  11. Goldin et al., 2003:Turing Machines, Transition Systems and Interaction