É possível que o problema da parada seja solucionável para todas as entradas, exceto o código da máquina?

9

Ocorreu-me uma pergunta sobre o problema da interrupção e não consegui encontrar uma boa resposta on-line, imaginando se alguém poderia ajudar.

É possível que o problema da parada seja decidível para qualquer TM em qualquer entrada, desde que a entrada não seja a própria TM? Basicamente:

Halts(TM, I)
    IF TM == I:
        Undecidable, return a random result/throw an exception, whatever
    ELSE:
        Solve the problem

Halts'(X)
    IF Halts(X, X):
        Loop infinitely
    ELSE:
        Print 'done'

Aparentemente, isso resolve a contradição. Quando chamamos os paradoxais de Halts de '(Halts'), não podemos esperar um comportamento consistente, mas todas as outras chamadas para Halts (e Halts) são legítimas e solucionáveis.

Eu entendo que isso é altamente intuitivo. Se algum padrão nos bits pudesse revelar o comportamento de todos os programas possíveis, por que desmoronaria repentinamente quando a TM e a entrada correspondessem? Mas podemos matematicamente eliminar isso como uma possibilidade?

E esse problema de parada reduzida não seria nada interessante. Mesmo que houvesse algum programa significativo que tivesse seu próprio código como entrada, ele poderia ser reescrito trivialmente para trabalhar com entradas ligeiramente diferentes. É claro que essa sugestão torna ainda menos compreensível por que uma solução de parada poderia existir com essa ressalva, mas novamente, podemos realmente eliminar matematicamente essa possibilidade?

Obrigado por qualquer ajuda.

CS101
fonte
7
A decidibilidade não é afetada por alterações finitas.
existe um número infinito de TMs equivalentes e não há maneira (decidível) de detectar TMs equivalentes (ou seja, é essencialmente o mesmo que o próprio problema de parada). no entanto, existem algumas "brechas" complexas; tente Computer Science bate-papo , para posterior análise do problema da parada relacionada à thm automatizado provando etc ... pode tentar cozinhar isto em uma resposta ...
vzn
Retocou minha pergunta para ficar um pouco mais clara, desculpe se eu enganar alguém.
CS101
A resposta é não, como nesta resposta cstheory.stackexchange.com/questions/2853/…
Mohammad Alaggan

Respostas:

4

Mas podemos contornar facilmente sua restrição. Suponha que um programa G que inverta os bits da entrada e chame seu H no resultado, depois defina !H com todos os bits invertidos (ou seja, 0 para 1s, 1s para 0s). Então podemos chamar seu H com G(!H) e voltamos ao problema original.

Jack Aidley
fonte
Obrigado. Depois de ler a resposta de David Richerby, comecei a pensar que esta é a resposta. Se pudermos construir um Q 'funcionalmente equivalente para todos os programas Q, poderemos decidir mais uma vez a suspensão para todos os problemas, não apenas os que estão fora da diagonal. Vejo que é isso que você está dizendo.
CS101
12

Lembre-se da prova padrão da indecidibilidade do problema de parada. Suponha-se que uma máquina  resolve o problema da paragem e deixar Q ser a máquina que, na entrada  M usa  H para determinar se M ( M ) pára e, em caso afirmativo, Q  ciclos; caso contrário, Q  pára. Agora, Q ( Q ) paradas se, e somente se, ele não parar.HQMHM(M)QQQ(Q)

É possível que o problema da parada seja decidível para qualquer TM em qualquer entrada, desde que a entrada não seja a própria TM?

Não. Se você alterar a definição do problema de parada dessa maneira, a prova ainda funcionará. Não importa o que acontece quando  recebe  H como entrada, porque a contradição vem depois damos entrada Q , Q para  H .HHQ,QH

Segundo, se você modificou  para detectar essa entrada, podemos obter a mesma contradição usando qualquer outra máquina  Q ' que seja equivalente a  Q no sentido de que, para qualquer entrada  w , Q ' ( w ) é  interrompido se, e somente se , Q ( w )  pára. Existem infinitas delas e H  não pode detectar todas porque é indecidível se duas máquinas de Turing são equivalentes.HQQwQ(w)Q(w)H

David Richerby
fonte
3
O último parágrafo por si só pode ser suficiente para responder à pergunta: você não pode codificar todas as codificações de máquinas equivalentes, independentemente da adaptação finita (baseada na semântica) que deseja executar. (Isso não quer dizer que o resto do seu post não é uma leitura que vale a pena!)
Raphael
Obrigado pela resposta. A indecidibilidade de os programas serem ou não funcionalmente equivalentes não é derivada da indecidibilidade do problema de parada? Por que isso não seria um raciocínio circular?
CS101
11
HALTHALT
Me confundi, esqueci que o problema de parada total ainda é o mesmo de acordo com minha conjectura. Obrigado.
CS101