Turingmaschinen-Simulator

Beobachte, wie eine Turingmaschine liest, schreibt und sich entlang eines unendlichen Bandes bewegt — gesteuert von Übergangsregeln.

Interaktive Simulation wird geladen...

Ein Band macht Palindrome quadratisch 🖖

Die Palindrom-Voreinstellung akzeptiert 1,0,1,0,1 in 21 Schritten und verwirft 1,0,1,1 in 13. Die Maschine kann die beiden Enden nicht gleichzeitig vergleichen, also löscht sie das linkeste Symbol, trägt es in ihrem Zustand mit, läuft das ganze Band ab, um das rechteste zu prüfen, löscht dieses und läuft zurück – einmal pro Paar. Für ein Band aus n Einsen braucht dieses Programm genau (n+1)(n+2)/2 Schritte: 21 bei n = 5, 55 bei n = 9, 253 bei n = 21. Gib derselben Maschine ein zweites Band, und die Aufgabe wird linear; Hennie bewies 1965, dass sie es auf einem einzigen Band nicht sein kann. Die Kosten stecken nicht im Alphabet und nicht in der Zustandszahl – sie stecken im Laufen.

Wie wenige Regeln alles ausführen 🖖

Eine Turingmaschine besteht aus fast nichts: einem Band, einem Kopf, der eine Zelle liest, und einer kurzen Regeltabelle. In jedem Schritt prüft sie nur ihren aktuellen Zustand und das Symbol unter dem Kopf, schreibt dann ein Symbol, bewegt sich eine Zelle nach links oder rechts und wechselt den Zustand. Starte die Voreinstellung „Binäres Inkrement“ und beobachte, wie sie nach rechts bis zum Ende gleitet und die +1 nach links zurückträgt — genau wie beim schriftlichen Addieren.

Der fleißige Biber überdauert das Universum 🖖

Stelle die kleinste Frage — wie lange kann eine winzige Maschine laufen, bevor sie hält? — und die Berechnung explodiert. Eine Maschine mit 5 Zuständen und 2 Symbolen läuft genau 47,176,870 Schritte, bevor sie stoppt; dieser Wert wurde erst 2024 bewiesen. Bei 6 Zuständen übertrifft der bekannte Rekord bereits 2↑↑↑5, einen Potenzturm, der jedes Atom im Kosmos in den Schatten stellt. Deshalb begrenzen Simulatoren wie dieser jeden Lauf: eine Handvoll Zustände kann die Ewigkeit überdauern.

