Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. Turingmaschine
Turingmaschine 👆 Click Here!
ÜberprĂŒft
aus Wikipedia, der freien EnzyklopÀdie

Seitenversionsstatus

Dies ist eine gesichtete Version dieser Seite

Dies ist die gesichtete Version, die am 20. November 2025 markiert wurde. Es existieren 2 ausstehende Änderungen, die noch gesichtet werden mĂŒssen.

Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik, das eine abstrakte Maschine definiert. Bei diesem Rechnermodell werden nach festgelegten Regeln Manipulationen von Zeichen vorgenommen. Die Turingmaschine ist benannt nach dem britischen Mathematiker Alan Turing, der sie 1936/37 einfĂŒhrte.

Turingmaschinen machen die Begriffe des Algorithmus und der Berechenbarkeit mathematisch fassbar, das heißt, sie formalisieren diese Begriffe. Im Gegensatz zu einem physischen Computer ist eine Turingmaschine damit ein mathematisches Objekt und 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 als Zahlen. Damit beschreibt eine Turingmaschine eine Funktion, welche Zeichenketten, die anfangs auf dem Band stehen, auf Zeichenketten abbildet, die nach „Bearbeitung“ durch die Maschine auf dem Band stehen. Eine Funktion, die anhand einer Turingmaschine berechnet werden kann, wird Turing-berechenbar oder auch einfach berechenbar genannt.

Turingmaschinen spielen auch eine bedeutende Rolle bei der Akzeptanz von formalen Sprachen. So entsprechen die Sprachen, die von Turingmaschinen akzeptiert werden, den mit Typ-0-Grammatiken definierbaren Sprachen. Es konnte gezeigt werden, dass eine Transformationsgrammatik der Grammatik einer Turingmaschine entsprechen kann, die in der Lage ist, jede berechenbare Funktion zu berechnen.[1] Eine Sprache oder ein Computersystem heißen Turing-vollstĂ€ndig, wenn 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 langen Speicherband mit unendlich vielen sequentiell angeordneten Feldern. Pro Feld kann genau ein Zeichen aus einem vordefinierten Alphabet gespeichert werden. Als zusĂ€tzliches Zeichen ist ein Blank (englisch fĂŒr „leer/unbeschrieben“) zugelassen, das einem leeren Feld auf dem Speicherband entspricht.
  • einem programmgesteuerten Lese- 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 der Lese-Schreib-Kopf das 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 andere Automaten â€“ auch fĂŒr Entscheidungsprobleme eingesetzt, 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.

Bedeutung

[Bearbeiten | Quelltext bearbeiten]

Der Mathematiker Alan Turing stellte die Turingmaschine 1936 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 vor.

Das von Hilbert aufgestellte Entscheidungsproblem fragt, ob eine gegebene Formel der PrĂ€dikatenlogik allgemeingĂŒltig sei, also ob die Formel unter jeder Interpretation wahr sei. Hilbert stellte die Frage, ob dieses Problem automatisch gelöst werden könne. Die Methode, die fĂŒr eine prĂ€dikatenlogische Formel bestimmt, ob sie allgemeingĂŒltig sei, 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 als Church-Turing-These bekannt. 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 im Lambda-KalkĂŒl oder als partiell-rekursive Funktion sowie die Berechenbarkeit durch Registermaschinen, 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 der KomplexitĂ€ts- und Berechenbarkeitstheorie betrachtet werden.

