Informatik

Turingmaschine: Aufbau, Ablauf und Grenzen

Turingmaschine: Aufbau, Ablauf und Grenzen
Turingmaschine: Aufbau, Ablauf und Grenzen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

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.

Deine Lernziele

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.

Definition

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.

Merke

Das Band speichert beliebig viele Symbole. Die Zustandssteuerung selbst bleibt endlich.

Teste dich
Frage 1 von 2LeichtWelcher Bestandteil speichert den bearbeiteten Bandinhalt?
Lösung: Das in Zellen unterteilte Band — Der Bandinhalt bildet den veränderlichen Speicher. Zustand und Kopfposition bestimmen zusammen mit ihm den aktuellen Stand der Berechnung.
Frage 2 von 2MittelWarum genügt der aktuelle Zustand allein nicht, um den nächsten Schritt zu bestimmen?
Lösung: Zusätzlich muss bekannt sein, welches Symbol der Kopf gerade liest. — Eine deterministische Übergangsregel verwendet genau die Kombination aus aktuellem Zustand und aktuell gelesenem Symbol.
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:

  1. Die Maschine befindet sich in $q_0$ und liest 0.
  2. Sie schreibt 1 auf die aktuelle Zelle.
  3. Sie bewegt den Kopf eine Zelle nach rechts.
  4. Sie bleibt im Zustand $q_0$.
Beispiel

Die folgenden Regeln sollen alle Nullen und Einsen einer Eingabe durch Einsen ersetzen:

ZustandgelesenschreibenBewegungFolgezustand
$q_0$01R$q_0$
$q_0$11R$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$.

Lückentext

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 .

Lösungen: Lücke 1: Zustand; Lücke 2: Symbol; Lücke 3: schreibende; Lücke 4: Kopfbewegung. Prüfe eine Regel immer in dieser Reihenfolge: lesen, schreiben, bewegen und Zustand wechseln. Schreiben und Bewegen gehören noch zum selben Arbeitsschritt.
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.

Beispiel

Wir simulieren die Regeln aus dem vorherigen Kapitel mit der Eingabe 001. Leerzeichen dienen hier nur der besseren Lesbarkeit.

  1. q_0 001: Der Kopf liest die erste 0.
  2. 1 q_0 01: Die erste 0 wurde durch 1 ersetzt; der Kopf steht auf der zweiten Zelle.
  3. 11 q_0 1: Auch die zweite 0 wurde ersetzt.
  4. 111 q_0 □: Die vorhandene 1 blieb erhalten; nun liest der Kopf das erste Blank.
  5. 111 q_H □: Die Maschine hält. Auf dem Band steht 111.

Jeder Pfeil zwischen zwei solchen Momentaufnahmen wäre genau ein Konfigurationsschritt.

Für eine zuverlässige Simulation gehst du immer gleich vor:

  1. Markiere Zustand und Kopfposition.
  2. Lies das aktuelle Symbol.
  3. Suche die passende Übergangsregel.
  4. Schreibe zuerst das angegebene Symbol.
  5. Bewege danach den Kopf.
  6. Notiere zuletzt den Folgezustand und die neue Konfiguration.
Merke

Bewege den Kopf nicht vor dem Schreiben. Die Übergangsregel verändert zuerst die aktuell gelesene Zelle.

Teste dich
Frage 1 von 2MittelDie Maschine aus dem Beispiel startet mit 010. Was steht beim Halten auf den drei Eingabezellen?
Lösung: 111 — Die Maschine läuft über alle Eingabezellen. Jede 0 wird zu 1, und jede vorhandene 1 bleibt erhalten.
Frage 2 von 2SchwerBei einer Simulation wurde aus q_0 01 sofort 0 q_0 1. Welcher Fehler liegt vor?
Lösung: Der Kopf wurde bewegt, ohne die gelesene 0 zuvor durch 1 zu ersetzen. — Zur Regel $\delta(q_0,0)=(q_0,1,R)$ gehören Schreiben und anschließende Rechtsbewegung im selben Schritt.
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.

