Ist DSPACE (n) = DSPACE (1,5 n)?

11

Aus platz Hierarchie Theorem bekannt ist , daß , wenn raumkonstruierbar dann DSPACE ( ) , die gleich ist nicht DSPACE ( .f2f(n)f(n))

Mit DSPACE ( meine ich hier die Klasse aller Probleme, die im Raum von einer Turing-Maschine mit einem festen Alphabet gelöst werden können . Dies ermöglicht es, den Satz der Raumhierarchie mit einer solchen Genauigkeit zu betrachten.f(n))f(n)

Das Standardargument gibt die multiplikative Konstante : Wir benötigen den Raum um eine Berechnung einer Turing-Maschine durch eine universelle zu konstruieren. Wir brauchen auch , um ein Problem mit dem Anhalten zu lösen.2f(n)f(n)

Frage: Ist DSPACE ( ) gleich DSPACE ( )? f(n)32f(n)

Alexey Milovanov
quelle
2
Grund, warum Sie an interessiert ? Wäre genauso interessant? 1+Ω(1)321+Ω(1)
Thomas unterstützt Monica
1
Warum gibt der Satz der Ihrer Meinung nach ? Ich nehme an, Sie argumentieren, dass wir Speicherplatz für die Simulation und Speicherplatz zum Zählen der Anzahl der Schritte benötigen, um Endlosschleifen zu vermeiden. Aber in beiden Fällen müssen wir zuerst die -te Stelle auf dem Band markieren (kann durchgeführt werden, da ist) und wie würden Sie die Markierung durchführen? Ihr Argument ist in Ordnung, wenn Sie davon ausgehen, dass die Maschinen keine * schreiben dürfen, ansonsten aber einige weitere Komplikationen erforderlich sind. f ( n ) log | Σ | | Σ | f ( n ) f ( n ) f2f(n)f(n)log|Σ||Σ|f(n)f(n)f
Domotorp
@ Thomas Eigentlich möchte ich1+o(1)
Alexey Milovanov

Antworten:

9

Es kann bewiesen werden, dass DSPACE DSPACE wenn zumindest linear wächst, indem eine einfache Variante des Standard-Padding-Arguments verwendet wird. Für eine Sprache sei .(f(32n)) (f(n))fLL'={x0| x| /2xL}(f(n))fLL={x0|x|/2xL}

Anspruch. DSPACE genau dann, wenn DSPACE wenn .L( f ( n ) ) L '( f ( 2)(f(n))L(f(23n))f(n)32n

(Meine erste Antwort hatte mehrere falsche Aussagen, danke an Emil, der dies entdeckt hat.)

Ich werde zuerst zeigen, wie man den Anspruch verwendet, um die Hierarchie zu beweisen. Da zumindest linear wächst, haben wir DSPACE DSPACE . Nehmen Sie eine Sprache DSPACE DSPACE . Unter Verwendung der Behauptung ist DSPACE DSPACE , wobei die letzte Gleichheit durch die indirekte Annahme erfolgt. Aber dann ist DSPACE DSPACE , wobei die letzte Gleichheit wiederum durch die indirekte Annahme erfolgt, was einen Widerspruch ergibt.f( 2 f ( n ) ) ( f ( 2 n ) ) L ( f ( 2 n ) ) ( f ( n ) ) L '( f ( 4)(2f(n))(f(2n))L(f(2n)) (f(n))L(f(43n))= (f(n))L(f(3)(f(n))L(f(32n))= (f(n))(f(n))

Nachweis des Anspruchs. Wenn DSPACE , dann müssen wir zum Beweis von DSPACE nur Nullen an das Ende der Eingabe schreiben und simulieren die Maschine, die akzeptierte . Da , erhöht dies nicht den von uns verwendeten Speicherplatz. (Tatsächlich ist es überhaupt nicht klar, wie viele Nullen zu schreiben sind, wenn klein ist und wir die Alphabetgröße nicht erhöhen können. Stattdessen können wir ein anderes Band verwenden und auf alles schreiben, was nach dem Ende von kommen würde .)L( f ( 2(f(23n))L(f(n))| x| /2xL'f(n)3(f(n))|x|/2xLf(n)32nfx

Die andere Richtung ist einfach so einfach, indem die Nullen durch * ersetzt werden, wenn wir * schreiben dürfen. (Siehe die Probleme damit in meinem Kommentar zur Frage.) Wenn wir keine Sterne schreiben dürfen, ändern wir die Definition von leicht als . Anstatt Sterne zu schreiben, behalten wir jetzt die ursprüngliche EingabeLL={x10|x|/2xL}x10|x|/2und damit arbeiten. Aber wenn wir eine 1 erreichen, gehen wir nach rechts, bis wir eine weitere 1 treffen, um zu überprüfen, ob es das Ende von Wort 1 war oder nicht. Wenn wir eine weitere 1 gefunden haben, kehren wir einfach zu unserer 1 zurück. Wenn nicht, gehen wir immer noch zurück, aber wir werden wissen, dass sie als Stern behandelt werden sollte - wenn wir darauf schreiben würden, dann Wir schreiben auch eine 10 danach, um einen neuen Marker für das Ende des aktuellen Wortes zu erhalten. (Tatsächlich gibt es in diesem Teil auch einen kleinen Haken, wenn klein ist - wie können wir überprüfen, ob die Eingabe die Form ? Ohne die Eingabe zu zerstören, kann ich dies nur mit lösen mehrere Köpfe für kleine .)fx10|x|/2f

domotorp
quelle
Ich verstehe das Argument überhaupt nicht. Wie auch immer ich es sehe, die Auffüllkonstruktion zeigt nur, dass wenn , dann , was ziemlich ist unterscheidet sich von der Behauptung (beachten Sie den Standort des ). Ebenso ist die entgegengesetzte Richtung wie angegeben überhaupt nicht klar. Was mir nur klar ist, ist, dass wenn , dann . Selbst wenn ich die Behauptung zum Nennwert nehme, ist der Beweis des Hauptergebnisses falsch: gibt nur . L 'D S P A C E ( f ( 2)LDSPACE(f(n))2LDSPACE(f(23n))23LDSPACE(f(23n))LDSPACE(f(n)+n2)LDSPACE(2f(n))LDSPACE(43f(n)+n3))
Emil Jeřábek 3.0
1
@Emil Du hast recht. Ich habe versucht, das Problem zu beheben. Sieht es besser aus?
Domotorp
1
Mir ist nicht ganz klar, welches Maschinenmodell Sie verwenden, aber im Standardmodell mit einem schreibgeschützten Eingabeband, dessen Länge nicht für den begrenzten Platz zählt, sehe ich nicht, wie ohne mindestens einen Speicherplatz-Overhead. Aber alles klar, jetzt glaube ich das Hauptergebnis, solange ist. Eigentlich sollte es für jede Konstante indem das Argument iteriert wird. O ( log n ) f D S P A C E ( f ( n ) ) D S P A C E ( ( 1 + ϵ ) f ( n ) ) ϵ > 0LDSPACE(f(23n))LDSPACE(f(n))O(logn)fDSPACE(f(n))DSPACE((1+ϵ)f(n))ϵ>0
Emil Jeřábek 3.0
2
@Emil Ich glaube nicht, dass das Eingabeband schreibgeschützt ist - AFAIK, das nur angenommen wird, wenn . f(n)<n
Domotorp