Die KomplexitĂ€t (etwa Laufzeit- und SpeicherkomplexitĂ€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 einen wahlfreien Zugriff auf 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. Die KomplexitĂ€tstheorie befasst sich mit der Frage, fĂŒr welche Probleme Algorithmen mit welcher KomplexitĂ€t existieren, etwa in welchen KomplexitĂ€tsklassen Probleme 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 alle mathematischen Funktionen können von einer Turingmaschine berechnet werden, selbst wenn man sich auf wohldefinierte Funktionen mit endlicher Ein- und Ausgabe beschrĂ€nkt (etwa lassen sich Funktionen zwischen beliebigen reellen Zahlen nicht durch Funktionen mit endlicher Ein- und Ausgabe reprĂ€sentieren, da die reellen Zahlen ĂŒberabzĂ€hlbar sind, und es gibt formal gesehen Funktionen, die sich ĂŒberhaupt nicht spezifizieren lassen). So konnte Turing zeigen, dass eine Turingmaschine das Hilbert’sche Entscheidungsproblem nicht lösen kann, genauso wenig das Halteproblem.

Ebenfalls unentscheidbar ist nach dem Satz von Rice jede nicht-triviale Eigenschaft eines Programms in einer turingmÀchtigen Programmiersprache. Selbst wenn man sich auf terminierende Turingmaschinen beschrÀnkt, ist es unentscheidbar, ob zwei terminierende Turingmaschinen dieselbe Sprache akzeptieren. Die Berechenbarkeitstheorie beschÀftigt sich mit der Frage, welche Probleme von welchen Maschinenmodellen berechenbar bzw. nicht berechenbar sind.

Systeme, Computer und Programmiersprachen, die unter Ausblendung der BeschrÀnktheit des Speichers und damit verbundener Eigenschaften eine Turingmaschine emulieren könnten, werden als turingvollstÀndig bezeichnet.

Formale Definition

[Bearbeiten | Quelltext bearbeiten]

Formal kann eine deterministische Turingmaschine als 7-Tupel M = ( Q , ÎŁ , Γ , ÎŽ , q 0 , ◻ , F ) {\displaystyle M=(Q,\Sigma ,\Gamma ,\delta ,q_{0},\square ,F)} {\displaystyle M=(Q,\Sigma ,\Gamma ,\delta ,q_{0},\square ,F)} dargestellt werden (siehe auch nichtdeterministische Turingmaschine):

  • Q {\displaystyle Q} {\displaystyle Q} ist die endliche Zustandsmenge
  • ÎŁ {\displaystyle \Sigma } {\displaystyle \Sigma } ist das endliche Eingabealphabet
  • Γ {\displaystyle \Gamma } {\displaystyle \Gamma } ist das endliche Bandalphabet und es gilt ÎŁ ⊂ Γ {\displaystyle \Sigma \subset \Gamma } {\displaystyle \Sigma \subset \Gamma }
  • ÎŽ : ( Q ∖ F ) × Γ → Q × Γ × { L , N , R } {\displaystyle \delta \colon (Q\setminus F)\times \Gamma \to Q\times \Gamma \times \{L,N,R\}} {\displaystyle \delta \colon (Q\setminus F)\times \Gamma \to Q\times \Gamma \times \{L,N,R\}} ist die (partielle) ÜberfĂŒhrungsfunktion
  • q 0 ∈ Q {\displaystyle q_{0}\in Q} {\displaystyle q_{0}\in Q} ist der Anfangszustand
  • ◻ ∈ Γ ∖ ÎŁ {\displaystyle \square \in \Gamma \setminus \Sigma } {\displaystyle \square \in \Gamma \setminus \Sigma } steht fĂŒr das leere Feld (Blank)
  • F ⊆ Q {\displaystyle F\subseteq Q} {\displaystyle F\subseteq Q} die Menge der akzeptierenden EndzustĂ€nde

Die partielle ÜberfĂŒhrungsfunktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } liefert 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.

Konfigurationen

[Bearbeiten | Quelltext bearbeiten]
Konfiguration einer Turingmaschine im Zustand q 1 {\displaystyle q_{1}} {\displaystyle q_{1}}. Der Lese-Schreibkopf befindet sich ĂŒber dem grau hervorgehobenen 0 {\displaystyle 0} {\displaystyle 0}-Symbol. Verwendet man 0 {\displaystyle 0} {\displaystyle 0} als das Blank-Symbol der Turingmaschine, entspricht diese Konfiguration dem Tripel ( q 1 , Ï” , 011 B ) {\displaystyle (q_{1},\epsilon ,011B)} {\displaystyle (q_{1},\epsilon ,011B)}

