Como a regra 110 Turing está completa?

19

Li a página da wikipedia da regra 110 nos autômatos celulares e sei mais ou menos como elas funcionam (um conjunto de regras decide onde desenhar o próximo 1 ou 0).

Acabei de ler que Turing está completo, mas não consigo nem imaginar como você 'programaria' na 'regra 110'?

Pureferret
fonte
Na verdade, é a regra 110, não a regra 101. A prova está descrita na página da Wikipedia, embora seja bastante óbvio como o texto faz a conexão com a prova.
@WolfgangBangerth obrigado por isso, eu o corrigi. Se a prova / maneira de programar está lá, não é óbvio o suficiente para eu encontrá-la, desculpe.
Pureferret 22/09/12
1
Também me ocorreu a mesma pergunta, se existe um script para converter um programa simples nesse autômato de alguma forma e, em seguida, algum "simulador" para executá-lo.
2
excelente pergunta. os detalhes são complexos e estão contidos em artigos científicos. veja tcs.SE, condições iniciais da regra 110 para um esboço e algumas refs. basicamente, existe uma maneira de converter ou compilar uma TM em um "sistema de tags" (conhecido por TM completo) e compilar um "sistema de tags" na regra 110. seria "legal" se implementações reais fossem construídas para pessoas para experimentar (e certamente levar a novas descobertas / descobertas) mas, infelizmente, nenhuma parece existir, ou os autores não publicam seu código.
vzn
1
intimamente relacionados, estão os autômatos celulares 2D e podem ser estudados para algumas intuições no caso 1d. é conhecido desde os anos 70 ou mais devido à prova de Conway de que "o jogo da vida" é Turing completo. veja, por exemplo, o simulador Paul Rendell TM em Game of Life para uma versão moderna / gráfica.
vzn

Respostas:

11

Universalidade é uma noção um tanto informal. O que isso significa aproximadamente é que, para cada função computável existe um "programa" no modelo, de modo que "executar" em qualquer entrada sempre "pára" e "gera" a resposta correta. (Observe que as máquinas de Turing não aparecem aqui: elas são apenas um exemplo de modelo de computação universal.)P P xfPPx

As palavras citadas são aquelas que precisam ser definidas. Para máquinas de Turing:

  • Um programa é especificado como uma lista de estados, um alfabeto de fita, um estado inicial, estados finais e transições.
  • Executar uma máquina de Turing em uma entrada significa que inicializamos a fita com uma codificação de e executamos a máquina nessa fita de acordo com as regras usuais.x x TT xxT
  • A Máquina de Turing pára se atingir um estado final. (Existem algumas variantes aqui.)
  • O que a máquina de Turing produz (se parar) é o conteúdo da fita.

A regra 110, como modelo de computação, precisa ser definida formalmente da mesma maneira. Uma definição é razoável se for possível simular computacionalmente o modelo de computação, no seguinte sentido: existe uma função computável tal que para todo programa e entrada (ambos codificados como números naturais), pára se pára em , e se parar, sua saída é idêntica à saída de em .P x S ( P , x ) P x S ( p , x ) P xSPxS(P,x)PxS(p,x)Px

Se você estiver curioso sobre a configuração específica da Regra 110 como um sistema de computação, sugiro que você dê uma olhada no artigo de Matthew Cook, que prova a universalidade da Regra 110 (ou melhor, de um sistema de computação construído em torno da Regra 110).

Quanto a outras regras, como a Regra 30 e a Regra 90, não sabemos que elas não são universais. Pode haver sistemas de computação convincentes construídos em torno deles que sejam universais, mas simplesmente não temos conhecimento de nenhum.

Yuval Filmus
fonte
3
Tudo verdade, mas a regra 110 não tem como parar. Ela só pode calcular as coisas, mas não parar.
Pavel
@Pavel Não é necessário parar de ser Turing-Complete
MilkyWay90
8

Da prova de Mateus:

A abordagem adotada aqui não é projetar um novo autômato celular, mas sim o mais simples que exibe naturalmente um comportamento complexo, e ver se podemos encontrar nesse comportamento complexo uma maneira de fazê-lo fazer o que queremos. Não nos preocuparemos diretamente com a tabela de pesquisa fornecida acima, mas, em vez disso, examinaremos o comportamento que é naturalmente exibido pela ação do autômato ao longo do tempo.

O autor começa por provar que um "sistema de tags" que remove 2 símbolos em cada etapa é universal, compilando um programa de máquina de turing de 2 estados. Depois disso, ele prova que um sistema de planador pode realmente implementar um sistema de tags. É um processo passo a passo. Em seguida, ele estuda o tempo espacial do CA-110 para encontrar os planadores e associá-los ao sistema de planadores corretamente.

Agora, para sua pergunta: como você 'programaria' na 'regra 110'?

  1. Procure a máquina de turing de 2 estados mais simples e encontre as fitas das operações básicas OR, AND, XOR, NOT .

  2. Compile-os no sistema de tags.

  3. Compile a implementação do sistema de tags na implementação do planador.

  4. Adapte-o aos planadores CA-110 corretamente e você terá as operações básicas em um autômato celular.

Os passos 1 a 4 são realizados apenas uma vez. A partir daí, calcular reduz a soma dos números usando portas lógicas.1+1=2

Uma nota à parte. Planadores são estruturas muito especiais. As operações serão vistas como partículas se movendo e colidindo (os planadores), gerando uma saída diferente dependendo de como esses planadores começam ou colidem.

labotsirc
fonte
Então, dois glidders podem 'codificar' um + e quando colidem eu recebo 2?
Pureferret 28/09/12
3
mais precisamente, vários pares de planadores codificariam um '+' assumindo que um par de planadores pode codificar um OR, AND, XOR ou NOT. Considere também que os números provavelmente serão representados como uma sequência de bits e a soma será realizada usando portas lógicas em cada par de bits.
labotsirc
3
ressalva, há alguma controvérsia sobre a prova de completude da regra 110 TM na comunidade do CS por vários motivos. uma aparentemente é que a condição de entrada na CA requer padrões infinitamente periódicos (mas repetitivos).
vzn
1
eu concordo com você vzn sobre a controvérsia. Pessoalmente, não sei o que pensar em termos de rejeição da solução teórica por meios formais ou de aceitar o CA-110 como um superconjunto que funciona como uma máquina de turing (o fato de que o CA é um espaço de computação que funciona como sistemas dinâmicos e o topo desse trabalho em paralelo me faz pensar se eles representam um universo sintético em andamento).
labotsirc
Não sou fã de ignorar as limitações reais de espaço e tempo. A Wikipedia cita a P-completude da regra 110 do autômato celular e explica que Neary e Woods evitaram uma sobrecarga de tempo exponencial ao evitar o uso de sistemas de duas marcas. No entanto, Neary e Woods, no final do mesmo ano (2006), mostraram que mesmo sistemas de 2 marcadores não têm um tempo exponencial para simular máquinas de Turing.
Thomas Klimpel