Computando o comprimento da entrada em uma máquina de Turing com uma fita

13

Em conexão com essa pergunta , me ocorreu pensar: qual é a complexidade de tempo para uma máquina de Turing de uma única cabeça e uma fita calcular a duração de sua entrada? Para ser específico, digamos que o alfabeto da fita seja , a entrada seja uma string em cercada por espaços em branco, a máquina inicia no símbolo de entrada mais à esquerda e deve termina no símbolo mais à esquerda de uma sequência em (novamente cercada por espaços em branco) que fornece a representação binária do comprimento da entrada. Isso também pode ser pensado como o problema de converter um número de unário para binário.( 0 + 1 ) ( 0 + 1 ) {0 0,1,b}(0 0+1)(0 0+1)

É fácil resolver isso em uma máquina de duas fitas ou duas cabeças em tempo linear (basta escanear a entrada com uma cabeça enquanto usa a outra cabeça para aumentar repetidamente um contador; incrementar é uma operação de tempo amortizado constante). Mas as soluções de cabeçote único que posso encontrar são apenas (por exemplo, incrementa repetidamente um contador e depois o desloca em uma posição ao longo da fita). Existe um limite inferior correspondente?O(nregistron)

Tentei algumas pesquisas, mas frases como "uma cabeça" e "tamanho da entrada" são tão comuns que dificultam a pesquisa na literatura por resultados conhecidos sobre esse problema.

David Eppstein
fonte
Interessante .. Isso é menos óbvio do que parece. Estou curioso para saber se existe uma relação entre um limite inferior para isso e um limite inferior para a simulação inconsciente da TM. (Qualquer TM resolver este problema seria, por definição, ser alheio (ou ter o código desnecessário).)
Daniel Apon

Respostas:

11

Não pode ser calculado no tempo .o(nlgn)

Seja uma máquina que, dada uma sequência de entrada pare com o tamanho de escrito em binário na fita.x xMxx

Podemos adicionar um DFA simples (tempo linear de espaço zero) a para verificar se o tamanho da entrada é uma potência de dois: basta verificar se o primeiro bit é 1 e o restante é zero.M

Vamos supor que execute tempo . Então podemos decidir a tempo que o tamanho da entrada é uma potência de dois. Em outras palavras, o idioma a seguir é decidível em . Segue-se de que deve ser regular. Mas é fácil verificar se o idioma não é regular. Portanto, não pode ser executado no tempo .Mo(nlgn)o(nlgn)DTEume(nlgn)

eu={0 0Euk Eu=2k}
DTEume(o(nlgn))=RegeuMo(nlgn)
Kaveh
fonte
Sinto falta de algo aqui: quando você diz que , você está considerando cálculos em uma máquina de fita única? Normalmente, penso que máquinas de duas fitas são usadas para definir classes de complexidade. Uma questão muito relacionada é de onde vem o resultado acima? DTEume(o(nlgn))=Reg
de Bruno
@ Bruno, sim, estou falando de máquinas de Turing de fita única. Não sei qual é o padrão para definir as classes de complexidade, vários livros usam modelos diferentes. Os artigos originais da teoria da complexidade estavam usando os de fita múltipla, eu acho, mas parece que isso mudou, veja isso . Para você pode encontrá-lo em "Teoria da recursão clássica" vol. II e "Manual de Ciência da Computação Teórica". DTEume(nlgn)=Reg
Kaveh
Obrigado pelas dicas, dei uma olhada na "Teoria da recursão clássica" vol. II Pelo fato de ter mudado, não está tão claro para mim. Por exemplo, o livro de Sipser usa TMs de fita única para definir classes de complexidade de tempo, mas o livro de Hopcroft-Ullman e os mais recentes de Arora-Barak e Goldreich usam TMs de fita múltipla.
187 Bruno Bruno
1
@ Bruno, acho que qual é a definição mais comum do DTime é mais complicada. Por exemplo, a afirmação comum de que "o teorema da hierarquia de tempo não é conhecido por ser rígido" é verdade apenas para máquinas de fita única, para máquinas de duas fitas é conhecido desde 1982.
Kaveh
Na verdade, essa consideração sobre o teorema da hierarquia de tempo existe apenas em livros didáticos usando uma TM de fita única como modelo (por exemplo, Sipser). Mas em outros, não há nada sobre a não tensão (Arora-Barak, Goldreich, etc ...). Obviamente, tudo isso não é de grande importância, mas parece-me que dizer que geralmente é definido usando TMs de fita única não é verdade: alguns autores usam TMs de fita única, outros usam multitape. TMs e muitos autores são vagos sobre esse assunto ... Em outras palavras, não parece haver consenso sobre essa questão. DTEume
Bruno