Was ist eine Turingmaschine?

Was heißt eigentlich „berechenbar“?

Bei der Geburt der modernen Informatik stand eine Frage im Mittelpunkt: Was genau ist ein Algorithmus, also ein Verfahren, das man Schritt für Schritt ausführen kann, ohne nachzudenken? In den 1930er Jahren gaben Logiker wie Gödel, Church, Post und Turing darauf Antworten. Ihre Ansätze sahen völlig verschieden aus, stellten sich aber als gleich mächtig heraus. Das führte zur Church’schen These: Alles, was sich überhaupt berechnen lässt, lässt sich mit jedem dieser Modelle berechnen.

Besonders anschaulich ist das Modell von Alan Turing, die Turingmaschine. Sie ist unserer imperativen Programmierung sehr nahe. Mit ihr untersuchen wir in diesem Thema, wo die Grenzen des Berechenbaren liegen.

Kurt Gödel
Kurt Gödel
Alonzo Church
Alonzo Church
Emil Post
Emil Post
Alan Turing
Alan Turing

Quelle der Abbildungen: Wikipedia

Aufgabe 1: Video

Schau dir das Video zur Turingmaschine an und beantworte danach die Frage.

▶ Video auf YouTube öffnen

Das Video liegt bei YouTube und öffnet sich in einem neuen Tab.

Lückentext
Hilberts Vorschlag, die Mathematik von der Intuition zu befreien, heißt .

Bestandteile einer Turingmaschine

Die Maschinen aus dem Einstieg waren Turingmaschinen. Eine Turingmaschine (mit einem Band) besteht aus

