Complexidade temporal das simulações de máquinas de Turing universais e o teorema da hierarquia temporal

8

Tenho um pequeno problema para entender a prova do Teorema da Hierarquia do Tempo (Hennie e Stearns, 1966) que garante a existência de uma linguagem aceitável em mas não aceitável em para quaisquer funções , de modo que seja construtível no tempo evocê(n)T(n)T(n),você(n)você(n)

nT(n)=o(você(n)registroT(n)).

Essa prova é baseada na existência da máquina de Turing Universal que simula qualquer máquina de Turing com complexidade de tempo no tempo .T(n)T(n)registroT(n)

Entendo (e acredito) a prova de que toda máquina de Turing de fita pode ser simulada por uma máquina de Turing de duas fitas com uma sobrecarga logarítmica. No entanto, eu entendo essa construção apenas se a máquina de Turing simulada estiver fixa, não no caso da simulação Universal TM.k

Vejo um "problema" no raciocínio apresentado no artigo citado (e também em vários livros-padrão sobre complexidade computacional) relacionados à construção da máquina Universal. Esse "problema" é que, na simulação da máquina Universal, uma etapa computacional de uma máquina simulada deve ser executada em tempo constante pela máquina Universal. Em outras palavras, o comprimento da descrição da máquina simulada deve ser constante.

Mas tudo bem? Como na prova do Teorema da Hierarquia de Tempo, a entrada dada à máquina de Turing simulada é exatamente essa descrição e, portanto, a descrição é de alguma forma dependente de . Estou ciente de que a descrição pode ser prolongada por uma sequência de bits iniciais, mas isso não parece resolver esse problema.n

Ou seja, não consigo entender por que a etapa de computação de uma máquina simulada pode ser executada em um tempo constante pela máquina Universal. O artigo de Hennie e Stearns não presta muita atenção a isso, apenas afirma que desta vez é algo que é implicitamente assumido como uma constante. Da mesma forma, nos livros que li sobre o assunto.

Simplesmente não consigo descobrir por que a complexidade temporal da simulação é , e não .T(n)registroT(n)nT(n)registroT(n)

Tenho quase certeza de que estou perdendo alguma coisa. No entanto, estou tentando entender isso por um tempo relativamente longo e, de alguma forma, não consigo descobrir isso.

042
fonte

Respostas:

7

Estou me referindo aqui à prova do teorema da hierarquia como eu o conheço, na qual não vejo o problema que você menciona.

Nós definimos o idioma eu={(M,W):M não aceita (M,W) dentro t(n)|M|3+|M|registrot(n),n=|(M,W)|} (Onde t é a função do tempo em que estamos trabalhando).

Mostramos que eu é decidível em O(t(n)) usando a máquina universal, e na máquina universal, cada passo depende de fato do tamanho da máquina, e é por isso que temos |M|3 no denominador (o 3 é apenas um limite superior nos cálculos necessários para simular uma etapa).

Para completar a resposta: quando tentamos chegar a uma contradição, assumimos que existe uma máquina T que decide eu. Após essa suposição, a codificação deT é fixo e, em seguida, a simulação de um único passo realmente leva tempo constante, e podemos chegar a uma contradição demorando bastante W para aumentar o comprimento da entrada sem alterar T.

Shaull
fonte
1
Eu acho que entendo - finalmente ... Isso é ótimo. ;) Muito obrigado!
042
1
A propósito, isso não é de todo uma pergunta idiota. Este é um teorema difícil, mesmo sem todos esses pequenos detalhes!
quer