Um aluno meu fez recentemente a seguinte pergunta:
D T I M E ( f ( n ) ) ⊊ D T I M E ( g ( n ) ) .
Provavelmente, isso pode ser demonstrado verdadeiro ao construir um h ( n )
cc.complexity-theory
S. Pek
fonte
fonte
Respostas:
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:N→Nf:N→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}i∈N ε(n) i j≤i |ε ( 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) i i i ε(n) i i+1 i+1 i+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)
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 ) ), temos⌊f(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)) α n h ( 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)⌋
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))
fonte
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)) .
fonte
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|x∣x∈{0,1}∗} using a standard crossing sequence argument.
fonte