O não-determinismo em uma máquina de turbulência não-determinística é diferente daquele dos autômatos finitos e dos autômatos push-down?

9

Deixe uma sequência de entrada ser dada como . Então, se um NFA está atualmente no estado (e leu a entrada até o alfabeto ), antes de ler o próximo símbolo de entrada, o NFA se divide em dois NFA, um no estado outro no , se houver uma transição de o tipo . Se houver um ciclo do tipo , em que são alguns estados da NFA, então não adianta lembrar de outro NFA no estado r até o ponto em que a entrada foi lida até o alfabeto w_i r w i r s r ϵ s r ϵ s ϵ q 1 . . . . ϵ q k ϵ r q i r w iw1w2...wnrwirsrϵsrϵsϵq1....ϵqkϵrqirwi.

Se um PDA (não determinístico) estiver no estado r (e a entrada for lida até wi ) e existir um ciclo rϵ,ϵasϵ,ϵaq1....ϵ,ϵaqkϵ,ϵar (em que transição ϵ,ϵa meio que nada após wi é lido da entrada, nada é exibido ou lido da pilha e o alfabeto a é empurrado para a pilha) antes de ler o próximo alfabeto de entrada wi+1 , haverá um PDA infinito nos estados r,s,q1,...qk porque, diferentemente do NFA, embora os estados sejam finitos, o conteúdo da pilha pode ser diferente (infinitas possibilidades), se não estiver errado.

Assim como na NFA e no PDA, o poder do não-determinismo vem das transições ϵ . Portanto, eu assumo que a máquina de Turing não determinística também obtém seu não-determinismo de transições ϵ como NFA e PDA (mais como PDA). Eu sei que uma máquina de Turing determinística pode simular uma máquina não determinística (eu conheço a prova que usa a busca inicial). Mas agora tenho dúvidas sobre como isso é possível. Porque se um ciclo do tipo no PDA acima existir no diagrama de estados da máquina de Turing não determinística, antes de ler o próximo símbolo ϵWEu+1 1a máquina de Turing determinística, mesmo ao simular uma configuração em algum ramo da máquina de Turing não determinística (enquanto bfs), teria que acompanhar a máquina de Turing infinita (novamente os estados são finitos, mas os símbolos na fita têm infinitas possibilidades).
Então, como exatamente o não determinismo é definido no caso das máquinas de Turing? Estou entendendo mal algo trivial? As máquinas de Turing não determinísticas usam transições ?ϵ


Sinto muito pelas minhas dúvidas triviais. Se algo estiver incorreto, posso atualizar minha pergunta.

