Conteúdos da cadeira

Máquinas de Turing e decidibilidade

O modelo de Turing, decidível contra reconhecível e a indedicibilidade da paragem.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Uma máquina de Turing (TM) é um autómato finito com uma fita infinita onde pode ler, escrever e andar para trás e para a frente. É o modelo geral de computação: tudo o que um computador faz, uma TM faz. E, surpreendentemente, há problemas que nem ela resolve. Esta página apresenta o modelo, distingue decidível de reconhecível e prova que o problema da paragem é indecidível.

O modelo: fita, cabeça, estados

Uma TM tem: uma fita infinita para a direita (ou ambos os lados), dividida em células com símbolos de um alfabeto de fita; uma cabeça sobre uma célula; um estado de um conjunto finito; e uma função de transição que, dado estado e símbolo lido, devolve novo estado, símbolo a escrever e movimento (EE esquerda, DD direita). Começa no estado inicial com a entrada na fita e o resto em branco (\sqcup). Para quando atinge um estado de aceitação ou rejeição; se nunca atingir, corre para sempre.

Exemplo: TM que decide {0n1n}\{0^n 1^n\}. Estratégia: em cada ronda, risca um 00 do início e um 11 do fim, repetindo até não restar nada (aceita) ou encontrar desordem (rejeita). Com XX a marcar riscados:

Ronda (começa na extremidade esquerda):
  varre à direita até ao primeiro 0 não riscado; risca-o (escreve X)
  continua à direita até ao primeiro 1 não riscado; risca-o
  volta à esquerda até ao X mais à esquerda
Aceita quando já não há 0 nem 1 por riscar; rejeita se vir um 1 antes
de riscar todos os 0 (ordem trocada) ou se sobrar um 0 sem um 1.

A diferença para o PDA: a cabeça volta atrás e relê, por isso conta duas vezes sem pilha. A fita é memória ilimitada com acesso arbitrário.

Decidível contra reconhecível

  • LL é reconhecível (recursivamente enumerável) se existe uma TM que aceita todas as palavras de LL e nunca aceita palavras fora (mas pode correr para sempre nas de fora).
  • LL é decidível se existe uma TM que para sempre, aceitando as palavras de LL e rejeitando as de fora. A TM é então um decisor.

Toda a linguagem decidível é reconhecível, mas o contrário falha. Intuição: reconhecer é “dizer sim quando sim”; decidir é “responder sempre”. Para linguagens regulares e livres de contexto, pertença é decidível (simulação e CYK). O salto da cadeira é que isto nem sempre é possível.

O problema da paragem é indecidível

O problema da paragem (HALTHALT): dada uma TM MM e uma entrada ww, será que MM para em ww? Prova por diagonalização de que nenhum decisor resolve isto.

  1. Supõe que existe um decisor HH: HH recebe M,w\langle M, w\rangle (uma codificação de MM e ww), para sempre e aceita se MM para em ww, rejeita se MM corre para sempre em ww.
  2. Constrói a máquina contrária DD. DD recebe M\langle M\rangle (a descrição de uma máquina) e faz: corre HH em M,M\langle M, \langle M\rangle\rangle, ou seja, pergunta “será que MM para quando recebe a sua própria descrição?”. Depois faz o contrário: se HH aceita, DD entra em ciclo infinito; se HH rejeita, DD para.
  3. Aplica DD a si própria. Pergunta: DD para em D\langle D\rangle? Há dois casos, e ambos rebentam:
    • Se DD para em D\langle D\rangle, então HH em D,D\langle D, \langle D\rangle\rangle aceita, logo DD em D\langle D\rangle entra em ciclo, ou seja, não para. Contradição.
    • Se DD não para em D\langle D\rangle, então HH rejeita, logo DD para. Contradição.
  4. Conclui. Os dois casos possíveis são impossíveis, por isso a suposição é falsa: o decisor HH não existe. HALTHALT é indecidível.

Repara que a prova não usa nada sobre como HH funciona por dentro, só o seu comportamento observável. É uma diagonalização: DD foi construída para diferir de cada máquina na diagonal “máquina aplicada a si própria”. Se treinaste provas com condicionais, revê a estrutura: é uma prova por contradição com análise de casos, onde cada caso nega a sua própria hipótese.

Reconhecível mas não decidível: o próprio HALT

HALTHALT é reconhecível: uma TM que simula MM em ww e aceita se a simulação parar aceita exatamente os pares onde MM para. O que falta é parar nos pares onde MM não para, e a prova acima mostra que nenhuma TM consegue isso sempre. Por isso HALTHALT separa as duas classes.

Para levar para a próxima página

Há uma fronteira absoluta: problemas que nenhum algoritmo resolve. Mas entre os decidíveis há outra fronteira, prática: problemas decidíveis mas intratáveis. É a complexidade: P contra NP.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.