Turing-Maschinen
Lernziele
- Du kannst beschreiben, wie eine Turing-Maschine aufgebaut ist und was sie von einem endlichen Automaten unterscheidet.
- Du kannst ein einfaches Turing-Programm Schritt für Schritt nachvollziehen.
- Du kennst die Bedeutung der Turing-Maschine für die Frage, was «berechenbar» heisst.
Die Idee
1936 — es gab noch keine Computer — stellte sich Alan Turing die Frage: Was heisst es eigentlich, etwas zu berechnen? Seine Antwort war eine gedachte Maschine, so einfach wie möglich, aber so stark wie nötig.
Eine Turing-Maschine besteht aus:
- einem Band, unendlich lang, unterteilt in Felder. Jedes Feld enthält ein Zeichen oder ist leer.
- einem Kopf, der auf genau einem Feld steht. Er kann das Zeichen dort lesen und überschreiben und sich um ein Feld nach links oder rechts bewegen.
- einer Steuerung mit endlich vielen Zuständen — das ist genau unser endlicher Automat von vorher.
Der entscheidende Unterschied zum endlichen Automaten: Die Turing-Maschine kann auf das Band schreiben und sich darauf frei bewegen. Das Band ist ihr Gedächtnis, und es ist unbeschränkt. Damit kann sie zählen — und viel mehr.
Ein Schritt der Maschine
In jedem Schritt schaut die Maschine auf zwei Dinge: ihren aktuellen Zustand und das Zeichen unter dem Kopf. Daraus ergibt sich, was sie tut:
- ein Zeichen aufs aktuelle Feld schreiben (oder das alte stehen lassen),
- den Kopf nach links oder rechts bewegen,
- in einen neuen Zustand wechseln.
Das war's. Eine Regel notieren wir so:
Beispiel: Invertieren
Auf dem Band steht ein Wort aus 0 und 1, der Kopf steht auf dem ersten Zeichen. Die Maschine soll jedes Zeichen umdrehen: aus 0 wird 1, aus 1 wird 0. Zwei Regeln reichen, plus eine fürs Anhalten:
| Zustand | liest | schreibt | Richtung | neuer Zustand |
|---|---|---|---|---|
| los | 0 | 1 | rechts | los |
| los | 1 | 0 | rechts | los |
| los | leer | leer | — | stopp |
Verfolge es für 101 von Hand: Die Maschine schreibt 0, geht nach rechts, schreibt 1, geht nach rechts, schreibt 0, geht nach rechts, sieht ein leeres Feld und hält. Auf dem Band steht 010.
Eine Turing-Maschine in Python
Auch eine Turing-Maschine passt in wenige Zeilen Python. Das Band ist eine Liste, die Regeln sind ein Dictionary:
Aufgabe: Plus eins im BinärsystemDiese Maschine soll zu einer Binärzahl 1 addieren, z.B.
1011→1100. Idee: Der Kopf läuft zuerst ganz nach rechts (Zustandsuche), dann von rechts nach links (Zustandaddiere): Eine0wird zur1— fertig. Eine1wird zur0— Übertrag, weiter nach links.Vervollständige die Regeln für den Zustandaddiere.
Warum diese Maschine so wichtig ist
Die Turing-Maschine wirkt primitiv. Aber: Alles, was ein heutiger Computer berechnen kann, kann auch eine Turing-Maschine berechnen — nur langsamer. Jede Programmiersprache, jeder Prozessor, jedes KI-Modell lässt sich im Prinzip auf diese eine Maschine zurückführen.
Die Church-Turing-These sagt: «Berechenbar» heisst genau «von einer Turing-Maschine berechenbar». Das ist keine bewiesene Aussage, sondern eine Definition dessen, was Berechnung bedeutet — und in 90 Jahren hat niemand ein Gegenbeispiel gefunden.
Und das Beste: Weil die Maschine so einfach ist, kann man über sie beweisen, was Computer grundsätzlich nicht können. Das schauen wir auf der nächsten Seite an.
Kurz geprüft