……1011Band mit Feldern (unbegrenzt)Schreib-/LesekopfSteuereinheit1aktueller ZustandProgramm(Transitionstabelle)0 1 0 1 L …
Bestandteile einer Turingmaschine
  • einem nach links und rechts unbegrenzten Band, das in Felder eingeteilt ist. In jedem Feld steht ein Zeichen aus einem festgelegten Vorrat – bei uns 0, 1 oder nichts (das Blank, geschrieben #);
  • einem Schreib-/Lesekopf, der immer über genau einem Feld steht. Er liest das Zeichen dort, schreibt ein Zeichen hinein und bewegt sich ein Feld nach links oder rechts;
  • einer Steuereinheit, die sich immer in einem bestimmten Zustand befindet. Was sie tut, legt ein Programm fest, die Transitionstabelle.

Die Anzeige aus dem Einstieg war also der Zustand der Maschine.

Drag the Words
Das [___] ist in Felder eingeteilt und nach beiden Seiten unbegrenzt. Der [___] steht über genau einem Feld, liest und schreibt dort ein Zeichen und bewegt sich um ein Feld. Die [___] ist immer in einem [___] . Was sie in diesem und dem gelesenen Zeichen tut, steht in der [___] .
Transitionstabelle Schreib-/Lesekopf Steuereinheit Band Zustand

Ein Arbeitsschritt

Ausgehend vom aktuellen Zustand arbeitet die Turingmaschine in jedem Schritt so:

  1. Sie liest das Zeichen unter dem Schreib-/Lesekopf.
  2. In der Transitionstabelle sucht sie die Regel für aktuellen Zustand und gelesenes Zeichen.
  3. Sie schreibt das neue Zeichen (das kann auch dasselbe sein).
  4. Sie wechselt in den neuen Zustand (das kann auch derselbe sein).
  5. Sie bewegt den Kopf ein Feld nach links (L) oder rechts (R).

Erreicht sie den Endzustand (bei uns h wie halt), hält sie an. Sie hält auch, wenn es für Zustand und Zeichen gar keine Regel gibt.

Zum Weiterlesen: die formale Definition

Formal ist eine Turingmaschine ein 7-Tupel TM = (Z, Σ, Γ, z0, #, ze, δ) mit

  • einer endlichen Zustandsmenge Z,
  • dem Eingabealphabet Σ (bei uns {0; 1}),
  • dem Bandalphabet Γ ⊃ Σ (bei uns {0; 1; #}),
  • dem Startzustand z0 ∈ Z,
  • dem Blank # ∈ Γ \ Σ,
  • dem Endzustand ze ∈ Z und
  • der Überführungsfunktion δ: Jedem Paar (z, γ) aus Zustand und gelesenem Zeichen wird ein Tripel (γ′, z′, a) aus neuem Zeichen, neuem Zustand und Bewegung a ∈ {L, R} zugeordnet. In der Tabelle wird daraus das 5-Tupel (z, γ, γ′, z′, a).

Für den Unterricht reicht eine klare Vorstellung von der Arbeitsweise; die formale Definition verlangt der Lehrplan nicht.

Vereinbarungen laut Lehrplan

  • Wir betrachten nur deterministische Turingmaschinen: Für jedes Paar aus Zustand und Zeichen gibt es höchstens eine Regel.
  • Auf dem Band stehen nur 0 und 1 (und leere Felder). Die 0 steht für den Wahrheitswert false, die 1 für true.
  • Eine natürliche Zahl n wird durch n aufeinanderfolgende Einsen dargestellt. Stehen mehrere Zahlen auf dem Band, trennt sie eine 0.
  • Zu Beginn und am Ende steht der Kopf unter dem am weitesten rechts stehenden Zeichen der Eingabe bzw. der Ausgabe. Eingaben und Zwischenergebnisse dürfen stehen bleiben.
  • Programme werden als Transitionstabelle notiert. Die Tabelle muss nicht für jedes Paar eine Regel enthalten.
Beispiel: eine Zeile einer Transitionstabelle
ZustandZeichenneues Zeichenneuer ZustandBewegung
0111L

Tipp: Beim Entwickeln einer Tabelle hilft ein Zustandsdiagramm. Jeder Zustand ist ein Kreis, jede Regel ein Pfeil, beschriftet mit gelesenes Zeichen ; neues Zeichen , Bewegung.

01 ; 1 , L1
Die Regel (0, 1, 1, 1, L) als Zustandsübergang. Das Dreieck markiert den Startzustand.
Lückentext
Schreibe die Zahlen als Folge von Einsen und umschließe das Ganze links und rechts mit dem Blank #. Die Zahl 6: Die Zahl 3: Die Zahlen 4 und 5: Die Zahlen 3 und 1:

Die Maschinen vom Einstieg – jetzt mit Programm

Hier sind die Maschinen A und B noch einmal, diesmal mit ihrer Transitionstabelle und ihrem Zustandsdiagramm. Lass sie schrittweise laufen. Die Regel, die als Nächstes angewendet wird, ist blau hinterlegt, die zuletzt angewendete gelb.

Maschine A
Maschine A
Freitext

Beschreibe die Aufgabe jedes Zustands von Maschine A in einem Satz, zum Beispiel: „Zustand 5 sucht den rechten Rand und verändert nichts.“

💡 Zum Speichern deiner Antwort bitte einloggen.
Multiple Choice

Welche Regel sorgt dafür, dass Maschine A am linken Rand des Bandinhalts umkehrt?

Maschine B
Maschine B
Freitext

Maschine B braucht drei Zustände, obwohl sie nur eine 1 anhängt. Warum reichen zwei nicht?

💡 Zum Speichern deiner Antwort bitte einloggen.

Aufgabe 2: Vom Zustandsdiagramm zur Tabelle

Das folgende Zustandsdiagramm wurde mit dem Programm JFLAP erstellt. Die Bewegung N bedeutet: Der Kopf bleibt stehen.

  1. Übertrage das Diagramm Regel für Regel in die Transitionstabelle des Simulators. Arbeite die Zustände in der Reihenfolge 0, 1, h ab und beginne jeweils mit der Regel für #.
  2. Der Simulator meldet ein Problem. Beantworte dazu die Frage unter dem Simulator.
  3. Ändere die Tabelle so, dass die Maschine laut Lehrplan arbeitet, und teste sie mit 111.
Turingmaschine
Übertrage das Diagramm in die Tabelle.

Ohne Anmeldung wird deine Maschine nicht gespeichert. „Maschinen merken“ und „Datei speichern“ funktionieren trotzdem.

Multiple Choice

Ist die Maschine aus dem Diagramm deterministisch?

Freitext

Welche Aufgabe erfüllt die Maschine (ohne die Regel mit N) bei der Bandbelegung #111#? Der Kopf startet unter der rechten 1.

💡 Zum Speichern deiner Antwort bitte einloggen.