Die Konfiguration einer Turingmaschine beschreibt nicht nur den ihr eigenen momentanen Zustand q ∈ Q {\displaystyle q\in Q} {\displaystyle q\in Q}, 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 q ∈ Q {\displaystyle q\in Q} {\displaystyle q\in Q}, einem endlichen Wort u ∈ Γ ∗ {\displaystyle u\in \Gamma ^{*}} {\displaystyle u\in \Gamma ^{*}}, das den Inhalt des Bands links des Lese-Schreib-Kopfes enthĂ€lt, und einem endlichen Wort v ∈ Γ ∗ {\displaystyle v\in \Gamma ^{*}} {\displaystyle v\in \Gamma ^{*}}, das den Inhalt des Bandes ab der aktuellen Position des Lese-Schreib-Kopfes enthĂ€lt. Eine Konfiguration ist also ein Tripel ( q , u , v ) {\displaystyle (q,u,v)} {\displaystyle (q,u,v)} mit q ∈ Q {\displaystyle q\in Q} {\displaystyle q\in Q}, u ∈ Γ ∗ {\displaystyle u\in \Gamma ^{*}} {\displaystyle u\in \Gamma ^{*}}, v ∈ Γ ∗ {\displaystyle v\in \Gamma ^{*}} {\displaystyle v\in \Gamma ^{*}}, wobei das Band durch u v {\displaystyle uv} {\displaystyle uv} gegeben ist und der Lese-Schreib-Kopf auf dem ersten Zeichen von v {\displaystyle v} {\displaystyle v} steht.

Oft werden Konfigurationen auch durch eine Folge X 1 X 2 
 X i − 1 q X i X i + 1 
 X n {\displaystyle X_{1}X_{2}\ldots X_{i-1}qX_{i}X_{i+1}\ldots X_{n}} {\displaystyle X_{1}X_{2}\ldots X_{i-1}qX_{i}X_{i+1}\ldots X_{n}}, mit X ℓ ∈ Γ {\displaystyle X_{\ell }\in \Gamma } {\displaystyle X_{\ell }\in \Gamma }, q ∈ Q {\displaystyle q\in Q} {\displaystyle q\in Q} beschrieben, bei der der aktuelle Zustand q {\displaystyle q} {\displaystyle q} an der aktuellen Position des Lese-Schreib-Kopfes in das Wort, das den Bandinhalt wiedergibt, eingefĂŒgt wird. X 1 {\displaystyle X_{1}} {\displaystyle X_{1}} ist das am weitesten links stehende nicht-leere Bandsymbol, X n {\displaystyle X_{n}} {\displaystyle X_{n}} das am weitesten rechts stehende nicht-leere Bandsymbol und X i {\displaystyle X_{i}} {\displaystyle X_{i}} das Symbol, ĂŒber dem sich der Lese-Schreib-Kopf befindet. Bewegt sich der Lese-Schreib-Kopf ĂŒber den Rand hinaus, sind der Konfiguration noch weitere ◻ {\displaystyle \square } {\displaystyle \square }-Symbole hinzuzufĂŒgen.

Durch eine Startkonfiguration wird das Eingabewort festgelegt. Eine ĂŒbliche Startkonfiguration ist q 0 X 1 
 X n {\displaystyle q_{0}X_{1}\ldots X_{n}} {\displaystyle q_{0}X_{1}\ldots X_{n}} mit Startzustand q 0 {\displaystyle q_{0}} {\displaystyle q_{0}} und Eingabewort X 1 
 X n {\displaystyle X_{1}\ldots X_{n}} {\displaystyle X_{1}\ldots X_{n}}. Diese entspricht dem Tripel ( q 0 , Ï” , X 1 
 X n ) {\displaystyle (q_{0},\epsilon ,X_{1}\ldots X_{n})} {\displaystyle (q_{0},\epsilon ,X_{1}\ldots X_{n})}, wobei Ï” {\displaystyle \epsilon } {\displaystyle \epsilon } das leere Wort ist.

Berechnung

[Bearbeiten | Quelltext bearbeiten]

Die ÜberfĂŒhrungsfunktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } gibt zu einer Startkonfiguration den Ablauf einer Turingmaschine vor. Sie wechselt in einem Schritt von der aktuellen Konfiguration in die Nachfolgekonfiguration. Ein solcher Schritt von Konfiguration c 1 {\displaystyle c_{1}} {\displaystyle c_{1}} zu Konfiguration c 2 {\displaystyle c_{2}} {\displaystyle c_{2}} kann als c 1 ⊱ c 2 {\displaystyle c_{1}\vdash c_{2}} {\displaystyle c_{1}\vdash c_{2}} dargestellt werden.

