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'?


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.


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.


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
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.