Wie ist die Regel 110 Turing vollständig?

19

Ich habe die Wikipedia-Seite für Regel 110 in Zellularautomaten gelesen und weiß mehr oder weniger, wie sie funktionieren (eine Reihe von Regeln entscheidet, wo die nächste 1 oder 0 gezeichnet wird).

Ich habe gerade gelesen, dass Turing vollständig ist, aber ich kann nicht einmal nachvollziehen, wie Sie in "Regel 110" "programmieren" würden.

Pureferret
quelle
Es ist eigentlich Regel 110, nicht Regel 101. Der Proof wird auf der Wikipedia-Seite beschrieben, obwohl es völlig offensichtlich ist, wie der Text die Verbindung zum Proof herstellt.
@WolfgangBangerth danke dafür, ich habe es behoben. Wenn der Beweis / die Art des Programmierens darin enthalten ist, ist es nicht offensichtlich genug, dass ich es sehe, sorry.
Pureferret
1
Die gleiche Frage stellte sich mir auch, ob es ein Skript gibt, das ein einfaches Programm irgendwie in diese Automaten konvertiert, und dann einen "Simulator", der es ausführt.
2
ausgezeichnete Frage. Die Details sind komplex und in wissenschaftlichen Arbeiten enthalten. siehe tcs.SE, Anfangsbedingungen für Regel 110 für eine Skizze und einige Verweise. Im Grunde gibt es eine Möglichkeit, ein TM in ein "Tag-System" (bekannt als TM complete) zu konvertieren oder zu kompilieren und dann ein "Tag-System" in Regel 110 zu kompilieren. Es wäre "cool", wenn tatsächliche Implementierungen dafür erstellt worden wären ppl zum Experimentieren (& sicherlich zu neuen Einsichten / Entdeckungen führen), aber leider scheint es keine zu geben, oder Autoren veröffentlichen ihren Code nicht.
vzn
1
eng verwandt sind 2d zellulare Automaten & sie können für einige Intuitionen in den 1d Fall untersucht werden. Es ist seit etwa den 70er Jahren bekannt, weil Conway bewiesen hat, dass "das Spiel des Lebens" Turing vollständig ist. Siehe zB Paul Rendell TM Simulator in Game of Life für eine moderne / grafische Version.
vzn

Antworten:

11

Universalität ist ein etwas informeller Begriff. In etwa bedeutet dies, dass für jede berechenbare Funktion ein "Programm" P existiertfP im Modell vorhanden ist, so dass das "Ausführen" von auf einer beliebigen Eingabe x immer "anhält" und die richtige Antwort "ausgibt". (Beachten Sie, dass Turing-Maschinen hier nicht auftauchen: Sie sind nur ein Beispiel für ein universelles Rechenmodell.)Px

Die zitierten Wörter sind diejenigen, die definiert werden müssen. Für Turingmaschinen:

  • Ein Programm wird als eine Liste von Zuständen, ein Bandalphabet, ein Anfangszustand, Endzustände und Übergänge angegeben.
  • Wenn Sie eine Turing-Maschine an einem Eingang x betreiben, wird das Band mit einer Kodierung von initialisiertT xund die Maschine T auf diesem Band gemäß den üblichen Regelnausführen.xT
  • Eine Turingmaschine hält an, wenn sie einen Endzustand erreicht. (Hier gibt es einige Varianten.)
  • Was die Turing-Maschine ausgibt (wenn sie anhält), ist der Inhalt des Bandes.

Regel 110 als Rechenmodell muss in gleicher Weise formal definiert werden. Eine Definition ist sinnvoll, wenn man das Rechenmodell im folgenden Sinne rechnerisch simulieren kann: Es gibt eine berechenbare Funktion so dass für jedes Programm P und jede Eingabe x (beide als natürliche Zahlen kodiert) S ( P , x ) stoppt, wenn P stoppt auf x , und wenn S ( p , x ) stoppt, ist seine Ausgabe identisch mit der Ausgabe von P auf x .SPxS(P,x)PxS(p,x)Px

Wenn Sie neugierig auf die spezielle Konfiguration von Regel 110 als Computersystem sind, empfehlen wir Ihnen einen Blick auf Matthew Cooks Artikel, der die Universalität von Regel 110 (oder besser gesagt eines Computersystems, das auf Regel 110 basiert ) belegt.

Was andere Regeln wie Artikel 30 und Artikel 90 betrifft, wissen wir nicht, dass sie nicht universell sind. Es mag überzeugende Computersysteme geben, die universell einsetzbar sind, aber wir kennen einfach keine.