Schreibt die ÜberfĂŒhrungsfunktion fĂŒr einen Zustand q {\displaystyle q} {\displaystyle q} und das Eingabesymbol X i {\displaystyle X_{i}} {\displaystyle X_{i}} zum Beispiel vor, dass Y {\displaystyle Y} {\displaystyle Y} geschrieben wird, der Lese-Schreib-Kopf sich nach links bewegt und der Nachfolgezustand p {\displaystyle p} {\displaystyle p} ist, so bedeutet dies folgenden Schritt: X 1 
 X i − 1 q X i X i + 1 
 X n ⊱ X 1 
 p X i − 1 Y X i + 1 
 X n {\displaystyle X_{1}\ldots X_{i-1}qX_{i}X_{i+1}\ldots X_{n}\vdash X_{1}\ldots pX_{i-1}YX_{i+1}\ldots X_{n}} {\displaystyle X_{1}\ldots X_{i-1}qX_{i}X_{i+1}\ldots X_{n}\vdash X_{1}\ldots pX_{i-1}YX_{i+1}\ldots X_{n}}.

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 Endzustand q f ∈ F {\displaystyle q_{f}\in F} {\displaystyle q_{f}\in F} ist. 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.

Intuition

[Bearbeiten | Quelltext bearbeiten]

Die Turingmaschine fĂŒhrt eine Berechnung aus, indem sie schrittweise eine Eingabe in eine Ausgabe umwandelt. Ein- und 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 ◻ {\displaystyle \square } {\displaystyle \square }. Der Lese-Schreib-Kopf steht auf dem ersten Zeichen der Eingabe und die Turingmaschine befindet sich im Startzustand q 0 {\displaystyle q_{0}} {\displaystyle q_{0}}.

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 q f ∈ F {\displaystyle q_{f}\in F} {\displaystyle q_{f}\in F}, kann die Turingmaschine deshalb keine weiteren Aktionen durchfĂŒhren und die Berechnung ist beendet. Die Ausgabe ist dann der Inhalt des Bandes.

Beispiel

[Bearbeiten | Quelltext bearbeiten]

Die folgende deterministische Ein-Band-Turingmaschine M {\displaystyle M} {\displaystyle M} erwartet 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-Lese-Kopf befindet sich initial auf der ersten Eins. Der Anfangszustand ist s 1 {\displaystyle s_{1}} {\displaystyle s_{1}}, der Endzustand s 6 {\displaystyle s_{6}} {\displaystyle s_{6}}. Die Null steht fĂŒr das leere Feld ◻ {\displaystyle \square } {\displaystyle \square } und das Band besteht bis auf die darauf geschriebenen Einsen aus leeren Feldern.

M = ( Q , Σ , Γ , ή , s 1 , 0 , { s 6 } ) {\displaystyle M=(Q,\Sigma ,\Gamma ,\delta ,s_{1},0,\{s_{6}\})} {\displaystyle M=(Q,\Sigma ,\Gamma ,\delta ,s_{1},0,\{s_{6}\})}

  • Q = { s 1 , s 2 , s 3 , s 4 , s 5 , s 6 } {\displaystyle Q=\{s_{1},s_{2},s_{3},s_{4},s_{5},s_{6}\}} {\displaystyle Q=\{s_{1},s_{2},s_{3},s_{4},s_{5},s_{6}\}}
  • ÎŁ = { 1 } {\displaystyle \Sigma =\{1\}} {\displaystyle \Sigma =\{1\}}
  • Γ = { 1 , 0 } {\displaystyle \Gamma =\{1,0\}} {\displaystyle \Gamma =\{1,0\}}

Die ÜberfĂŒhrungsfunktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } ist wie folgt definiert:

Die ÜberfĂŒhrungsfunktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } als 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

