Mit einer Vanille-Turing-Maschine meine ich eine Turing-Maschine mit einem Band (keine speziellen Eingabe- oder Ausgabebänder).
Das Problem ist wie folgt: Das Band ist anfangs leer, abgesehen von einer Zeichenfolge von s und s wird durch ein Zeichen am Ende der Zeichenfolge abgeschlossen. Der Bandkopf beginnt am Anfang der Zeichenfolge. Das Ziel besteht darin, dass das Band die ursprüngliche Zeichenfolge in umgekehrter Reihenfolge enthält, die durch ein Zeichen am Ende der Zeichenfolge abgeschlossen wird, wobei der Bandkopf zum Anfang der Zeichenfolge zurückkehrt, wenn die Turing-Maschine schließlich anhält.
Die Turing-Maschine kann ein beliebig großes Alphabet verwenden (solange es enthält) , und ein Zeichen am Ende der Zeichenfolge) und kann so viele Zustände haben, wie wir möchten. Gibt es eine feste Turing-Maschine, die diese Aufgabe rechtzeitig erledigen kann??
Es ist einfach, dies rechtzeitig zu tun mit nur wenigen Zuständen und Symbolen. Es scheint intuitiv klar zu sein, dass etwas uns daran hindert, es mehr als einen konstanten Faktor schneller zu machen, aber ich habe es nie beweisen können, und ich mache mir oft bis spät in die Nacht Sorgen über wundersame Anwendungen von Netzwerkcodierung oder Voodoo-Magie, die irgendwie einen bekommen logarithmische Beschleunigung ...
Antworten:
Der Standardweg, um solche Dinge zu beweisen, besteht darin, dies zu zeigenΘ(n) Informationsbits müssen sich mindestens kreuzen Θ(n) Punkte.
Das heißt, wenn Sie es "an Ort und Stelle" umkehren, muss das erste Drittel der Bits alle kreuzenn/3 mittlere Zellen und landen in der letzten n/3 Zellen. Da bewegt sich der KopfO(1) Bits höchstens eine Entfernung 1 Zelle jeden Schritt, dies erfordert n2/9 Schritte. Wenn die umgekehrte Kopie in einem anderen Satz von Zellen landet, ergibt ein sehr ähnliches Argument eineΩ(n2) Untergrenze.
Es erfordert einige Arbeit, um diese intuitive Idee konsequent umzusetzen, aber es wurde getan, obwohl ich nicht genug Zeit habe, um die Papiere zu finden, in denen diese Ergebnisse erschienen sind. Wenn jemand auf ein relevantes Papier verweisen kann, bearbeiten Sie bitte diese Antwort, um dies zu tun .
quelle
Ich sehe auch keine Möglichkeit, dies zu tun.
Es scheint zu dauernΘ(n2) Zeit, nur um eine zweite Kopie der Zeichenfolge zu erstellen (z. B. wenn die Eingabe die ist n -bit string s Am Ende der Berechnung soll das Band die Zeichenfolge enthalten ss ). Vielleicht könnte dies irgendwie mit den Methoden der Kommunikationskomplexität formalisiert werden; Ich weiß es nicht.
Hier ist eine Intuition dafür, warum sich eine Umkehrung so anfühlt, wie es erforderlich sein sollteΩ(n2) Schritte. Farbbitpositionen0,1,…,n/2 vom Klebeband grün; das ist "die grüne Zone". In ähnlicher Weise behandeln wir Bitpositionen3n/4,…,n als "die rote Zone". Intuitiv müssen wir vermittelnn/2 Informationsbits von der grünen zur roten Zone. Wenn der endliche Automat der Turingmaschine halten kannb Informationen, dann muss die Turing-Maschine die grüne Zone besuchen n/(2b) mal, und dann muss es wenigstens reisen n Positionen, um in die rote Zone zu gelangen. Es fühlt sich also so an, als müsste die Turing-Maschine zumindest etwas tunn/(2b) Pässe (wo es in jedem Pass in die grüne Zone eintritt und dann von der grünen Zone in die rote Zone fährt), und jeder Pass dauert n Schritte nur für die Kopfbewegung, für insgesamt mindestens n2/(2b)=Ω(n2) Schritte. Dies ist kein vollständiger Beweis, aber es scheint einen Eindruck davon zu vermitteln, warum ich nicht erwarte, dass es einen schnelleren Weg gibt, dies zu tun.
quelle