Beispiel

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 0 hält sie akzeptierend.
  • Bei letzter Ziffer 1 hä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.

Teste dich
Frage 1 von 2LeichtWelche Berechnung akzeptiert eine Eingabe?
Lösung: Eine Berechnung, die in einem akzeptierenden Endzustand hält — Akzeptanz verbindet zwei Bedingungen: einen als akzeptierend festgelegten Zustand und das Ende der Berechnung.
Frage 2 von 2MittelEine Maschine akzeptiert jedes Wort ihrer Sprache, läuft bei manchen anderen Wörtern aber endlos. Was ist sie?
Lösung: Ein Erkenner, aber kein Entscheider — Ein Erkenner darf bei Nichtmitgliedern divergieren. Ein Entscheider muss dagegen immer entweder akzeptieren oder verwerfen.
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.

Merke

„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.

Teste dich
Frage 1 von 2MittelWas kann eine universelle Turingmaschine leisten?
Lösung: Eine kodierte Turingmaschine auf einer gegebenen Eingabe simulieren — Universalität beschreibt die Fähigkeit zur Simulation anderer Turingmaschinen, nicht die Lösbarkeit aller Probleme.
Frage 2 von 2SchwerEin neues Programmiersystem ist Turing-vollständig. Welche Schlussfolgerung ist gerechtfertigt?
Lösung: Es kann bei idealisiert unbegrenztem Speicher jede Turingmaschinen-Berechnung nachbilden. — Turing-Vollständigkeit betrifft die Ausdrucks- und Berechnungsmächtigkeit. Sie garantiert weder Terminierung noch praktische Effizienz.
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.

Teste dich
Frage 1 von 1MittelWas folgt, wenn für die aktuelle Kombination aus Zustand und Symbol keine Übergangsregel definiert ist?
Lösung: Die Maschine hält in der aktuellen Konfiguration. — Bei einer partiellen Übergangsfunktion beendet eine fehlende Regel die Berechnung. Akzeptanz und Verwerfen werden anschließend über den haltenden Zustand unterschieden.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • 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
Teste dich
Frage 1 von 4LeichtWelche Angaben brauchst du für eine vollständige Konfiguration?
Lösung: Zustand, relevanten Bandinhalt und Kopfposition — Eine Konfiguration enthält alles, was zur eindeutigen Fortsetzung der Berechnung erforderlich ist.
Frage 2 von 4MittelFür 0 gilt $\delta(q_0,0)=(q_1,1,R)$. Was geschieht in diesem Schritt?
Lösung: Die Maschine schreibt 1, geht nach rechts und wechselt nach $q_1$. — Lies die rechte Seite der Regel als Folgezustand, Schreibsymbol und Bewegung. Das Schreiben betrifft die gegenwärtige Kopfposition.
Frage 3 von 4SchwerEine Maschine hält bei allen Wörtern der Sprache akzeptierend, läuft bei einem Wort außerhalb der Sprache aber endlos. Welche Aussage trifft zu?
Lösung: Sie erkennt die Sprache möglicherweise, entscheidet sie aber nicht. — Nichtterminierung ist kein Verwerfen durch einen Entscheider. Ein Erkenner darf bei Wörtern außerhalb seiner Sprache dagegen endlos laufen.
Frage 4 von 4SchwerWarum widerspricht das Halteproblem nicht der Existenz universeller Turingmaschinen?
Lösung: Simulieren und das Halten aller möglichen Simulationen im Voraus entscheiden sind verschiedene Aufgaben. — Eine universelle Maschine kann eine Berechnung Schritt für Schritt ausführen. Daraus folgt kein allgemeines Verfahren, das für jede Maschine vorhersagt, ob diese Berechnung jemals endet.

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?

Passend dazu