M {\displaystyle M} {\displaystyle M} 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 s 1 {\displaystyle s_{1}} {\displaystyle s_{1}}. Hier wird die erste Eins durch ein leeres Feld ersetzt, der Schreib-Lese-Kopf bewegt sich nach rechts und neuer Zustand wird s 2 {\displaystyle s_{2}} {\displaystyle s_{2}}. Der Kopf wandert nun so lange nach rechts, bis ein leeres Feld gelesen wird. Danach gelangt die Turingmaschine in den Zustand s 3 {\displaystyle s_{3}} {\displaystyle s_{3}} und ĂŒberliest alle weiteren Einsen, bis sie erneut ein leeres Feld findet. Dieses wird dann durch eine Eins ersetzt. Im Zustand s 4 {\displaystyle s_{4}} {\displaystyle s_{4}} bewegt sich der Kopf zurĂŒck, ĂŒberliest wieder alle Einsen, bis er auf ein leeres Feld trifft, Zustandswechsel auf s 5 {\displaystyle s_{5}} {\displaystyle s_{5}}. Der Kopf bewegt sich nun solange nach links, bis das ursprĂŒnglich in Zustand s 1 {\displaystyle s_{1}} {\displaystyle s_{1}} 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 s 1 {\displaystyle s_{1}} {\displaystyle s_{1}}. Hier beginnt ein neuer Rechenzyklus.
Wird im Zustand s 1 {\displaystyle s_{1}} {\displaystyle s_{1}} ein leeres Feld gelesen, so gelangt die Turingmaschine M {\displaystyle M} {\displaystyle M} in den Endzustand s 6 {\displaystyle s_{6}} {\displaystyle s_{6}}, 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 Eingabealphabet und Bandalphabet 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 L {\displaystyle L} {\displaystyle L}, R {\displaystyle R} {\displaystyle R}.[3]
  • Die Funktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } ist als totale Funktion gegeben. Die Maschine hĂ€lt in EndzustĂ€nden und in ZustĂ€nden q ∈ Q {\displaystyle q\in Q} {\displaystyle q\in Q}, wenn das Symbol a {\displaystyle a} {\displaystyle a} gelesen wird und ÎŽ ( q , a ) = ( q , a , N ) {\displaystyle \delta (q,a)=(q,a,N)} {\displaystyle \delta (q,a)=(q,a,N)}.[4]
  • Semiunendliches Speicherband: Das Speicherband ist nur in eine Richtung unendlich. Es gibt ein spezielles Symbol, das den Anfang der Eingabe markiert. Der Lese-Schreib-Kopf 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. Selbst komplexitĂ€tstheoretisch sind die Unterschiede zwischen vielen der Varianten weitgehend zu vernachlĂ€ssigen. Insgesamt fĂŒhren sehr viele Varianten 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. 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 Beispiel nichtdeterministische Turingmaschinen und bestimmte Orakel-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): ein Kellerautomat mit zwei Kellerspeichern.
  • ZĂ€hlermaschinen (engl. counter machine)[8] mit mindestens zwei ZĂ€hlern.

ÜberfĂŒhrungsfunktion ÎŽ als Ganzzahl

[Bearbeiten | Quelltext bearbeiten]
Siehe auch: Gödelisierung von Turingmaschinen

In seinem ursprĂŒnglichen Artikel zu Hilberts Entscheidungsproblem beschreibt Alan Turing eine 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]
→ Hauptartikel: Universelle Turingmaschine

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 sogenannte universelle 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 des Halteproblems. Eine Ă€hnliche Idee, bei der das Programm als ein Teil der verĂ€nderbaren Eingabedaten betrachtet wird, liegt auch fast allen heutigen Rechnerarchitekturen zugrunde (Von-Neumann-Architektur).

Formal ist eine universelle Turingmaschine eine Maschine U T M ϕ {\displaystyle {\mathit {UTM}}_{\phi }} {\displaystyle {\mathit {UTM}}_{\phi }}, die eine Eingabe w ‖ x {\displaystyle w\|x} {\displaystyle w\|x} liest. Das Wort w {\displaystyle w} {\displaystyle w} ist hierbei eine hinreichend einfache Beschreibung einer Maschine M w {\displaystyle M_{w}} {\displaystyle M_{w}}, die zu einer bestimmten Funktion mit Eingabe x {\displaystyle x} {\displaystyle x} die Ausgabe berechnet. ‖ {\displaystyle \|} {\displaystyle \|} ist ein Trennzeichen zwischen Programmbeschreibung und Eingabe. U T M ϕ {\displaystyle {\mathit {UTM}}_{\phi }} {\displaystyle {\mathit {UTM}}_{\phi }} simuliert also das Verhalten von M w {\displaystyle M_{w}} {\displaystyle M_{w}} mit Hilfe der Funktionsbeschreibung w {\displaystyle w} {\displaystyle w} und der Eingabe x {\displaystyle x} {\displaystyle x}. Der Index ϕ {\displaystyle \phi } {\displaystyle \phi } in U T M ϕ {\displaystyle {\mathit {UTM}}_{\phi }} {\displaystyle {\mathit {UTM}}_{\phi }} zeigt an, dass es nicht nur eine einzige universelle Turingmaschine gibt. So könnten z. B. U T M 1 {\displaystyle {\mathit {UTM}}_{1}} {\displaystyle {\mathit {UTM}}_{1}} und U T M 2 {\displaystyle {\mathit {UTM}}_{2}} {\displaystyle {\mathit {UTM}}_{2}} verschiedene Wörter verstehen. Das Wort w {\displaystyle w} {\displaystyle w} muss dabei in einer Sprache codiert sein, die die U T M ϕ {\displaystyle {\mathit {UTM}}_{\phi }} {\displaystyle {\mathit {UTM}}_{\phi }} versteht.

