Wenn eine abstrakte Maschine sich selbst simulieren kann, macht das Turing dann vollständig?


20

In Programmiersprachen ist es beispielsweise üblich, einen X-in-X-Compiler / -Interpreter zu schreiben, aber auf einer allgemeineren Ebene können sich viele bekannte Turing-complete-Systeme auf beeindruckende Weise selbst simulieren (z. B. Simulation von Conways Spiel des Lebens in Conways Spiel des Lebens) ).

Meine Frage lautet also: Reicht es aus, wenn ein System sich selbst simuliert, um zu beweisen, dass Turing vollständig ist? Es ist sicherlich eine notwendige Bedingung.


3
Können Sie vor der Beantwortung etwas genauer sagen, was Sie unter "ein logisches System kann sich selbst simulieren" verstehen? Meinen Sie so etwas wie "Kann seine eigene Syntax und Überprüfbarkeit codieren"?
Andrej Bauer

4
Was genau meinen Sie mit einer "Simulation"? Wie definieren Sie insbesondere Simulation, damit sie z. B. im Kontext von Game of Life noch Sinn ergibt, die Frage jedoch nicht völlig trivial ist (z. B. simuliert eine Maschine, die nichts tut, eine Maschine, die nichts tut)?
Jukka Suomela


1
Bean, gleichzeitiges Cross-Posting ist auf cstheory stark entmutigt, siehe die poilicy . ps: Ich bin mir nicht sicher, ob diese Frage zum Thema cstheory gehört. Bitte lesen Sie auch die FAQ, um den Umfang von cstheory zu verstehen.
Kaveh

5
Die "Nichtstun" -Maschine kann sich selbst simulieren.
Max

Antworten:


24

Nicht unbedingt. Beispielsweise kann sich der zweidimensionale zellulare Blockautomat mit zwei Zuständen, in denen eine Zelle erst dann lebendig wird, wenn seine vier Vorgänger genau zwei benachbarte lebende Zellen haben, mit einem Faktor von zwei Verlangsamung und einem Faktor von zwei Vergrößerung simulieren, aber Es ist nicht bekannt, dass Turing vollständig ist. Weitere Informationen zu diesem Blockautomaten und zur B36 / S125-Regel für die Moore-Nachbarschaft, mit der auch dieser Blockautomat simuliert werden kann, finden Sie unter Der B36 / S125-Zellularautomat „2x2“ von Nathaniel Johnston.


Was ist, wenn die Maschine ein gewisses Maß an Komplexität aufweist? Ich denke, das hätte nichts mit Turing-Vollständigkeit zu tun ...
Jeremy Kun

4
Andererseits könnte der von Ihnen erwähnte Blockautomat immer noch Turing-vollständig sein. Sie sagen nur, dass die Implikation nicht als wahr bekannt ist. Nicht, dass dies ein Gegenbeispiel wäre.
Jeremy Kun

9
Betrachtet man nur Blockautomatenzustände mit einer endlichen Anzahl von lebenden Zellen, so kann man sich mit dieser Einschränkung immer noch auf die gleiche Weise selbst simulieren. Aber der eingeschränkte Automat ist mit Sicherheit nicht vollständig, da kein Muster seinem Diamanten entgehen kann, so dass das Schicksal jedes Musters nur in exponentieller Zeit bestimmt werden kann.
David Eppstein

25

