Turingmaschine: Aufbau, Ablauf und Grenzen
Eine Turingmaschine ist ein mathematisches Modell für Algorithmen. Sie liest ein Symbol, schreibt ein Symbol, bewegt ihren Kopf und wechselt dabei den Zustand. Trotz dieser einfachen Arbeitsweise kann sie jeden Algorithmus ausführen, der im Sinn der Turingmaschine berechenbar ist – aber nicht jedes mathematische Problem ist algorithmisch lösbar.
Auf dieser Seite lernst du, wie eine Turingmaschine aufgebaut ist, wie du ihre Schritte simulierst und wie du Akzeptieren, Verwerfen und Nichtterminierung unterscheidest.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Aus diesen Teilen besteht eine Turingmaschine
Stell dir ein in einzelne Zellen unterteiltes Band vor. Auf jeder Zelle steht genau ein Symbol. Ein beweglicher Kopf bearbeitet jeweils eine dieser Zellen.
Turingmaschine
Eine Turingmaschine ist ein abstraktes Berechnungsmodell mit einem Band, einem Lese-Schreib-Kopf, endlich vielen Zuständen und festen Übergangsregeln. Sie ist keine physische Maschine, sondern ein mathematisches Modell.
Die wichtigsten Bestandteile sind:
- Das Band dient als Speicher. Es ist konzeptionell unbegrenzt und besteht aus einzelnen Zellen.
- Das Bandalphabet enthält alle Symbole, die auf dem Band stehen dürfen.
- Das Blank-Symbol
□kennzeichnet eine leere Zelle. - Der Lese-Schreib-Kopf liest die aktuelle Zelle, kann sie überschreiben und sich nach links oder rechts bewegen. Je nach Modell darf er auch stehen bleiben.
- Die Zustandssteuerung besitzt endlich viele Zustände. Einer davon ist der Startzustand; weitere können als Endzustände dienen.
- Die Übergangsfunktion ist das Programm der Maschine. Sie legt für jede vorgesehene Kombination aus Zustand und gelesenem Symbol den nächsten Schritt fest.
Zu Beginn steht die Eingabe auf dem ansonsten leeren Band. Üblicherweise zeigt der Kopf auf das erste Eingabesymbol, und die Maschine befindet sich im Startzustand.
Das Band speichert beliebig viele Symbole. Die Zustandssteuerung selbst bleibt endlich.
Eine Übergangsregel bestimmt den nächsten Schritt
Ein Arbeitsschritt folgt immer demselben Muster:
$$(\text{Zustand},\text{gelesenes Symbol})\to(\text{Folgezustand},\text{Schreibsymbol},\text{Bewegung})$$
Die Bewegungen werden meist mit L für links, R für rechts und N oder S für stehen bleiben bezeichnet.
Die Regel
$$\delta(q_0,0)=(q_0,1,R)$$
bedeutet:
- Die Maschine befindet sich in $q_0$ und liest
0. - Sie schreibt
1auf die aktuelle Zelle. - Sie bewegt den Kopf eine Zelle nach rechts.
- Sie bleibt im Zustand $q_0$.
Die folgenden Regeln sollen alle Nullen und Einsen einer Eingabe durch Einsen ersetzen:
| Zustand | gelesen | schreiben | Bewegung | Folgezustand |
|---|---|---|---|---|
| $q_0$ | 0 | 1 | R | $q_0$ |
| $q_0$ | 1 | 1 | R | $q_0$ |
| $q_0$ | □ | □ | N | $q_H$ |
Solange der Kopf eine 0 oder 1 liest, bearbeitet die Maschine die Zelle und geht nach rechts. Beim ersten Blank wechselt sie in den haltenden Zustand $q_H$.
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Eine Übergangsregel bestimmt aus dem aktuellen und dem gelesenen den Folgezustand, das zu Symbol und die .
So verfolgst du eine Berechnung
Eine Konfiguration ist eine vollständige Momentaufnahme der Maschine. Dazu gehören der aktuelle Zustand, der relevante Bandinhalt und die Position des Kopfes.
Eine kompakte Schreibweise setzt den Zustand direkt vor das gerade gelesene Symbol. In 1 q_0 01 steht links vom Kopf eine 1; der Kopf liest die folgende 0.
Wir simulieren die Regeln aus dem vorherigen Kapitel mit der Eingabe 001. Leerzeichen dienen hier nur der besseren Lesbarkeit.
q_0 001: Der Kopf liest die erste0.1 q_0 01: Die erste0wurde durch1ersetzt; der Kopf steht auf der zweiten Zelle.11 q_0 1: Auch die zweite0wurde ersetzt.111 q_0 □: Die vorhandene1blieb erhalten; nun liest der Kopf das erste Blank.111 q_H □: Die Maschine hält. Auf dem Band steht111.
Jeder Pfeil zwischen zwei solchen Momentaufnahmen wäre genau ein Konfigurationsschritt.
Für eine zuverlässige Simulation gehst du immer gleich vor:
- Markiere Zustand und Kopfposition.
- Lies das aktuelle Symbol.
- Suche die passende Übergangsregel.
- Schreibe zuerst das angegebene Symbol.
- Bewege danach den Kopf.
- Notiere zuletzt den Folgezustand und die neue Konfiguration.
Bewege den Kopf nicht vor dem Schreiben. Die Übergangsregel verändert zuerst die aktuell gelesene Zelle.
Halten, Akzeptieren und Entscheiden sind verschieden
Nicht jede haltende Berechnung bedeutet automatisch Akzeptanz. Für Entscheidungsprobleme werden haltende Zustände häufig als akzeptierend oder verwerfend unterschieden.
- Akzeptieren: Die Maschine hält in einem akzeptierenden Endzustand.
- Verwerfen: Die Maschine hält, ohne einen akzeptierenden Endzustand erreicht zu haben.
- Nichtterminierung oder Divergenz: Die Maschine führt unendlich viele Schritte aus und hält nicht.
Eine Turingmaschine erkennt eine Sprache, wenn sie jedes zugehörige Wort nach endlich vielen Schritten akzeptiert. Bei einem Wort, das nicht zur Sprache gehört, darf sie verwerfen oder endlos weiterlaufen.
Eine Turingmaschine entscheidet eine Sprache nur dann, wenn sie bei jeder erlaubten Eingabe hält: Sie akzeptiert die Wörter der Sprache und verwirft alle anderen.
Eine Maschine soll Binärwörter erkennen, deren letzte Ziffer 0 ist. Sie läuft bis zum Ende des Wortes und merkt sich das zuletzt gelesene Symbol im Zustand.
- Bei letzter Ziffer
0hält sie akzeptierend. - Bei letzter Ziffer
1hält sie verwerfend.
Da sie jedes endliche Eingabewort vollständig durchläuft und danach hält, ist sie für diese Sprache nicht nur ein Erkenner, sondern ein Entscheider.
Universelle Maschinen haben trotzdem Grenzen
Bei einer gewöhnlichen Turingmaschine ist das Programm durch ihre Übergangsregeln festgelegt. Eine universelle Turingmaschine erhält dagegen zwei Dinge als Eingabe:
- die kodierte Beschreibung einer anderen Turingmaschine;
- die Eingabe, auf der diese Maschine arbeiten soll.
Die universelle Maschine simuliert dann Schritt für Schritt die beschriebene Maschine. Dieses Prinzip ähnelt einem Computer, der unterschiedliche gespeicherte Programme ausführt.
„Universell“ bedeutet: Die Maschine kann jede andere Turingmaschine simulieren. Es bedeutet nicht, dass sie jedes denkbare mathematische Problem lösen kann.
Es gibt Probleme, für die kein Turingmaschinen-Algorithmus existiert. Ein grundlegendes Beispiel ist das Halteproblem: Es gibt keinen Algorithmus, der für jede beliebige Turingmaschine und jede Eingabe immer korrekt entscheidet, ob die Maschine irgendwann halten wird.
Ein System heißt Turing-vollständig, wenn es – bei idealisiert unbegrenztem Speicher – die Berechnungen einer universellen Turingmaschine ausführen kann. Auch ein Turing-vollständiges System überwindet die Grenzen der Berechenbarkeit nicht.
Vertiefung: Das formale Modell einordnen
Eine deterministische Ein-Band-Turingmaschine kann als 7-Tupel beschrieben werden:
$$M=(Q,\Sigma,\Gamma,\delta,q_0,\square,F)$$
Dabei bedeuten:
- $Q$: endliche Zustandsmenge;
- $\Sigma$: Eingabealphabet;
- $\Gamma$: Bandalphabet mit $\Sigma\subset\Gamma$;
- $q_0$: Startzustand;
- $\square$: Blank-Symbol, das nicht zum Eingabealphabet gehört;
- $F$: Menge akzeptierender Endzustände;
- $\delta$: partielle Übergangsfunktion.
Eine mögliche formale Schreibweise für die Übergangsfunktion ist:
$$\delta:(Q\setminus F)\times\Gamma\to Q\times\Gamma\times\{L,N,R\}$$
Partiell bedeutet, dass nicht für jede Kombination aus Zustand und Symbol eine Regel vorhanden sein muss. Fehlt eine Regel, hält die Maschine in dieser Konfiguration. Ob sie damit akzeptiert, hängt davon ab, ob ihr Zustand akzeptierend ist.
Andere Lehrwerke verwenden leicht veränderte Konventionen: S statt N, ein nur einseitig unendliches Band oder ein gemeinsames Alphabet für Eingabe und Band. Solche Varianten können dieselben berechenbaren Funktionen beschreiben, obwohl sie unterschiedlich viele Schritte oder unterschiedlich viel Speicher benötigen können.
Turingmaschinen können auch formale Sprachen verarbeiten. Die von ihnen erkennbaren Sprachen sind die rekursiv aufzählbaren beziehungsweise semientscheidbaren Sprachen des Typs 0. Die entscheidbaren Sprachen bilden darin die Teilmenge, für die eine passende Maschine bei jeder Eingabe hält.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- Turingmaschine
- Aufbau: Band, Kopf und endliche Zustandssteuerung
- Arbeitsschritt: lesen, schreiben, bewegen und Zustand wechseln
- Konfiguration: Zustand, Bandinhalt und Kopfposition
- Ergebnis: akzeptieren, verwerfen oder nicht terminieren
- Universalität: kodierte Maschinen simulieren
- Grenze: nicht jedes Problem ist entscheidbar
Abschluss-Check
Wenn du eine Turingmaschine untersuchst, stelle dir immer drei Fragen: Welche Konfiguration liegt vor? Welche Regel passt? Hält die entstehende Berechnung akzeptierend, verwerfend oder gar nicht?
Mit Google fortfahren