Aufgabe vollständig gelöst

  1. Konfigurationen, die das Palindrom-Programm bei 1 0 1 0 1 durchläuft 5 Schritte

    Das Palindrom-Programm startet auf dem Band 1 0 1 0 1, Kopf auf Zelle 0, Zustand q0. Zählen Sie jede Konfiguration, die es durchläuft, bevor es anhält — anhand der Regeltabelle, ohne es Schritt für Schritt auszuführen — und sagen Sie dann, was diese Anzahl tut, wenn die Eingabe länger wird.

    1. Lesen Sie die Tabelle als Runden, nicht als Liste von Zügen. Nur eine Regel kann eine Runde eröffnen: q0 löscht das ganz linke Symbol und verzweigt je nachdem, was es gerade gelöscht hat, zu q1 für eine 1 und zu q2 für eine 0. Diese Verzweigung ist der gesamte Vergleichsmechanismus. Die Maschine speichert das Symbol nie auf dem Band; sie speichert es darin, in welchem Zustand sie sich befindet, sodass das spätere Testen des entgegengesetzten Endes dagegen keine zusätzlichen Züge kostet.

    2. Zählen Sie eine Runde auf einem Block von m Symbolen. Das Löschen des linken Endes ist 1 Zug. Der Kopf überquert dann die m − 1 noch stehenden Symbole und wendet 1 weiteren Zug auf dem Leerzeichen dahinter auf, um umzukehren. Das Löschen des rechten Endes ist 1 Zug, das Zurückgehen über die m − 2 verbleibenden Symbole entspricht m − 2 Zügen, und 1 letzter Zug auf dem Leerzeichen am linken Ende richtet die Maschine wieder nach rechts in q0 aus.

    3. Unser Band liefert einen Block von 5, dann 3, dann ein einzelnes Symbol — und ein einzelnes Symbol ist keine Runde. q0 löscht es, q1 läuft am rechten Ende heraus und dreht um, und q1c findet ein Leerzeichen dort, wo ein Partner sein sollte. Ein Palindrom ungerader Länge hat ein ungepaartes Zentrum, und das Finden dieses Leerzeichens ist das, was akzeptiert.

    4. Addieren Sie die drei, und achten Sie dann auf den Zaunpfahlfehler. 21 ist die Anzahl der Züge; der Transport zählt Konfigurationen, und 21 Züge besuchen 22 von ihnen, sobald man diejenige einbezieht, in der man begonnen hat.

    5. Verallgemeinern Sie auf eine beliebige ungerade Länge n. Die Blöcke laufen n, n − 2 und so weiter hinab bis 3, wobei jeder 2m + 1 kostet und das Zentrum 3 kostet. Die Summe dieser Liste ergibt einen quadratischen Ausdruck in n, keinen linearen.

    Antwort

    22 Konfigurationen — 21 Züge. Der quadratische Anteil ist derjenige, den man sich merken sollte. Ein 21-Symbol-Palindrom kostet 253 Züge: 12-mal so viel Arbeit für eine 4,2-mal so lange Eingabe. Der Grund ist eher geometrischer Natur als raffiniert — die zwei verglichenen Symbole befinden sich stets an entgegengesetzten Enden dessen, was übrig ist, und es gibt nur einen Kopf, sodass jedes Paar einen vollständigen Durchlauf des verbleibenden Bandes kostet. Gibt man der Maschine ein zweites Band, wird dieselbe Aufgabe linear: Kopieren Sie die Eingabe beim Lesen hinüber, lassen Sie dann die zwei Köpfe in entgegengesetzte Richtungen laufen und vergleichen Sie in einem einzigen Durchgang, ungefähr 3n Züge. Auf einem einzigen Band gibt es keinen Platz für diese Kopie, und das Hin- und Herfahren ist erzwungen.

Quellen (3)

Beispielaufgaben

  • Bit-Flip - Bit-Flip: 0en und 1en werden vertauscht
  • Binär +1 - Binärinkrement: 1011→1100
  • 1111 → 10000 - Die schlechteste Eingabe, die das Inkrement erhalten kann: Jedes Bit ist eine 1, der Übertrag muss also alle kippen. Beobachte, wie der Kopf nach rechts zum Leerzeichen wandert. Auf dem Rückweg nach links macht er aus jeder 1 eine 0 und schreibt eine neue führende 1 in eine Zelle, die nie zur Eingabe gehörte. Elf Konfigurationen insgesamt, und das Band kommt eine Zelle länger zurück, als es hineinging.
  • Unär m+n - Unäre Addition: 3+2=5
  • 1+1 = 2 - Die einfachste unäre Summe, die es gibt, und trotzdem braucht sie neun Konfigurationen. Die Maschine kann nicht addieren. Sie löscht eine 1 aus der linken Gruppe, wandert über das gesamte Band und hängt rechts eine 1 an, einmal für jede Einheit. Der Aufwand wächst mit der Größe der Zahlen, nicht mit der Länge ihrer Schreibweise. Lade die längere unäre Voreinstellung und zähle den Unterschied.
  • Palindrom ✓ - Palindromprüfung: 10101
  • 1011 — abgelehnt - Das äußere Paar passt: Die Zeichenkette beginnt und endet mit einer 1, also löscht die Maschine beide und kehrt für die innere Schicht zurück. Erst dort findet sie eine 0 als Gegenstück zu einer 1 und wechselt in den Ablehnungszustand. Die Anzeige nennt die Regel, die das ausgelöst hat. Eine Palindromprüfung mit einem Band kann nicht vorzeitig abbrechen. Genau deshalb kostet jedes Paar einen kompletten Durchlauf.