sashas
fonte
2
em relação à questão do título, não há muita diferença nas definições formais. quanto ao poder emergente, sim, tem implicações muito diferentes em cada modelo de máquina. quanto ao restante da pergunta, é difícil analisar. :(
vzn 13/10/2015
11
Você verificou a Wikipedia? en.wikipedia.org/wiki/Non-deterministic_Turing_machine
Yuval Filmus
@YuvalFilmus sim eu tenho. A definição da função de transição inclui um conjunto de potência que eu entendo. Mas o problema das transições nas máquinas de Turing ainda não está claro para mim. epsEueuon
Sashas
@ vzn eu pensei que sim. Eu sinto muito mesmo. Sou péssimo em apresentar minhas dúvidas. Mas posso melhorar se você der sugestões.
Sashas

Respostas:

8

Não-determinismo é o mesmo conceito em todos os contextos - a máquina tem várias opções para prosseguir em qualquer ponto. No entanto, a semântica é um pouco diferente, pois DFAs / NFAs e PDAs sempre definem funções totais , enquanto as máquinas de Turing (determinísticas ou não determinísticas) em geral definem funções parciais .

Uma função parcial é aquela definida apenas em parte do domínio. Se não está definido em então escrevemos . (Portanto, é realmente uma função total, mas há um elemento especial no intervalo que significa que a saída é indefinida.) Uma máquina de Turing determinística define uma função parcial da seguinte maneira: se parar em então é o conteúdo da fita quando pára em ; e caso contrário, .x f ( x ) = f M M x M ( x ) M x M ( x ) = fxf(x)=fMMxM(x)MxM(x)=

Um decisor determinístico da máquina de Turing tem dois tipos de estados de parada, aceitando e rejeitando, e define uma função parcial da seguinte maneira: se parar em em um estado de aceitação, então ; se parar no estado de rejeição, então ; se não parar, então . Se sempre parar, dizemos que aceita o idioma .x M ( x ) = 1 M ( x ) = 0 M ( x ) = M L = { x : M ( x ) = 1 }MxM(x)=1M(x)=0M(x)=ML={x:M(x)=1}

Uma máquina de Turing não determinística (que é sempre uma decisão) pode "ramificar" (tem várias opções possíveis a qualquer momento) e tem a seguinte semântica:

  • M(x)=1 se na entrada , a máquina pára em todas as ramificações, parando no estado de aceitação por pelo menos uma ramificação.xM
  • M(x)=0 se na entrada , a máquina pára em todas as ramificações, sempre parando em um estado de rejeição.xM
  • M(x)= se na entrada existir um ramo no qual não pare.xM

Dada essa definição, espera-se claramente como simular uma máquina de Turing não determinística usando um dispositivo determinístico de máquina de Turing: você tenta todas as ramificações, verificando se alguma delas leva a um estado de parada de aceitação. Após a interrupção de todas as ramificações, você pode decidir se deseja ir para um estado de aceitação ou para um estado de rejeição. Se a máquina de Turing não determinística não parar em algum ramo, o mesmo ocorre com a máquina determinística.


E quanto a -moves? Eles causam problemas, pois o autômato correspondente pode nunca parar. Para autômatos finitos (NFAs e PDAs), ignoramos silenciosamente os cálculos sem interrupção. Nossa razão para fazer isso é que as linguagens resultantes são sempre computáveis, mesmo que o algoritmo ingênuo para simulá-las deterministicamente (simulando todos os caminhos de computação) não funcione completamente. Isso não é tão difícil para os NFAs, que podem ser convertidos em DFAs. No entanto, os PDAs determinísticos são estritamente mais fracos que os PDAs não determinísticos. No entanto, você pode mostrar que todo PDA é equivalente a um sem transição (embora a prova possa passar por gramáticas sem contexto).ϵϵ

Você pode simular -moves em máquinas de Turing, mas é preciso ter cuidado para que não haja loops que causem cálculos sem interrupção. Em alguns casos, no entanto, podemos usar o mesmo truque acima. Por exemplo, suponha que sua máquina de Turing tenha restrições de espaço: conhecemos um limite superior no espaço que ela usa (dependendo do comprimento da entrada). Nesse caso, todo cálculo sem interrupção necessariamente muda (uma vez que a máquina de Turing possui muitos estados finitos, incluindo o conteúdo da fita); portanto, se "ignorarmos" os cálculos sem interrupção, como acima, o modelo resultante de computação ainda é computável. De um modo mais geral, isso funciona desde que tenhamos a garantia de que todos os cálculos sem interrupção circulam. (Esse é o caso de NFAs, mas não de PDAs.)ϵ

Yuval Filmus
fonte
Obrigado. Eu tive uma última dúvida. Em um PDA com a transição , se o PDA estiver no estado , ele será dividido apenas se ( for o alfabeto lido na fita de entrada, for o alfabeto exibido na pilha e é empurrado para empilhar) é independentemente do que sejam e ( ou alfabetos de pilha regulares). Estou certo ? r b b c um ε um c εrb,casrbbcaϵacϵ
Sashas # 14/15
A execução do @sasha "divide" sempre que houver mais de uma opção para prosseguir.
Yuval Filmus 14/10
Como faço para provar que um PDA com transições pode ser convertido em um sem eles? Eu sei que sempre posso provar que a linguagem aceita por qualquer PDA é decidível convertendo-a em seu CFG na forma normal de Chomsky. Mas ainda não é possível converter para PDA sem transições epsilon. Eu realmente aprecio qualquer dica. ϵ
Sashas # 15/15
11
@sasha Você pode converter uma gramática sem contexto na forma normal de Greibach em um PDA sem transições (pelo menos de acordo com a Wikipedia). ϵ
Yuval Filmus 15/10
11
@YuvalFilmus, uma construção não determinística do GNF é essencialmente descendente recursiva: para uma produção , se estiver no topo da pilha, na entrada substitua por na pilha . Não há à vista. Ainda não determinístico (pode haver várias produções que iniciam ). AaB1B2BnAaAB1BnϵAa
vonbrand