Informatik · Klasse 12–13 · aktualisiert
Turingmaschine: Aufbau, Ablauf und Grenzen
Du lernst Band, Kopf und Regeln einer Turingmaschine kennen, simulierst Schritte und erfährst, was eine universelle Turingmaschine leistet.
0 von 13 Aufgaben gelöst
Kurz gesagt
Eine Turingmaschine ist ein mathematisches Modell einer abstrakten Maschine mit Speicherband, Lese- und Schreibkopf und Programm. In jedem Schritt liest sie ein Zeichen, schreibt eins und bewegt den Kopf. Eine Berechnung kann akzeptieren, verwerfen oder unendlich weiterlaufen.
Eine Turingmaschine besteht aus fast nichts: einem Band, einem Kopf und einem Programm. Trotzdem machen Turingmaschinen die Begriffe Algorithmus und Berechenbarkeit mathematisch fassbar. Du lernst, wie sie aufgebaut ist, wie du ihre Schritte von Hand nachrechnest und wo ihre Grenzen liegen.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik. Sie definiert eine abstrakte Maschine, also keinen echten Computer. Benannt ist sie nach dem britischen Mathematiker Alan Turing, der sie 1936/37 einführte.
Die Maschine hat drei Hauptteile. Das Speicherband ist unendlich lang und hat unendlich viele Felder, die der Reihe nach angeordnet sind. Jedes Feld speichert genau ein Zeichen aus einem festgelegten Alphabet. Der Lese- und Schreibkopf wird vom Programm gesteuert. Er bewegt sich feldweise auf dem Band und kann die Zeichen verändern. Das Steuerwerk enthält das Programm.
Die Überführungsfunktion legt fest, welches Zeichen geschrieben wird und welche Bewegung ausgeführt wird. Beides hängt vom gelesenen Zeichen und vom aktuellen Zustand ab. Die Maschine startet in einem vorgegebenen Startzustand, und die Anzahl ihrer Zustände ist endlich. Ein Zustand sagt nichts über die Zeichen auf dem Band aus.
Definition
Blank
Ein Blank ist ein zusätzliches Zeichen. Es steht für ein leeres, unbeschriebenes Feld auf dem Band.
| Bestandteil | Aufgabe |
|---|---|
| Speicherband | Speichert in jedem Feld genau ein Zeichen |
| Lese- und Schreibkopf | Wird vom Programm gesteuert, bewegt sich feldweise, verändert Zeichen |
| Steuerwerk | Enthält das Programm |
| Zustände | Startzustand vorgegeben, ihre Anzahl ist endlich |
Merke: In jedem Schritt liest der Kopf das Zeichen, überschreibt es mit einem anderen oder dem gleichen Zeichen und bewegt sich dann ein Feld nach links oder rechts oder bleibt stehen.
Teste dich
Die Überführungsfunktion nimmt als Argument den aktuellen Zustand und das Zeichen unter dem Lese- und Schreibkopf. Eine Regel liest du so: Zustand, gelesenes Zeichen → geschriebenes Zeichen, neuer Zustand, Bewegung. Das Feld unter dem Kopf wird mit dem gelieferten Zeichen überschrieben. Bei der Bewegung L geht der Kopf ein Feld nach links, bei R ein Feld nach rechts, und bei N bleibt er auf demselben Feld.
Als Beispiel dient eine Maschine, die eine Folge von Einsen erwartet und deren Anzahl verdoppelt. Dabei bleibt ein Leersymbol in der Mitte stehen: Aus „11“ wird „11011“. Der Kopf steht anfangs auf der ersten Eins, der Anfangszustand ist s1 und der Endzustand ist s6. Die 0 steht für das leere Feld. Der Rest des Bandes besteht aus leeren Feldern.
So simulierst du: Notiere Zustand, Band und Kopfposition. Suche die Regel zu Zustand und gelesenem Zeichen. Überschreibe das Feld, bewege den Kopf und notiere den neuen Zustand. Dann wiederholst du das. Bei der Eingabe „11“ beginnt die Berechnung in Schritt 1 im Zustand s1 mit dem Band 11000 und dem Kopf auf der ersten Eins. In Schritt 2 ist der Zustand s2, das Band 01000 und der Kopf auf der zweiten Stelle. In Schritt 16 ist die Maschine im Zustand s6 und hält.
So arbeitet die Maschine im Überblick: Im Zustand s1 ersetzt sie die erste Eins durch ein leeres Feld, der Kopf geht nach rechts, und der neue Zustand ist s2. Der Kopf wandert dann nach rechts, bis er ein leeres Feld liest. Im Zustand s3 überliest sie alle weiteren Einsen, bis sie ein leeres Feld findet. Dieses ersetzt sie durch eine Eins. Wird im Zustand s1 ein leeres Feld gelesen, gelangt die Maschine in den Endzustand s6, und die Berechnung ist beendet.
Definition
Konfiguration
Eine Konfiguration beschreibt den momentanen Zustand, die Position des Lese- und Schreibkopfes und die Symbole auf dem Band. Ein Schritt führt von einer Konfiguration zur nächsten.
Beispiel: Eine Regel lesen
- 1Regel: s3, 0 → schreibe 1, neuer Zustand s4, Bewegung L
- 2Die Maschine ist im Zustand s3, unter dem Kopf steht ein leeres Feld (0).
- 3Das Feld wird mit 1 überschrieben.
- 4Der Zustand wird s4, der Kopf geht ein Feld nach links.
| Zustand, gelesen | Schreibe | Neuer Zustand, Bewegung |
|---|---|---|
| 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 |
Teste dich
Eine Turingmaschine stoppt, wenn für den aktuellen Zustand und das gelesene Bandsymbol keine Überführung zu einem neuen Zustand definiert ist. Zustände, in denen die Maschine unabhängig vom gelesenen Bandsymbol anhält, heißen Endzustände. Erreicht die Maschine einen Endzustand, kann sie keine weiteren Aktionen durchführen, und die Berechnung ist beendet.
Bei Entscheidungsproblemen sind Fragen mit „ja“ oder „nein“ zu beantworten. Dabei gelten bestimmte Endzustände als akzeptierend, andere als nicht akzeptierend. Eine Turingmaschine akzeptiert ein Wort, wenn die Berechnung in der Startkonfiguration beginnt und in einer Konfiguration mit einem akzeptierenden Endzustand endet. Endet die Berechnung in einer anderen Konfiguration, verwirft sie das Eingabewort. Manche Varianten haben zusätzlich verwerfende Endzustände.
Es gibt aber auch Turingmaschinen, die für gewisse Eingaben niemals stoppen. Ihre Berechnung ist dann eine unendliche Folge von Konfigurationsschritten. Ist die Berechnung unendlich, wird das Wort weder akzeptiert noch verworfen.
Noch ein Unterschied: Eine Sprache ist hier eine Menge von Eingabewörtern. Eine Turingmaschine akzeptiert eine Sprache, wenn sie jedes Wort der Sprache nach endlich vielen Schritten in einem akzeptierenden Zustand hält. Bei jedem Wort außerhalb der Sprache hält sie in einem nicht akzeptierenden Zustand oder überhaupt nicht. Hält sie zusätzlich bei allen Eingaben, die nicht zur Sprache gehören, so entscheidet sie diese Sprache.
Definition
Nichtterminierung
Von Nichtterminierung spricht man, wenn die Berechnung nie endet. Das Eingabewort wird dann weder akzeptiert noch verworfen.
Merke: Es gibt drei Ausgänge: Die Berechnung endet in einem akzeptierenden Endzustand (Wort akzeptiert), sie endet in einer anderen Konfiguration (Wort verworfen), oder sie ist unendlich (weder noch).
Teste dich
Bei einer gewöhnlichen Turingmaschine ist das Programm fest eingebaut und kann nicht verändert werden. Man kann aber die Aktionstabelle, also die Übergangsregeln, einer beliebigen Turingmaschine als Zeichenkette kodieren. Eine universelle Turingmaschine (UTM) nimmt eine solche Kodierung als Teil ihrer Eingabe und simuliert das Verhalten der kodierten Maschine auf der ebenfalls gegebenen Eingabe. Sie liest beides von ihrem eigenen Band. Die Eingabe hat die Form w|x. Dabei beschreibt w die zu simulierende Maschine, x ist die Eingabe für diese Maschine, und das Zeichen | ist ein Trennzeichen. Es gibt nicht nur eine einzige UTM.
Was sie leistet: Eine UTM kann jede rekursive Funktion berechnen, jede rekursive Sprache entscheiden und jede rekursiv aufzählbare Sprache akzeptieren. Eine Sprache heißt rekursiv oder entscheidbar genau dann, wenn es eine Turingmaschine gibt, die sie entscheidet. Sie heißt rekursiv aufzählbar, wenn es eine Turingmaschine gibt, die sie akzeptiert. „Entscheiden“ und „akzeptieren“ kennst du aus dem Abschnitt davor. Man geht im Allgemeinen davon aus, dass die Turing-Berechenbarkeit das intuitive Verständnis von Berechenbarkeit trifft. Diese Aussage heißt Church-Turing-These. Nach ihr sind die von einer UTM lösbaren Probleme genau die Probleme, die von einem Algorithmus oder einer effektiven Berechnungsmethode lösbar sind. Ein System, das eine UTM simulieren kann, heißt Turing-vollständig. Eine UTM dient als Standard, mit dem man Rechensysteme vergleichen kann. Eine ähnliche Idee, bei der das Programm Teil der veränderbaren Eingabedaten ist, liegt fast allen heutigen Rechnerarchitekturen zugrunde (Von-Neumann-Architektur).
Wo die Grenzen liegen: Nicht alle mathematischen Funktionen können von einer Turingmaschine berechnet werden. Das Halteproblem kann eine Turingmaschine nicht lösen. Die meisten Fragen über das Verhalten anderer Turingmaschinen sind unentscheidbar. Das heißt, die betreffende Funktion kann nicht mechanisch berechnet werden.
Definition
Universelle Turingmaschine
Eine universelle Turingmaschine ist eine Turingmaschine, die eine beliebige Turingmaschine auf beliebiger Eingabe simuliert.
Definition
Halteproblem
Das Halteproblem ist die Frage, ob eine beliebige Turingmaschine bei einer bestimmten Eingabe oder bei allen Eingaben anhält. Turing zeigte es als allgemein unentscheidbar.
Merke: Eine UTM ist selbst eine Turingmaschine. Sie führt ein Programm aus, das als Beschreibung auf ihrem Band steht. Sie kann viel berechnen, aber nicht alles.
Teste dich
Alles auf einen Blick
Turingmaschine
Aufbau
Speicherband, Lese- und Schreibkopf und Steuerwerk mit dem Programm
Schritt
lesen, überschreiben, dann Kopf nach links oder rechts oder stehen bleiben
Regel
Zustand und gelesenes Zeichen bestimmen Schreibzeichen, neuen Zustand und Bewegung
Ausgänge
akzeptieren, verwerfen oder unendlich weiterlaufen
UTM
simuliert eine beliebige Turingmaschine, deren Beschreibung auf ihrem Band steht
Grenze
Das Halteproblem ist allgemein unentscheidbar
Musteraufgabe · Schritt für Schritt
Eine Eins verdoppeln (erfundene Eingabe „1“)
- 1Annahme: Regeltabelle von oben, Start in s1, Kopf auf der 1, Rest leer (0). Stellen 1 bis 4: Band 1000.
- 2Schritt 1: s1 liest 1 → schreibe 0, Zustand s2, nach rechts. Band 0000, Kopf auf Stelle 2.
- 3Schritt 2: s2 liest 0 → schreibe 0, Zustand s3, nach rechts. Band 0000, Kopf auf Stelle 3.
- 4Schritt 3: s3 liest 0 → schreibe 1, Zustand s4, nach links. Band 0010, Kopf auf Stelle 2.
- 5Schritt 4: s4 liest 0 → schreibe 0, Zustand s5, nach links. Band 0010, Kopf auf Stelle 1.
- 6Schritt 5: s5 liest 0 → schreibe 1, Zustand s1, nach rechts. Band 1010, Kopf auf Stelle 2.
- 7Schritt 6: s1 liest 0 → schreibe 0, Zustand s6, stehen bleiben. Band 1010, die Maschine hält.
- 8Ergebnis: Aus „1“ wird „101“, also zwei Einsen mit einem leeren Feld dazwischen.
Fehler finden
Prüfe die Aussagen zum Halten und Verwerfen In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Eine unendliche Berechnung wird fälschlich als Verwerfen gezählt. Richtig: Ist die Berechnung unendlich, wird das Wort weder akzeptiert noch verworfen.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Welches Zeichen geschrieben wird, hängt vom gelesenen Zeichen und vom aktuellen ab. Bei der Bewegung N bleibt der Kopf auf Feld. Das Speicherband hat viele Felder.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback