Wie viel Zeit zum Erkennen von Palindromen im logarithmischen Raum?

20

Es ist bekannt, dass Palindrome auf -Band-Turingmaschinen in linearer Zeit erkannt werden können, nicht jedoch auf Einzelband-Turingmaschinen (in diesem Fall ist die benötigte Zeit quadratisch). Der Linearzeitalgorithmus verwendet eine Kopie der Eingabe und damit auch einen linearen Raum.2

Können wir Palindrome in linearer Zeit einer Multitape-Turing-Maschine erkennen, die nur einen logarithmischen Raum verwendet? Welche Art von Raum-Zeit-Kompromiss ist allgemein für Palindrome bekannt?

Bruno
quelle

Antworten:

22

Unter Verwendung von Kreuzungssequenzen oder Kommunikationskomplexität ist es einfach, den Kompromiss für eine sequentielle Turingmaschine unter Verwendung von Zeit und Raum abzuleiten .O ( T ( n ) ) O ( S ( n ) )T(n)S(n)=Ω(n2)O(T(n))O(S(n))

Dieses Ergebnis wurde zuerst von Alan Cobham unter Verwendung von Kreuzungssequenzen in der Arbeit Das Erkennungsproblem für die Menge der perfekten Quadrate erhalten, die bei SWAT (später FOCS) 1966 auftrat.

Kristoffer Arnsfelt Hansen
quelle
25

Sie können dasselbe Argument verwenden, um die auf einem einzelnen Band gebundene -Zeit zu beweisen .Ω(n2)

Angenommen, Sie haben ein TM mit -Raum, das die Palindrome erkennt (wobei ist die Umkehrung von ) in der Zeit . Wenn der (Eingabe-) Kopf die mittlere überschreitet , kann er nur Informationsbits übertragen. Also muss es Kreuze geben, und jede Kreuzung benötigt Mal.{ xS(n)xRxT(n)0n/3S(n)Ω(n/S(n))n/3{x0n3xR|x|=n/3}xRxT(n)0n/3S(n)Ω(n/S(n))n/3

Also ist .T(n)S(n)=Ω(n2)

Marzio De Biasi
quelle
Ops ... Nachdem ich die Antwort geschrieben hatte, sah ich, dass Kristoffer die Lösung bereits gepostet hatte. Akzeptiert seine Antwort, ich lasse meine nur, weil sie ein paar Details mehr enthält.
Marzio De Biasi
5
Ich denke, es war praktisch gleichzeitig.
Kristoffer Arnsfelt Hansen
Wie Sie vorgeschlagen haben, habe ich Kristoffers Antwort akzeptiert, da er etwas früher war ... Vielen Dank an Sie beide!
Bruno
1
{x0n{x0n3xR|x|=|y|=n/3} sieht seltsam aus. Besser eine Anmerkung, dass der String-Reverse-Operator ist. {x0n3xR|x|=n/3}R
miracle173
2

Zusätzlich zu den anderen Antworten ist es erwähnenswert, dass Palindrome mit O (1) -Raum und O (n) -Zeit erkannt werden können, wenn Randomisierung zulässig ist string und überprüfe, ob die Hashes gleich sind. Es sollte nicht schwierig sein, dies auf einer Turing-Maschine zu tun.

Mobius Knödel
quelle