Separando as classes horárias

16

Um aluno meu fez recentemente a seguinte pergunta:

D T I M E ( f ( n ) ) D T I M E ( g ( n ) ) .

DTIME(f(n))DTIME(g(n)).
h ( n ) h(n)D T I M E ( f ( n ) ) D T I M E ( h ( n ) ) D T I M E ( g ( n) ) ?
DTIME(f(n))DTIME(h(n))DTIME(g(n))?

Provavelmente, isso pode ser demonstrado verdadeiro ao construir um h ( n )h(n) se f , gf,g forem construtíveis no tempo. Mas, em geral, acho que isso deve ser falso semelhante ao D S P A C E ( o ( log ( log ( n ) ) ) ) = D S P A C E ( 1 )DSPACE(o(log(log(n))))=DSPACE(1) .

S. Pek
fonte
Isso pode depender do modelo preciso.
Teorema do intervalo de Borodin mencionados aqui podem ser relevantes: cstheory.stackexchange.com/questions/8583/...
Michael Wehar
Você permite ? Porque, então, algum exemplo deve existir para algumas funções que são zero em todos os lugares, exceto o primeiro lugar. De qualquer forma, essa pergunta não faz sentido se todos os lugares, exceto um ? f ( n ) , g ( n ) = O ( 1 ) f g nf(n),g(n)=O(1)fgn
domotorp 27/02
2
Lamento não seguir completamente o problema com como por definição ? f ( n ) , g ( n ) = O ( 1 ) D T I M E ( f ( n ) ) = D T I M E ( g ( n ) )f(n),g(n)=O(1)DTIME(f(n))=DTIME(g(n))
28517 S. Pek
Desculpe por isso, eu interpretei mal a pergunta e meu comentário anterior não fazia muito sentido. Eu removi isso. Obrigado.
Michael Wehar

Respostas:

8

Se é definido como a classe de todos os idiomas decidíveis no tempo por uma máquina de Turing com duas fitas, suspeito que a resposta seja não. Em outras palavras, acho que nem sempre existe uma classe de complexidade de tempo estritamente intermediária.D T I M E ( f ( n ) ) O ( f ( n ) )DTIME(f(n))O(f(n))

Nota: Essa resposta pode não ser exatamente o que você está procurando, porque estou considerando funções não computáveis ​​e não incluo todos os detalhes do argumento. Mas senti que é um bom começo. Por favor, sinta-se livre para fazer qualquer pergunta. Talvez eu possa preencher esses detalhes ainda mais em algum momento ou talvez isso leve a uma resposta melhor de um leitor interessado.

Considere funções no formato . Nós nos referimos a essas funções como funções numéricas naturais.f:NNf:NN

Reivindicação 1: afirmo que podemos construir uma função de número natural não decrescente de crescimento muito lento (não computável) modo que:ε(n)ε(n)

(1) não diminuiε(n)ε(n)

(2)ε(n)=ω(1)ε(n)=ω(1)

(3) Para todos os computáveis ​​ilimitados , o conjunto é infinito.f:NNf:NN{n|ε ( n ) f ( n ) }{n|ε(n)f(n)}

Construímos ε ( n ) como uma função de passo não decrescente de crescimento lento. Vamos enumerar todas as funções computáveis ilimitados { f i } i N . Queremos construir ε ( n ) de tal maneira que para todo i e todo j i , m i n { kε(n){fi}iNε(n)iji|ε ( k ) i } m i n { k|f j ( k ) i } . Em outras palavras, esperamos mapear ε ( n ) para i até que as primeirasfunções i na enumeração sejam mapeadas para um valor maior ou igual a i pelo menos uma vez. Então, ε ( n ) continua sendomapeadopara i até que as primeirasfunções i + 1 na enumeração sejam mapeadas para um valor maior ou igual a i + 1 pelo menos uma vez e, nesse ponto, ele começaa ser mapeadopara i + 1min{k|ε(k)i}min{k|fj(k)i}ε(n)iiiε(n)ii+1i+1i+1. Se continuarmos esse processo iterativo para construir ε ( n ) , então para qualquer função computável ilimitada, embora ε ( n ) nem sempre seja menor, ele será infinitamente menor que o mínimo.ε(n)ε(n)

