DSPACE (n) = DSPACE (1.5n)?

11

Do teorema da hierarquia espacial, sabe-se que, se é construtível em espaço, DSPACE ( ) não é igual a DSPACE ( .f2 f ( n )2f(n)f(n))

Aqui, por DSPACE ( quero dizer a classe de todos os problemas que podem ser resolvidos no espaço por uma máquina de Turing com algum alfabeto fixo. Isso permite considerar o teorema da hierarquia espacial com tanta precisão.f(n))f(n)

O argumento padrão fornece a constante multiplicativa : precisamos do espaço para construir um cálculo de alguma máquina de Turing por uma universal. Também precisamos de para resolver um problema com a parada.2f(n)f(n)

Pergunta: Is DSPACE ( ) igual DSPACE ( )? f(n)32f(n)

Alexey Milovanov
fonte
2
Algum motivo pelo qual você está interessado ? Será que ser igualmente interessante? 321+Ω(1)
Thomas suporta Monica
1
Por que você acha que o teorema da hierarquia espacial fornece ? Suponho que você defenda que precisamos de espaço para simulação e para contar o número de etapas para evitar loops infinitos. Mas em ambos os casos, precisamos primeiro marcar a ª posição na fita (pode ser feita porque é construtível no espaço) e como você faria a marcação? Seu argumento é bom se você assumir que as máquinas não têm permissão para escrever *, mas, caso contrário, são necessárias outras complicações. f ( n ) log | Σ | | Σ | f ( n ) f ( n ) f2f(n)f(n)log|Σ||Σ|f(n)f(n)f
Domotorp #
@Thomas Na verdade eu quero1+o(1)
Alexey Milovanov

Respostas:

9

Pode-se provar que DSPACE DSPACE se cresce pelo menos linearmente usando uma variante simples do argumento de preenchimento padrão. Para um idioma , deixe .(f(32n)) (f(n))fLL={x0| x| /2|xL}(f(n))fLL={x0|x|/2xL}

Afirmação. DSPACE se e somente se DSPACE se .L( f ( n ) ) L '( f ( 2(f(n))L(f(23n))f(n)32n

(Minha primeira resposta teve várias declarações incorretas, obrigado a Emil por descobrir isso.)

Primeiro, mostrarei como usar a reivindicação para provar a hierarquia. Como cresce pelo menos linearmente, temos DSPACE DSPACE . Pegue um idioma DSPACE DSPACE . Usando a reivindicação, DSPACE DSPACE , onde a última igualdade é pela suposição indireta. Mas então DSPACE DSPACE , onde a última igualdade é novamente pela suposição indireta, dando uma contradição.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))

Prova da reivindicação. Se DSPACE , para provar DSPACE , só precisamos escrever 0 no final da entrada e simular a máquina que aceitou . Como , isso não aumentará o espaço que usamos. (De fato, saber quantos Z 's devem ser escritos não fica claro se é pequeno e não podemos aumentar o tamanho do alfabeto - em vez disso, podemos usar outra fita e escrever sobre tudo o que viria após o final de .)L( f ( 2(f(23n))L(f(n))| x| /2xLf(n)3(f(n))|x|/2xLf(n)32nfx

A outra direção é simples assim, substituindo os zeros por * 's, se pudermos escrever *' s. (Veja os problemas com isso no meu comentário à pergunta.) Se não temos permissão para escrever estrelas, então modificamos ligeiramente a definição de como . Agora, em vez de escrever estrelas, mantemos a entrada originalLL={x10|x|/2xL}x10|x|/2 f x 10 | x | / 2 fe trabalhar com isso. Mas sempre que atingimos um 1, seguimos para a direita até atingirmos outro 1 para verificar se foi o final da palavra 1 ou não. Se encontramos outro 1, voltamos ao nosso 1. Se não o encontramos, ainda voltamos, mas saberemos que deve ser tratado como uma estrela - se quisermos escrever sobre ele, também escrevemos um 10 depois dele para ter um novo marcador de fim de palavra atual. (De fato, também há uma pequena captura nessa parte se for pequena - como podemos verificar se a entrada tem o formato ? Sem destruir a entrada, só posso resolver isso usando várias cabeças para pequenas .)fx10|x|/2f

domotorp
fonte
Eu não entendo o argumento. De qualquer forma, a construção de preenchimento mostra apenas que, se , então , o que é bastante diferente da reivindicação (lembre-se da localização do ). Da mesma forma, a direção oposta não é clara, como indicado, o que só está claro para mim é que, se , então . Mesmo se eu aceitar a afirmação pelo valor nominal, a prova do resultado principal está errada: fornece apenas . L 'D S P A C E ( f ( 2LDSPACE(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 Você está certo. Eu tentei consertar, parece melhor?
Domotorp 23/11
1
Não está totalmente claro para mim qual modelo de máquina você está usando, mas no modelo padrão com uma fita de entrada somente leitura cujo comprimento não conta para o espaço limitado, não vejo como mostrar sem pelo menos uma sobrecarga de espaço . Mas tudo bem, agora acredito que o principal resultado, desde que seja construtível em espaço. Na verdade, ele deve fornecer para qualquer constante iterando o argumento. 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 23/11
2
@ Emil Não acho que a fita de entrada seja somente leitura - AFAIK, que é assumida apenas se . f(n)<n
Domotorp