Uma máquina que nunca pára sempre faz um loop?


22

Uma máquina de Turing que retorne ao estado encontrado anteriormente com sua cabeça de leitura / gravação na mesma célula da mesma fita será presa em um loop. Essa máquina não para.

Alguém pode dar um exemplo de uma máquina sem interrupção que não se repete?


1
Apenas uma observação: a fita também pode ser diferente: uma condição suficiente (mas não necessária) para um loop sem fim quando a MT entra na mesma célula na etapa e na etapa t 2 > t 1 no mesmo estado, é aquela em etapa t 2, a parte da fita visitada pela cabeça entre a etapa t 1 e a etapa t 2 é igual à porção correspondente imediatamente antes de inserir t 1 . t1t2>t1t2t1t2t1
Vor

4
Se uma TM tivesse que fazer um loop para não interromper, você seria capaz de resolver com facilidade o problema de interrupção das MTs: lembre-se de todas as configurações anteriores e, a cada etapa, verifique se você está em uma configuração que já viu antes, e se assim for, você sabe que a coisa não pára (caso contrário, como assumimos que ela deve fazer um loop para poder rodar para sempre, não será executada para sempre, ou seja, será interrompida; nesse caso, eventualmente saber sobre isso).
22812 Patrick87

Inspirado pela resposta de @Niel de Beaudrap: uma máquina de turing pode calcular a sequência oeis.org/A014445 e parar quando obtiver um número ímpar. Ele pode calcular oeis.org/A016742 como uma soma contínua e parar quando o número é ímpar. Poderia calcular x^2onde os xciclos entre -100e 100e o ciclo são feitos com um módulo e parar quando o resultado é negativo. Ele poderia calcular x%2onde x varia de zero ao infinito positivo e parar quando o resultado é igual a 2. Na linguagem assembly, os loops while / while / down vêm todos com um salto condicional, mas o salto cond significa pouco.
Leonid

A suposição da pergunta é verdadeira apenas para máquinas determinísticas.
Raphael

Respostas:


15

Considere a TM que sempre move a cabeça da fita para a direita e imprime um símbolo especial de fita não em branco a cada etapa. Isso significa que a TM nunca para, pois sempre se move para a direita e nunca repete um estado, pois depois que k pisa, a cabeça da fita fica sobre a quinta célula da máquina. Conseqüentemente, cada configuração da máquina é diferente de todas as outras, e a máquina sempre faz um loop.

Também poderíamos mostrar de maneira não construtiva a existência de tais máquinas. Suponha, por contradição, que toda MT que nunca pára, eventualmente faz um loop. Isso significa que, se você iniciar um TM em uma sequência w , um dos seguintes ocorrerá eventualmente:Mw

  1. pára, ouM
  2. repete uma configuração.M

Nesse caso, o problema da parada seria decidível da seguinte maneira. Dada uma TM e a sequência w , simule M em w , a cada ponto, anotando o conteúdo da fita, o estado atual e a posição atual da fita. Se essa configuração for duplicada, a saída "não será interrompida". Caso contrário, se M parar em w , a saída "pára". Como é garantido que um desses eventos acabe eventualmente, esse processo sempre termina, portanto, teríamos um algoritmo para o problema de parada, que sabemos que não existe.MwMwMw

Espero que isto ajude!


Hah, vencê-lo nessa edição. Veja meu comentário sobre a questão. Eu gosto dessa maneira de explicar por que nem todas as MTs sem interrupção devem fazer um loop ... isso cria intuição.
Patrick87

@ Patrick87- Desculpe, eu não percebi o comentário. Pensei no adendo no meu trajeto e me sentei para entrar assim que voltei.
templatetypedef

Não tem problema, cara ... Fico feliz que você tenha adicionado, pois acho que é uma boa maneira de explicar. Eu apenas o adicionei como comentário, e não como resposta, já que você me venceu. : D
Patrick87 13/07/12

Na verdade, em termos do problema de parada, que volta e troca a fita ad infinitum parece ser o "problema real". Aqueles caminhantes vazios que você pode detectar.
Raphael

12

Uma máquina de Turing que calcula todas as casas decimais de π (ou qualquer outra fração sem terminação, em qualquer base) nunca pára, e pode ser feita para escrever em cada célula apenas um número finito de vezes. Obviamente, o fato de não haver transição para um estado de parada seria uma oferta inoperante, mas é pelo menos um exemplo natural.

f(n)={3n+1,if n is odd;n/2,if n is even,
fff(n)=n, ... que divergem assintoticamente para o infinito. Se existir alguma sequência deste último tipo, isso implicaria que a máquina de Turing que descrevi acima não seria repetida, pois a fita seria continuamente alterada para números cada vez maiores.

Eu gosto de brincar com os dígitos de pi. A TM pode parar sempre que o quadrado de qualquer dígito piiguais exatamente 7.
Leonid

@ Leonid: Você certamente poderia considerar uma máquina de Turing que aceita alguma entrada e pára em uma condição determinada por essa entrada. Você pode até fazer a especificação das condições sob as quais ele pára parte da entrada. E você pode fornecer uma entrada, como você descreve, definindo uma restrição que nunca é satisfeita.
Niel de Beaudrap 17/07/12

10

Considere qualquer máquina de Turing sem interrupção que nunca mova a cabeça de leitura / gravação para a esquerda.


Alguns deles ainda fazem loop. </nitpicking>
Raphael

5

Se isso fosse verdade, o problema da parada seria decidível. Você apenas gravaria cada par (fita, estado) visto ao executar a máquina de Turing, e a máquina parava (nesse caso, obviamente, para) ou você vê um par que você já viu antes, nesse caso a máquina não para.

Como o problema da parada é indecidível, isso não pode ser verdade. (Veja outros exemplos para exemplos contrários.)


O que essa resposta adiciona à resposta do templatetypedef ?
Raphael

I guess it doesn't. Sorry, I somehow missed that answer when I wrote mine.
RecursivelyIronic
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.