Nota: acabei de fornecer alguma intuição por trás da reivindicação 1, não forneci uma prova detalhada. Sinta-se livre para participar da discussão abaixo.

Como ε ( n ) é uma função de crescimento lento, temos o seguinte:ε(n)

Acordo com a reivindicação 2: Para todas as funções calculáveis número natural de f ( n ) e h ( n ) , se H ( n ) = Ω ( f ( n )f(n)h(n)ε ( n ) )eh(n)=O(f(n)), entãoh(n)=Θ(f(n)).h(n)=Ω(f(n)ε(n))h(n)=O(f(n))h(n)=Θ(f(n))

Para a reivindicação 2, se existir uma função computável h ( n ) entre f ( n )h(n)ε ( n ) ef(n)de tal modo queH(n)q(f(n)), em seguida, seríamos capazes de calcular uma função de número natural ilimitado que cresce mais do que slowelyε(n), que não é possível . f(n)ε(n)f(n)h(n)Θ(f(n))ε(n)

Deixe-me explicar alguns detalhes relevantes. Suponha, por uma questão de contradição, que tal função h ( n ) exista. Então, f ( n )h(n)h ( n )é ilimitado.f(n)h(n)

Nota: A função anterior é calculável porque f ( n ) e h ( n ) são calculáveis.f(n)h(n)

Como h ( n ) = Ω ( f ( n )ε ( n ) ), temosf(n)h(n)=Ω(f(n)ε(n))h ( n )=O(ε(n)). Segue-se que existe uma constanteαtal que para todonsuficientemente grande,αf(n)f(n)h(n)=O(ε(n))αnh ( n )<ε(n). Como essa função é ilimitada e computável, podemos aplicar a Reivindicação 1 para obter queε(n)αf(n)αf(n)h(n)<ε(n)h ( n )infinitamente frequentemente que contradiz a afirmação anterior.ε(n)αf(n)h(n)

Reivindicação 3: Para uma função construtível no tempo f ( n ) , temos que D T I M E ( f ( n )f(n)ε ( n ) )DTIME(f(n)), aindanãoexisteh(n)tal quef(n)DTIME(f(n)ε(n))DTIME(f(n))h(n)ε ( n )h(n)f(n)eDTIME(f(n)f(n)ε(n)h(n)f(n)ε ( n ) )DTIME(H(n))DTIME(f(n)).DTIME(f(n)ε(n))DTIME(h(n))DTIME(f(n))

Para mostrar isso, D T I M E ( f ( n )ε ( n ) )DTIME(f(n))é preciso utilizar uma hierarquia teorema vez mais forte e isto é onde usamos o pressuposto de que o número de fitas é fixo (que as referidas duas fitas acima). Veja "A estreita hierarquia determinística do tempo", de Martin Furer.DTIME(f(n)ε(n))DTIME(f(n))

Como não há funções numéricas naturais computáveis ​​entre f ( n )ε ( n ) ef(n)que não sejam os que estãoΘ(f(n)), tem-se que para cada funçãoh(n)de modo a quef(n)f(n)ε(n)f(n)Θ(f(n))h(n)ε ( n )h(n)f(n)eh(n)q(f(n)),DTIME(f(n)f(n)ε(n)h(n)f(n)h(n)Θ(f(n))ε ( n ) )=DTIME(H(n)).DTIME(f(n)ε(n))=DTIME(h(n))