Nein, ist es nicht. Ich kenne zwei Hauptklassen von Techniken zur Vermeidung von Inkonsistenzen / Vollständigkeit.

  1. Die erste Angriffslinie besteht darin, das System so einzurichten, dass die Syntax arithmetisiert werden kann, aber Godels Fixpunktsatz geht nicht durch. Dan Willard hat intensiv daran gearbeitet und konsistente, sich selbst verifizierende logische Systeme angegeben. Der Trick besteht darin, die Multiplikations- und Additionsfunktionssymbole zu entfernen und durch Teilbarkeit und Subtraktion zu ersetzen. Dies gibt Ihnen genug Leistung, um die Syntax arithmetisch darzustellen, aber der Fixpunktsatz geht nicht durch, da die Multiplikation nicht nachweislich vollständig ist.

    Siehe Dan Willard. Selbstverifizierende Axiomensysteme, der Unvollständigkeitssatz und verwandte Reflexionsprinzipien . Journal of Symbolic Logic 66 (2001), S. 536-596.

  2. Die zweite Angriffslinie erlaubt eine stärkere Verwendung von Fixpunkten, aber um die Dinge so einzustellen, dass die Syntax nicht rechnet. Die schönsten Systeme hierfür sind (IMO) basierend auf Varianten der linearen Logik. Zum Beispiel ist in Kazushige Teruis Light-Affine-Set-Theorie sogar das volle uneingeschränkte Set-Verständnis-Prinzip solide, aber da die Umgebungslogik der Set-Theorie linear ist (und daher keine Kontraktion zulässig ist), ist Russells Paradox nicht ableitbar.

    AB

    Kazushige Terui. Lichtaffine Mengenlehre: Eine naive Mengenlehre der Polynomzeit. Studia Logica. 77, Nr. 1, S. 9-40, 2004.

    Ich denke, dieses Papier ist zugänglicher, nachdem ich das folgende Papier von Yves Lafont gelesen habe:

    Y. Lafont, Weiche lineare Logik und Polynomzeit , Theoretische Informatik 318 (Sonderheft über implizite rechnerische Komplexität) p. 163-180, Elsevier (2004)

    Teruis Mengenlehre ist sehr aussagekräftig, aber schwer mit traditionellen Mengenlehre zu vergleichen, da beweistheoretische Ordnungszahlen kein gutes Werkzeug sind, um sehr schwache Systeme zu vergleichen. Zum Beispiel kann Teruis Mengenlehre die Exponentiation nicht vollständig beweisen, und daher kann ihre beweistheoretische Stärke nicht einmal bis zu reichen . Komplexitätsklassen sind wahrscheinlich besser - es ist vollständig für polytime (es kann beweisen, dass jede polytime-Funktion total ist, aber nicht mehr).ω

    Ich neige dazu, diese Art von Systemen als Proof-of-Concept für die Idee zu betrachten, dass die Komplexitätstheorie als Grundlage für bestimmte Arten von Ultrafinitismus dienen kann.


1
Ich finde deine Antwort faszinierend, @Neel. Könnten Sie mir bitte einen guten Ausgangspunkt vorschlagen, um über (1) oder (2) zu lesen? Ich bin etwas mehr daran interessiert, über (1) zu lernen, wenn das wichtig ist.
Aaron Sterling

Ich interessiere mich mehr für (2): Wie mächtig ist diese Mengenlehre? Steht es in Zusammenhang mit den "neuen Fundamenten" in China?
Cody

@Neel - Interessante Antwort. Ich möchte auch das Gleiche wie Aaron - könnten Sie einen guten Ausgangspunkt für (1) vorschlagen? Danke
Akash Kumar

9

Betrachten Sie das folgende Maschinenmodell. Die Maschine mit dem Code bei Eingabe gibt immer.x 0ix0

Beachten Sie, dass jede Maschine in diesem Modell universell ist, da für alle .M ( M ', x ) = M ' ( x ) = 0 M ' , xMM(M,x)=M(x)=0M,x

Dies ist eindeutig nicht Turing vollständig, hat aber auch eindeutig Universalmaschinen.


Natürlich spielt keine besondere Rolle und kann durch eine beliebige nichtnegative ganze Zahl ersetzt werden. Das heißt, jedes TM in der Menge von TMs, die eine gegebene konstante Funktion berechnen , ist universell für diese Menge - auch wenn diese Menge von TMs nicht vollständig ist. 0
Res

Ich gab eine ähnliche Antwort für den Cross-Post auf Math.SE, der keine Gegenstimmen erhielt. :)
Kaveh

@Kaveh: Ironischerweise habe ich diese Antwort als vor deiner falsch eingeschätzt und sie nur hier hochgestuft, bearbeitet und kommentiert. Crossposts können so ein Schmerz sein.
Res

@res, ich denke, die Ebene der Websites erzeugt unterschiedliche Abstimmungsmuster. Auf math.se werden auch sehr gute Antworten von anderen High-Rep-Usern hier nicht so hoch bewertet, daher finde ich es normal. :) (Auch meine Antwort ist nicht so klar und verständlich wie Davids Antwort hier.)
Kaveh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.