Yuval Filmus
quelle
3
Alles wahr, aber Regel 110 kann nicht anhalten. Sie kann nur Dinge berechnen, aber nicht anhalten.
Pavel
@Pavel Es ist nicht erforderlich anzuhalten, um Turing-Complete
MilkyWay90
8

Aus Matthews Beweis:

Der hier verfolgte Ansatz besteht nicht darin, einen neuen zellularen Automaten zu entwerfen, sondern den einfachsten, der auf natürliche Weise ein komplexes Verhalten aufweist, und zu prüfen, ob wir in diesem komplexen Verhalten einen Weg finden können, es zu tun, was wir wollen. Wir werden uns nicht direkt mit der oben angegebenen Nachschlagetabelle befassen, sondern das Verhalten betrachten, das die Aktion des Automaten im Laufe der Zeit auf natürliche Weise zeigt.

Der Autor beginnt damit zu beweisen, dass ein "Tag-System", das bei jedem Schritt 2 Symbole entfernt, universell ist, indem er ein 2-Zustands-Turing-Maschinenprogramm kompiliert. Danach beweist er, dass ein Segelflugzeugsystem tatsächlich ein Tag-System implementieren kann. Es ist ein schrittweiser Prozess. Dann studiert er die Raumzeit des CA-110, um die Segelflugzeuge zu finden und sie korrekt dem Segelflugzeugsystem zuzuordnen.

Nun zu Ihrer Frage: Wie würden Sie in "Regel 110" "programmieren"?

  1. Suchen Sie nach der einfachsten 2-Zustands-Turing-Maschine und finden Sie die Bänder der Grundoperationen OR, AND, XOR, NOT .

  2. Übersetzen Sie diese in das Tag-System.

  3. Kompilieren Sie die Implementierung des Tag-Systems in die Glider-Implementierung.

  4. Passen Sie es richtig an die CA-110-Segelflugzeuge an und Sie haben die grundlegenden Operationen in einem zellularen Automaten.

Die Schritte 1 bis 4 werden nur einmal ausgeführt. Von dort aus wird berechnet1+1=2 Verwendung von Logikgattern zu Summenzahlen reduziert.

Eine Notiz beiseite. Segelflugzeuge sind sehr spezielle Strukturen. Die Operationen werden als Partikel angesehen, die sich bewegen und kollidieren (die Segelflugzeuge) und je nachdem, wie diese Segelflugzeuge starten oder kollidieren, eine unterschiedliche Ausgabe erzeugen.

labotsirc
quelle
Also könnten zwei Glitzer ein + "kodieren" und wenn sie kollidieren, bekomme ich 2?
Pureferret
3
Genauer gesagt, würden mehrere Segelflugzeugpaare ein '+' codieren, vorausgesetzt, ein Segelflugzeugpaar kann ein ODER, UND, XOR oder NICHT codieren. Bedenken Sie auch, dass die Zahlen wahrscheinlich als Folge von Bits dargestellt werden und die Summe unter Verwendung von Logikgattern für jedes Bitpaar ausgeführt wird.
labotsirc
3
Achtung, es gibt einige Kontroversen über den Vollständigkeitsnachweis nach Regel 110 TM in der CS-Community aus verschiedenen Gründen. Eine davon ist anscheinend, dass die Eingabebedingung auf der Zertifizierungsstelle unendlich periodische (aber sich wiederholende) Muster erfordert.
VZN
1
Ich stimme Ihnen in der Kontroverse zu. Persönlich weiß ich nicht, was ich denken soll, um die theoretische Lösung mit formalen Mitteln abzulehnen oder CA-110 als Obermenge zu akzeptieren, die zufällig als Turing-Maschine funktioniert (die Tatsache, dass CA Rechenräume sind, die als dynamische Systeme und weiter funktionieren) Ich frage mich, ob sie ein synthetisches Universum darstellen, das gerade im Gange ist.
labotsirc
Ich mag es nicht, räumliche und zeitliche Einschränkungen zu ignorieren. Wikipedia zitiert die P-Vollständigkeit des Zellularautomaten Regel 110 und erklärt, dass Neary und Woods einen exponentiellen Zeitaufwand vermieden haben, indem sie 2-Tag-Systeme vermieden haben. Neary und Woods zeigten jedoch später im selben Jahr (2006) , dass selbst 2-Tag-Systeme keinen exponentiellen Zeitaufwand für die Simulation von Turing-Maschinen haben.
Thomas Klimpel