Michael Wehar
fonte
11
Sim, isso é exatamente o que eu tinha em mente também, mas depois fiquei confuso em algum lugar ao longo do caminho. Eu só quero observar que ϵ ( n ) não precisa ser pequeno; um argumento semelhante mostra que a função inferior f ( n )ϵ(n)ϵ ( n ) pode ser substituído por uma função que é sempref(n)ou0, e a função superiorf(n)ϵ(n)pode ser substituída por uma função que é sempref(n)ou. f(n)ϵ(n)f(n)0f(n)ϵ(n)f(n)
Domotorp
11
(3) precisa restringir a funções ilimitadas f . f
@RickyDemer Sim, você está certo! Muito obrigado por entender isso. Editei minha resposta para adicionar a palavra ilimitada. :)
Michael Wehar 28/02
11
Não estou totalmente convencido sobre a reivindicação 1. Considere f i ( n ) = 1 se n i , n - i de outra forma. Considerando esta enumeração, é ϵ ( n ) = Θ ( 1 ) ? fi(n)=1niniϵ(n)=Θ(1)
31517 S. Pek
2
Tenho mais duas preocupações com essa prova: 1) Na reivindicação 2, você disse que a contradição decorre do fato de que não pode existir um ϵ ( n ) computável, pois é igual a | h ( n ) - f ( n ) | . Eu acredito que este seja um erro tipográfico, como deveria dizer que existe um k tal que ϵ ( n ) = | h ( n ) - k f ( n ) | . Mas observe que k ϵ(n)|h(n)f(n)|kϵ(n)=|h(n)kf(n)|knão precisa ser computável; portanto, o argumento não precisa se sustentar. 2) Você usou o resultado da Furer na Reivindicação 3. No entanto, o resultado é válido apenas para funções construtivas de tempo, mas f ( n )ϵ ( n ) não precisa ser construtível no tempo. f(n)ϵ(n)
31517 S. Pek
4

If this result is true, it would strengthen the best-known deterministic time hierarchy theorem. [This is more of a comment than an answer, but too long for a comment. It leaves open the direct construction of a counterexample.] Recall that the best Deterministic Time Hierarchy Theorem we currently have is that if f(n),g(n)f(n),g(n) are time-constructible, and g(n)o(f(n)/logf(n))g(n)o(f(n)/logf(n)), then DTIME(g(n))DTIME(f(n))DTIME(g(n))DTIME(f(n)).

Now suppose your desired result is true, and let g(n)g(n) be a time-constructible function that is close to, but still little-oh of, f(n)/log(f(n))f(n)/log(f(n)), say, g(n)=f(n)/(logf(n))3/2g(n)=f(n)/(logf(n))3/2. (This gg may not be time-constructible for arbitrary time-constructible ff, but surely for many time-constructible ff this gg is also time-constructible.) Now, your desired result produces an hh such that DTIME(g(n))DTIME(h(n))DTIME(f(n))DTIME(g(n))DTIME(h(n))DTIME(f(n)). In order to avoid improving the current-best time hierarchy theorem, we would need both g(n)=o(h(n)/log(h(n)))g(n)=o(h(n)/log(h(n))) and h(n)=o(f(n)/log(f(n))h(n)=o(f(n)/log(f(n)). These two together imply that g(n)o(f(n)/(log(f(n))log(h(n)))g(n)o(f(n)/(log(f(n))log(h(n))). Since h(n)g(n)h(n)g(n), we have g(n)o(f(n)log(f(n))log(g(n)))g(n)o(f(n)log(f(n))log(g(n))), or equivalently g(n)logg(n)o(f(n)/log(f(n)))g(n)logg(n)o(f(n)/log(f(n))). But g(n)log(g(n))=f(n)/(log(f(n))3/2[log(f(n))(3/2)loglog(f(n)]f(n)/log(f(n))g(n)log(g(n))=f(n)/(log(f(n))3/2[log(f(n))(3/2)loglog(f(n)]f(n)/log(f(n)), which is not o(f(n)/log(f(n))o(f(n)/log(f(n)).

Joshua Grochow
fonte
1
Cool! Also, note that there is a better time hierarchy theorem if the number of tapes is fixed. See "The tight deterministic time hierarchy" by Martin Furer.
Michael Wehar
1
@MichaelWehar: Thanks for the pointer! Indeed, when one gets so tight as to only require g(n)=o(f(n)), as Furer shows when the number of tapes is fixed, then my argument goes away. (And for basically the same reason, my argument goes away if this question were about space hierarchy instead of time: for space we have a perfectly tight hierarchy theorem even if # tapes isn't fixed.)
Joshua Grochow
2

I think such a behaviour is true for 1-Tape-DTMs. On the one hand, we have DTIME1(O(n))=DTIME1(o(nlogn)). Unfortunately, the only reference I know is in German: R. Reischuk, Einführung in die Komplexitätstheorie, Teubner, 1990, Theorem 3.1.8.

On the other hand, it should be possible to separate DTIME1(O(n)) and DTIME1(O(nlogn)) by the language {x#2|x|xx{0,1}} using a standard crossing sequence argument.

Markus Bläser
fonte