Uma separação explícita entre construtibilidade no tempo e construtibilidade no espaço?

10

Mostre uma função que é construtível no espaço, mas não no tempo.f(n)

Esse problema está relacionado a uma possível separação entre as classes de complexidade DTIME (f (n)) e SPACE (f (n))?

Tian Liu
fonte
3
pt.wikipedia.org/wiki/Constructible_function Até onde eu sei, essa pergunta não está relacionada a TIME (f (n)) vs SPACE (f (n)), mas observe que essas duas classes são diferentes. Procure os artigos "On Time Versus Space", "On Time Versus Space II", "On Time Versus Space III"
Ryan Williams
Uma observação rápida: acho que o problema equivale a perguntar se DTIME (f (n)) ALLTALLY e SPACE (f (n)) ∩TALLY pode ser diferente para alguma função construtível em espaço f (n), onde TALLY é a classe de idiomas que são subconjuntos de 1 ^ *.
Tsuyoshi Ito
Ops, eles podem não ser equivalentes. Aqui está uma prova de uma direção. Se existe um idioma L = {1 ^ n | n∈S} ∈ TALLY∩ (ESPAÇO (f (n)) ∖ DTIME (f (n))) para alguma função construtível em espaço f (n), então f (n) ef (n) + χ_S (n ) (onde χ_S (n) é a função característica de S) são construtíveis no espaço, mas não são ambos construtíveis no tempo e, portanto, pelo menos um deles é uma função construtível no espaço, mas não construtível no tempo.
Tsuyoshi Ito
2
Graças a Ryan, pelo seu comentário, eu sei que TIME (f (n)) está contido em SPACE (f (n) / log f (n)) por Hopcroft et al, e o último está corretamente contido em SPACE (f (n )) pelo teorema da hierarquia espacial.
Tian Liu
Graças a Tsuyoshi, idéias muito inteligentes, se f (n) ef (n) + χ_S (n) são construtíveis no tempo, então podemos decidir se n∈S está no máximo f (n) +1 no tempo, portanto L ∈TALLY∩ DTIME (f (n)), uma contradição. mas suas construções podem ser chamadas de "explícitas"? qual não é construtível no tempo, f (n) ou f (n) + χ_S (n)? por "explícito" se eu quero dizer que podemos decidir o valor f (n) para todos os n, então sua construção é explicita.
Tian Liu

Respostas:

6

Uma função é construtível no tempo se houver uma máquina de Turing M que, na entrada 1 n , calcule a função x T ( | x | ) no tempo O ( T ( n ) ) .T:NNM1 1nxT(|x|)O(T(n))

Uma função é espaço construtível se houver uma máquina de Turing M que, na entrada 1 n , calcule a função x S ( | x | ) no espaço O ( S ( n ) ) .S:NNM1 1nxS(|x|)O(S(n))

Alguns textos exigem que as funções construtivas de tempo / espaço não sejam decrescentes. Alguns textos requerem que as funções construtivas no tempo satisfaçam , e as funções construtivas no espaço satisfaçam S ( n ) log n . Alguns textos não fazem uso da notação O ( ) na definição.T(n)nS(n)registronO()

De qualquer forma, é fácil mostrar que todos os "normais" função , satisfazendo f ( n ) log n e f ( n ) = O ( n ) é constructible espaço, mas não constructible tempo.ff(n)registronf(n)=o(n)

O problema da construtibilidade não está diretamente relacionado à possível separação entre as classes de complexidade DTIME (f (n)) e SPACE (f (n)). No entanto, a declaração dos teoremas da hierarquia do tempo e do espaço incorpora a construtibilidade. Por exemplo:

Teorema da Hierarquia de Tempo Se , g são funções construtíveis de tempo que satisfazem f ( n ) log f ( n ) = o ( g ( n ) ) , então D T I M E ( f ( n ) ) é um subconjunto adequado de D T I M E ( g ( n ) ) .fgf(n)registrof(n)=o(g(n))DTEuME(f(n))DTEuME(g(n))

Veja o livro de Arora & Barak ou o de Papadimitriou para obter mais informações. (O último usa o termo "função de complexidade adequada" para se referir a um que é construtível no tempo e no espaço)

MS Dousti
fonte
Obrigado. Prefiro a definição de que uma função é construtível no tempo / espaço se houver uma máquina de Turing que execute exatamente os passos / quadrados da fita. Obviamente, pelos teoremas lineares de velocidade do tempo / espaço, isso é equivalente às suas definições / de livros didáticos.
Tian Liu
Sadeq, suas definições para "tempo construtível" e "espaço construtível" são idênticas palavra por palavra. Você está dizendo que esses são apenas dois nomes diferentes para exatamente o mesmo conceito? Caso contrário, talvez você deva corrigir suas definições.
Yitz 7/09/10
É apenas um erro de digitação.
Tsuyoshi Ito
Desculpe Yitz. Corrigi o erro de digitação.
MS Dousti 20/09/10
4

é um espaço construtível, mas não um tempo construtível. O motivo é que você pode mapear 1 n para a representação binária no espaço O ( log n ), mas não no tempo O ( log n ) .f(n)=logn1nO(logn)O(logn)

Mohammad Al-Turkistany
fonte
Graças ao comentário e resposta. Mas você pode mostrar uma função f (n) que é pelo menos linear, ou seja, f (n)> = n, para a separação? Parece que uma função construtível no tempo não pode ser menor que n por uma razão aparente: precisa ler todos os bits de entrada; caso contrário, um argumento adversário pode mostrar que a função não é calculada corretamente.
Tian Liu
@Tian, é uma função construtível no espaço, mas não no tempo. f(n)=n
Mohammad Al-Turkistany
Mais uma vez obrigado, mas você assume que a cabeça de leitura na fita de entrada está localizada inicialmente à esquerda do primeiro bit de entrada? nesse caso, para detectar o último bit de entrada, a cabeça deve se mover para a direita n + 1 vezes até encontrar o primeiro espaço em branco após a entrada. Então é construtível no tempo. Então, por favor, faça uma separação "não-trival" por uma função f (n)> = n + 1? f(n)=n+1 1
Tian Liu
2

Se todas as funções de espaço-tempo são construtıvel-construtıvel, então . Para provar que (e para dar um exemplo de um não-trivial espaço-construtıvel mas presumivelmente não tempo-construtıvel função), tomemos um arbitrário (possivelmente E X P - S P A C E - C O M P G E T E ) problema L E X PEXP-TEuME=EXP-SPUMACEEXP-SPUMACE-COMPeuETE , G { 0 , 1 } * . Então existe um k N , st L pode ser resolvido por um DTM M em um espaço de 2 n k . Agora defina a função f ( n ) = { 8 n + 2 se  ( primeiro k euEXP-SPUMACEeu{0 0,1 1}kNeuM2nk

f(n)={8n+2E se (primeiro registron+1 1k pedaços de bEun(n))eu8n+1 1outro

2nffeu

Esta resposta usa a mesma ideia.

David G
fonte