DSPACE (n) = DSPACE (1.5n)?

11

D'après le théorème de la hiérarchie spatiale, on sait que si f est constructible dans l'espace, alors DSPACE ( 2f(n) ) n'est pas égal à DSPACE ( f(n)) .

Ici, par DSPACE ( f(n)) je veux dire la classe de tous les problèmes qui peuvent être résolus dans l'espace F(n) par une machine de Turing avec un alphabet fixe. Cela permet de considérer le théorème de la hiérarchie spatiale avec une telle précision.

L'argument standard donne une constante multiplicative 2 : nous avons besoin de l'espace F(n) pour construire un calcul d'une machine de Turing par une machine universelle. Nous avons également besoin de F(n) pour résoudre un problème d'arrêt.

Question: Is DSPACE ( F(n) ) égal à DSPACE ( 32F(n))?

Alexey Milovanov
la source
2
Toute raison qui vous intéresse 32 ? Would1+Ω(1)être tout aussi intéressant?
Thomas
1
Pourquoi pensez-vous que le théorème de la hiérarchie spatiale donne ? Je suppose que vous soutenez que nous avons besoin2f(n)espace f ( n ) pour la simulation et le log | Σ | | Σ | f ( n ) espace pour compter le nombre de pas pour éviter les boucles infinies. Mais dans les deux cas, nous devons d'abord marquer que le ff(n)log|Σ||Σ|f(n) ème emplacement sur la bande (cela peut être fait puisque ff(n)fest constructible dans l'espace) et comment feriez-vous le marquage? Votre argument est OK si vous supposez que les machines ne sont pas autorisées à écrire des *, mais sinon d'autres complications sont nécessaires.
domotorp
@Thomas En fait, je veux 1+o(1)
Alexey Milovanov

Réponses:

9

On peut prouver que DSPACE (f(32n)) DSPACE(f(n))sifcroît au moins linéairement en utilisant une variante simple de l'argument de remplissage standard. Pour une langueL , soitL={x0|x|/2xL} .

Prétendre. L DSPACE (f(n)) si et seulement si L DSPACE (f(23n))sif(n)32n.

(Ma première réponse avait plusieurs déclarations incorrectes, merci à Emil d'avoir repéré cela.)

Je vais d'abord montrer comment utiliser la revendication pour prouver la hiérarchie. Puisque f croît au moins linéairement, nous avons DSPACE (2f(n)) DSPACE (f(2n)) . Prendre une langue L DSPACE (f(2n)) DSPACE(f(n)) . En utilisant la revendication,L DSPACE(f(43n))= DSPACE(f(n)), où la dernière égalité est par hypothèse indirecte. Mais alorsLDSPACE(f(32n))= DSPACE(f(n)) , où la dernière égalité est à nouveau par l'hypothèse indirecte, donnant une contradiction.

Preuve de la réclamation. Si L DSPACE (f(23n)), puis pour prouverLDSPACE(f(n)), il suffit d'écrire|x|/20 à la fin de l'entréexet simuler la machine qui a acceptéL. Puisquef(n)32n, cela n'augmentera pas l'espace que nous utilisons. (En fait, savoir combien de 0 à écrire n'est pas clair du tout sifest petit et nous ne pouvons pas augmenter la taille de l'alphabet - à la place, nous pouvons utiliser une autre bande et écrire sur tout ce qui viendrait après la fin dex.)

L'autre direction est aussi simple que cela en remplaçant les 0 par des *, si nous sommes autorisés à écrire des *. (Voir les problèmes avec cela dans mon commentaire à la question.) Si nous ne sommes pas autorisés à écrire des étoiles, nous modifions légèrement la définition de L comme L={x10|x|/2xL} . Maintenant, au lieu d'écrire des étoiles, nous gardons l'entrée d'origine x10|x|/2et travailler avec ça. Mais chaque fois que nous atteignons un 1, nous allons à droite jusqu'à ce que nous touchions un autre 1 pour vérifier s'il s'agissait du 1 de fin de mot ou non. Si nous avons trouvé un autre 1, nous revenons simplement à notre 1. Si ce n'est pas le cas, nous revenons toujours en arrière, mais nous saurons qu'il doit être traité comme une étoile - si nous écrivions dessus, alors nous écrivons également un 10 après pour avoir un nouveau marqueur de fin de mot courant. (En fait, il y a aussi un petit hic dans cette partie si f est petit - comment pouvons-nous vérifier si l'entrée est de la forme x10|x|/2 ? Sans détruire l'entrée, je ne peux résoudre ce problème qu'en utilisant plusieurs têtes pour les petits f .)

domotorp
la source
Je ne comprends pas du tout l'argument. Quoi qu'il en soit, la construction du rembourrage montre seulement que si , alors L D S P A C E ( f ( 2LDSPACE(f(n)), ce qui est assez différent de la réclamation (attention à l'emplacement du2LDSPACE(f(23n)) ). De même, la direction opposée n'est pas claire du tout comme indiqué, ce qui ne me semble clair que siL'23, alorsLDSPLDSPACE(f(23n)). Même si je prends la réclamation à sa valeur nominale, la preuve du résultat principal est fausse:LDSPACE(2f(n))ne donne queLDSPACE(4LDSPACE(f(n)+n2)LDSPACE(2f(n)). LDSPACE(43f(n)+n3))
Emil Jeřábek
1
@Emil Tu as raison. J'ai essayé de le réparer, ça a l'air mieux?
domotorp
1
Je ne sais pas très bien quel modèle de machine vous utilisez, mais dans le modèle standard avec une bande d'entrée en lecture seule dont la longueur ne compte pas dans l'espace, je ne vois pas comment montrer sans au moins unesurcharge d'espace O ( log n ) . Mais bon, maintenant je crois que le résultat principal, tant que f est constructible dans l'espace. En fait, il devrait donner D S P A C E ( f ( n ) ) D S P A C E ( ( 1 + ϵ ) f ( nLDSPACE(f(23n))LDSPACE(f(n))O(logn)fDSPACE(f(n))DSPACE((1+ϵ)f(n))pour toute constante en itérant l'argument. ϵ>0
Emil Jeřábek
2
@Emil Je ne pense pas que la bande d'entrée soit en lecture seule - AFAIK qui n'est supposé que si . f(n)<n
domotorp