Bekannte Turingmaschinen

[Bearbeiten | Quelltext bearbeiten]

Fleißiger Biber

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

Als Fleiß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 sogenannte RadĂł-Funktion) oder die Anzahl der Schritte zuordnet, die er braucht, um zu terminieren.

Ameise

[Bearbeiten | Quelltext bearbeiten]

Chris Langtons Ameise ist 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]
→ Hauptartikel: Nichtdeterministische Turingmaschine

Eine nichtdeterministische Turingmaschine verwendet anstatt der Übergangsfunktion ÎŽ {\displaystyle \delta } {\displaystyle \delta } eine Ü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]
→ Hauptartikel: Alternierende Turingmaschine

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]
→ Hauptartikel: Orakel-Turingmaschine

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 hierzu Turinggrad) oder auch die Definition zusĂ€tzlicher KomplexitĂ€tsklassen.

Probabilistische Turingmaschine

[Bearbeiten | Quelltext bearbeiten]
→ Hauptartikel: Probabilistische Turingmaschine

Probabilistische Turingmaschinen erlauben 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 â€“ einer zufĂ€llig ausgewĂ€hlt wird, und dienen der theoretischen Beschreibung randomisierter Algorithmen.[10]

Quanten-Turingmaschine

[Bearbeiten | Quelltext bearbeiten]

Quanten-Turingmaschinen dienen in der Quanteninformatik als abstrakte Maschinenmodelle zur theoretischen Beschreibung der Möglichkeiten von Quantencomputern. Quantenschaltungen sind in diesem Kontext als anderes verbreitetes Modell zu nennen.

Persistente Turingmaschine

[Bearbeiten | Quelltext bearbeiten]

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

Laut Definition[11] ist eine persistente Turingmaschine (PTM) eine nichtdeterministische 3-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.

Zenomaschine

[Bearbeiten | Quelltext bearbeiten]
→ Hauptartikel: Zenomaschine

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 eine Sprache L {\displaystyle L} {\displaystyle L}, wenn sie bei Eingabe eines jeden Wortes x ∈ L {\displaystyle x\in L} {\displaystyle x\in L} nach endlich vielen Schritten in einem akzeptierenden Zustand hĂ€lt und bei Eingabe eines jeden Wortes x ∉ L {\displaystyle x\notin L} {\displaystyle x\notin L} in einem nicht akzeptierenden Zustand oder ĂŒberhaupt nicht hĂ€lt.

