No problema de parada, estamos interessados se existe uma máquina de Turing que pode dizer se uma determinada máquina de Turing pára ou não em uma determinada entrada . Geralmente, a prova começa assumindo que existe umEm seguida, consideramos um caso em que restringimos ao próprio e derivamos uma contradição usando uma instância de um argumento diagonal. Estou interessado em como seria a prova se nos for dada a promessa de que ? E a promessa , onde é funcionalmente equivalente a ?M i T i M i ≠ M i ≠ M ′ M ′ M
computability
undecidability
halting-problem
bellpeace
fonte
fonte
Respostas:
Suponha que HALTS é uma TM que lê sua entrada como um par e , onde é uma codificação TM e é qualquer entrada para essa TM.x M xM x M x
Sua pergunta é se o que aconteceria se nós assumimos pára resolvido o problema da parada para todas as entradas tal que não é uma codificação de uma TM que é funcionalmente equivalente a .x M⟨M,x⟩ x M
Eu afirmo que isso implica uma contradição. Eu vim com isso no local, então eu recebo toda e qualquer crítica à minha prova. A idéia da prova é que, em vez de diagonalizar algo em si mesmo, criamos duas MTs mutuamente recursivas que se comportam de maneira diferente em algumas entradas (portanto, não são funcionalmente equivalentes), mas causam contradições.
Sejam e duas TMs mutuamente recursivas (ou seja, podemos simular, imprimir, etc., a descrição de dentro do programa de e vice-versa). Observe que podemos fazer TMs recursivas mutuamente a partir do teorema da recursão.D 2 D 2 D 1D1 D2 D2 D1
Defina e seguinte maneira: na entrada , se (10 escolhidos arbitrariamente), então aceita e loops. (Portanto, eles não são funcionalmente equivalentes).D 2 x | x | < 10 D 1 D 2D1 D2 x |x|<10 D1 D2
Entrada dada com , defina para simular HALTS em e interrompa se parar ou faça um loop se loop.| x | ≥ 10 D 1 ⟨ D 2 , x ⟩ D 2 D 2x |x|≥10 D1 ⟨D2,x⟩ D2 D2
Entrada dada com , defina para simular HALTS em e faça um loop se parar ou parar se loop.| x | ≥ 10 D 2 ⟨ D 1 , x ⟩ D 1 D 1x |x|≥10 D2 ⟨D1,x⟩ D1 D1
Observe que, para qualquer com , (x) pára ou faz um loop. Se na entrada x, sabemos que HALTS ( , x) determinou que pára na entrada x. No entanto, na entrada x implica que HALTS ( , x) faça um loop.| x | ≥ 10 D 1 D 1 D 2 D 2 D 2 D 1x |x|≥10 D1 D1 D2 D2 D2 D1
Se loops de entrada , a contradição da mesma forma. xD1 x
Isso é uma contradição, a menos que seja uma codificação para uma máquina de turing funcionalmente equivalente a ou , caso em que o HALTS tem um comportamento indefinido. No entanto, foi escolhido arbitrariamente entre todas as cadeias de tamanho maior que . Portanto, resta mostrar que existe uma máquina de turing com uma codificação de tamanho maior que 10 que se comporta de maneira diferente de e . Podemos construir essa máquina trivialmente. QED.D 1 D 2 x 10 D 1 D 2x D1 D2 x 10 D1 D2
Pensamentos?
fonte
Você ainda não está fora de perigo. Você se depara com o mesmo problema, só que agora fornece a ele um TM, como entrada, onde você escolheu para ser funcionalmente equivalente a (diga que você adiciona uma nova regra a para que abertura de se mova estão um passo à direita, um passo à esquerda e, caso contrário, você não faz alterações). Você ainda vai se deparar com uma contradição. Você pode tentar eliminar todas as TMs equivalentes a , mas esse é um conjunto indecidível.M ' M M M ' MM′ M′ M M M′ M
Update . Corrija um esquema de codificação em que denota a descrição desse esquema de uma TM e suponha que você tenha uma TM, em queM H⟨M⟩ M H
Agora, a construção usual de diagonalização ainda resulta em uma contradição. Defina um TM porQ
Claramente e são funcionalmente diferentes, então podemos deixar e descobrir que pára se, e somente se, não parar. não pode haver nenhuma TM tais .H x = ⟨Q H Q ( ⟨x=⟨Q⟩ HQ(⟨Q⟩) H
fonte