Bei dieser Frage geht es darum, ob es bekannte reversible Turing-Tarpits gibt, wobei "reversibel" im Sinne von Axelsen und Glück bedeutet und "Tarpit" ein viel informelleres Konzept ist (und möglicherweise keine sehr gute Wortwahl ist). aber ich werde mein Bestes geben, um zu erklären, was ich damit meine.
Was ich mit "Tarpit" meine
Einige Berechnungsmodelle sind so konzipiert, dass sie in irgendeiner Weise nützlich sind. Andere sind einfach vollständig und haben keine besonders nützlichen Eigenschaften. Diese sind als "Turing-Tarpits" bekannt. Beispiele sind die Sprache Brainfuck , der zellulare Automat nach Regel 110 und die Sprache Bitwise Cyclic Tag (die mir gefällt, weil sie sehr einfach zu implementieren ist und jede Binärzeichenfolge ein gültiges Programm ist).
Es gibt keine formale Definition von "Turing-Tarpit", aber für diese Frage meine ich ein ziemlich einfaches System (in Bezug auf eine kleine Anzahl von "Regeln"), das "zufällig" vollständig ist, ohne sein innerer Zustand hat eine offensichtliche semantische Bedeutung. Der wichtigste Aspekt für meine Zwecke ist eher die Einfachheit der Regeln als das Fehlen einer offensichtlichen Semantik. Grundsätzlich sprechen wir über die Dinge, über die Stephen Wolfram einmal ein sehr großes Buch geschrieben hat , obwohl er das Wort "Tarpit" nicht verwendet hat.
Was ich mit "reversibel" meine
Ich interessiere mich für reversible Berechnungen. Insbesondere interessiere ich mich für Sprachen, die im Sinne von Axelsen und Glück vollständig sind , was bedeutet, dass sie jede berechenbare Injektionsfunktion berechnen können und nur Injektionsfunktionen berechnen können. Nun gibt es viele Rechenmodelle, die in diesem Sinne reversibel sind, wie Axelsens reversible Universal-Turing-Maschine oder die hochreversible Sprache Janus . (Es gibt viele andere Beispiele in der Literatur; es ist ein aktives Forschungsgebiet.)
Es ist anzumerken, dass Axelsen und Glücks Definition der Vollständigkeit von r-Turing ein anderer Ansatz für reversibles Rechnen ist als der übliche Ansatz von Bennett. Bei Bennetts Ansatz darf ein System "Mülldaten" erzeugen, die am Ende der Berechnung weggeworfen werden. Unter solchen Bedingungen kann ein reversibles System vollständig sein. Nach dem Ansatz von Axelsen und Glück darf das System jedoch keine solchen "Junk-Daten" erzeugen, was die Klasse der Probleme einschränkt, die es berechnen kann. (Daher "r-Turing komplett" statt "Turing komplett".)
Hinweis: Das Axelsen- und Glück-Papier befindet sich hinter einer Paywall. Dies ist bedauerlich - meines Wissens gibt es derzeit keine nicht kostenpflichtige Ressource zum Thema Vollständigkeit von r-Turing. Ich werde versuchen, eine Wikipedia-Seite zu starten, wenn ich Zeit habe, aber keine Versprechen.
Wonach ich suche
Die oben erwähnten Beispiele für reversibles Rechnen sind alle eher "semantisch beladen". Dies ist in den meisten Kontexten eine gute Sache, bedeutet jedoch, dass die Regeln, die erforderlich sind, um ihren Status bei jedem Zeitschritt zu aktualisieren, ziemlich komplex sind. Ich suche die "Tarpits" des reversiblen Rechnens. Das heißt, mehr oder weniger willkürliche Systeme mit recht einfachen Regeln, die "zufällig" vollständige Sprachen r-Turing sind. Ich wiederhole, dass es keine formale Definition für das gibt, wonach ich suche, aber ich werde es wissen, wenn ich es sehe, und ich denke, es ist eine vernünftige Sache, danach zu fragen.
Es gibt eine Reihe von Dingen, von denen ich weiß, dass sie fast zur Rechnung passen, aber nicht ganz. Es gibt mehrere reversible zellulare Automaten, von denen gezeigt wurde, dass sie vollständig sind. Langtons Ameise (eine Art zweidimensionale Turing-Maschine mit einer ziemlich willkürlichen und recht einfachen reversiblen Zustandsübergangsfunktion) ist ebenfalls Turing vollständig, solange ihre Anfangsbedingungen unendlich viele sich wiederholende Muster enthalten dürfen. Bei diesen Systemen ist es jedoch nicht trivial, eine Zuordnung von ihrem Status zu einer "Ausgabe" so zu definieren, dass keine Junk-Daten weggeworfen werden. Ich interessiere mich speziell für Systeme, bei denen man sich vorstellen kann, dass sie eine Eingabe annehmen, eine Folge von (reversiblen) Transformationen darauf ausführen und dann (falls sie enden) eine Ausgabe zurückgeben.
(Ich hoffe, dass diese Frage leichter zu beantworten ist als meine vorherige verwandte Frage zu einem reversiblen Äquivalent zum Lambda-Kalkül.)