Eine Sprache L ⊆ ÎŁ ⋆ {\displaystyle L\subseteq \Sigma ^{\star }} {\displaystyle L\subseteq \Sigma ^{\star }} heißt genau dann rekursiv aufzĂ€hlbar bzw. semientscheidbar (Typ 0 der Chomsky-Hierarchie), wenn es eine Turingmaschine gibt, die L {\displaystyle L} {\displaystyle L} akzeptiert.

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 Sprache L ⊆ Σ ⋆ {\displaystyle L\subseteq \Sigma ^{\star }} {\displaystyle L\subseteq \Sigma ^{\star }} heißt rekursiv oder entscheidbar genau dann, wenn es eine Turingmaschine gibt, die L {\displaystyle L} {\displaystyle L} entscheidet.

Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Rolf Herken (Hrsg.): The Universal Turing Machine. A Half-Century Survey (= Computerkultur. Band 2). 2. Auflage. Springer, Wien u. a. 1995, ISBN 3-211-82637-8. 
  • Juraj Hromkovič: Theoretische Informatik. Formale Sprachen, Berechenbarkeit, KomplexitĂ€tstheorie, Algorithmik, Kommunikation und Kryptographie. 3., ĂŒberarbeitete und erweiterte Auflage. Teubner, Wiesbaden 2007, ISBN 978-3-8351-0043-5. 
  • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation. 2. Auflage. Addison-Wesley, Boston MA u. a. 2001, ISBN 978-0-201-44124-6. 
  • Sybille KrĂ€mer: Symbolische Maschinen. Die Idee der Formalisierung im geschichtlichen Abriß. Wissenschaftliche Buchgesellschaft, Darmstadt 1988, ISBN 3-534-03207-1.
  • Heinz LĂŒneburg: Rekursive Funktionen. Springer, Berlin u. a. 2002, ISBN 3-540-43094-6. 
  • Marvin L. Minsky: Computation. Finite and Infinite Machines. Prentice-Hall, Englewood Cliffs NJ 1967.
  • Charles Petzold: The Annotated Turing. A guided Tour through Alan Turing’s historic Paper on Computability and the Turing Machine. John Wiley & Sons, Indianapolis IN 2008, ISBN 978-0-470-22905-7.
  • Boris A. Trachtenbrot: Algorithmen und Rechenautomaten. VEB Deutscher Verlag der Wissenschaften Berlin 1977.
  • Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. In: Proceedings of the London Mathematical Society. Band 42, 1937, ISSN 0024-6115, S. 230–265, doi:10.1112/plms/s2-42.1.230 (Oxford Journals). 
  • Christian Vater: Turings Maschinen. Eine Problemstellung zwischen Wissenschafts- und Technikgeschichte. Manutius, Heidelberg 2023, ISBN 978-3-944512-35-8. (=Dissertationsschrift UniversitĂ€t Heidelberg, mit ausfĂŒhrlicher Bibliographie)
  • Oswald Wiener, Manuel Bonik, Robert Hödicke: Eine elementare EinfĂŒhrung in die Theorie der Turing-Maschinen. Springer, Wien/New York 1998, ISBN 3-211-82769-2. 

Weblinks

[Bearbeiten | Quelltext bearbeiten]
Commons: Turing machines â€“ Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Turingmaschine â€“ BedeutungserklĂ€rungen, Wortherkunft, Synonyme, Übersetzungen
  • David Barker-Plummer: Turing Machines. In: Edward N. Zalta (Hrsg.): Stanford Encyclopedia of Philosophy.
  • Georg Weuffen: Die Turing-Maschine. In: MathePrisma Multimedia-Projekt der Bergischen UniversitĂ€t Wuppertal
  • Turingmaschinen auf informatikseite.de
  • Einband-/Mehrband-Turingmaschine: Simulation der Grundrechenarten (JavaScript)
  • Website ĂŒber eine physikalische Turing-Maschine (inklusive Video)
  • elstel.org/coan/ Turingsimulator: ein Programm, das auch nicht-deterministische Turingmaschinen und Maschinenschemata simulieren kann

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ George A. Miller: Wörter. StreifzĂŒge durch die Psycholinguistik. Herausgegeben und aus dem Amerikanischen ĂŒbersetzt von Joachim Grabowski und Christiane Fellbaum. Spektrum der Wissenschaft, Heidelberg 1993; Lizenzausgabe: Zweitausendeins, Frankfurt am Main 1995; 2. Auflage ebenda 1996, ISBN 3-86150-115-5, S. 255.
  2. ↑ a b Juraj 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 Turingmaschine auf der Seite des NIST
  11. ↑ Goldin et al., 2003: Turing Machines, Transition Systems and Interaction
Normdaten (Sachbegriff): GND: 4203525-9 (GND Explorer, lobid, OGND, AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Turingmaschine&oldid=261667229“
Kategorien:
  • Automatentheorie
  • KomplexitĂ€tstheorie
  • Berechenbarkeitstheorie
  • Alan Turing als Namensgeber

  • indonesia
  • Polski
  • Ű§Ù„ŰčŰ±ŰšÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±Ù‰
  • Nederlands
  • æ—„æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃŃŒĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐžĐč
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id