Come viene completata la regola 110 Turing?


19

Ho letto la pagina di Wikipedia per la regola 110 negli automi cellulari e so più o meno come funzionano (un insieme di regole decide dove disegnare il prossimo 1 o 0).

Ho appena letto che Turing è completo, ma non riesco nemmeno a capire come si "programmare" nella "regola 110"?


In realtà è la regola 110, non la regola 101. La dimostrazione è delineata sulla pagina di Wikipedia anche se è del tutto evidente come il testo rende il collegamento alla dimostrazione.

@ WolfgangBangerth grazie per quello, l'ho risolto. Se la prova / il modo di programmare è lì dentro non è abbastanza ovvio per me individuarlo, mi dispiace.
Pureferret,

1
La stessa domanda si è posta anche a me, se esiste uno script per convertire in qualche modo un semplice programma in questi automi, e poi qualche "simulatore" per eseguirlo.

2
domanda eccellente. i dettagli sono complessi e contenuti in articoli scientifici. vedi tcs.SE, condizioni iniziali per la regola 110 per uno schizzo e alcuni riferimenti. fondamentalmente esiste un modo per convertire o compilare una TM in un "sistema di tag" (noto come TM completo) e quindi compilare un "sistema di tag" nella regola 110. sarebbe "fantastico" se le implementazioni effettive fossero state costruite per ppl per sperimentare (e sicuramente condurre a nuove intuizioni / scoperte) ma sfortunatamente, nessuno sembra esistere, o gli autori non pubblicano il loro codice.
vzn,

1
strettamente correlati sono gli automi cellulari 2d e possono essere studiati per alcune intuizioni nel caso 1d. è noto dagli anni '70 o giù di lì a causa delle prove di Conway che "il gioco della vita" è Turing completo. vedi ad esempio il simulatore Paul Rendell TM in Game of Life per una versione moderna / grafica.
vzn,

Risposte:


11

L'universalità è una nozione in qualche modo informale. Ciò che significa approssimativamente è che per ogni funzione calcolabile c'è un "programma" nel modello in modo che "in esecuzione" su qualsiasi input "fermi" sempre e "emetta" la risposta corretta. (Nota che le macchine di Turing non fanno la loro comparsa qui: sono solo un esempio di un modello di calcolo universale.)P P xfPPx

Le parole tra virgolette sono quelle che devono essere definite. Per le macchine di Turing:

  • Un programma è specificato come un elenco di stati, un alfabeto nastro, uno stato iniziale, stati finali e transizioni.
  • L'esecuzione di una macchina di Turing su un input significa che inizializziamo il nastro con una codifica di ed eseguiamo la macchina su questo nastro secondo le normali regole.x x TT xxT
  • Una macchina di Turing si ferma se raggiunge uno stato finale. (Ci sono alcune varianti qui.)
  • Ciò che la macchina di Turing produce (se si ferma) è il contenuto del nastro.

La regola 110, come modello di calcolo, deve essere definita formalmente allo stesso modo. Una definizione è ragionevole se si può simulare in modo computabile il modello di calcolo, nel senso seguente: esiste una funzione calcolabile tale che per ogni programma e input (entrambi codificati come numeri naturali), interrompe sef si ferma su , e se ferma allora il suo output è identico al risultato di su .P x S ( P , x ) P x S ( p , x ) P xSPxS(P,x)PxS(p,x)Px

Se sei curioso di sapere quale sia la particolare impostazione della Regola 110 come sistema informatico, ti suggerisco di dare un'occhiata al documento di Matthew Cook che dimostra l'universalità della Regola 110 (o meglio, di un sistema informatico costruito attorno alla Regola 110).

Per quanto riguarda le altre regole, come la regola 30 e la regola 90, non sappiamo che non sono universali. Potrebbero esserci sistemi di elaborazione convincenti costruiti attorno a loro che è universale, ma non ne siamo a conoscenza.


3
Tutto vero, ma la regola 110 non ha un modo di fermarsi. Può solo calcolare le cose, ma non fermarsi.
Pavel,

@Pavel Non è necessario smettere di essere Turing-Complete
MilkyWay90

8

Dalla prova di Matteo:

L'approccio adottato qui non è quello di progettare un nuovo automa cellulare, ma di prendere quello più semplice che mostri naturalmente un comportamento complesso e vedere se possiamo trovare in quel comportamento complesso un modo per farlo fare ciò che vogliamo. Non ci occuperemo direttamente della tabella di ricerca sopra riportata, ma esamineremo invece il comportamento che è naturalmente mostrato dall'azione dell'automa nel tempo.

L'autore inizia innanzitutto dimostrando che un "sistema di tag" che rimuove 2 simboli ad ogni passaggio è universale compilando un programma di macchine da presa a 2 stati. Successivamente, dimostra che un sistema di aliante può effettivamente implementare un sistema di tag. È un processo graduale. Quindi, studia il tempo spaziale di CA-110 per trovare gli alianti e associarli correttamente al sistema di alianti.

Ora, per la tua domanda: come "programmare" nella "regola 110"?

  1. Cerca la più semplice turing machine a 2 stati e trova i nastri delle operazioni di base OR, AND, XOR, NOT .

  2. Compilarli nel sistema di tag.

  3. Compilare l'implementazione del sistema di tag nell'implementazione dell'aliante.

  4. Adattalo correttamente agli alianti CA-110 e avrai le operazioni di base in un automa cellulare.

I passaggi da 1 a 4 vengono eseguiti una sola volta. Da lì, il calcolo riduce alla somma dei numeri usando le porte logiche.1+1=2

Una nota a parte. Gli alianti sono strutture molto speciali. Le operazioni saranno viste come particelle che si muovono e si scontrano (gli alianti), generando output diversi a seconda di come questi alianti iniziano o si scontrano.


Quindi due glidder potrebbero "codificare" un + e quando si scontrano ottengo 2?
Pureferret,

3
più precisamente, più coppie di alianti codificherebbero un '+' supponendo che una coppia di alianti possa codificare un OR, AND, XOR o NOT. Considera anche che i numeri saranno probabilmente rappresentati come una sequenza di bit e la somma sarà eseguita usando porte logiche su ciascuna coppia di bit.
labotsirc,

3
un avvertimento, ci sono alcune controversie sulla prova di completezza della norma 110 TM nella comunità CS per vari motivi. uno apparentemente è che la condizione di input sulla CA richiede schemi infinitamente periodici (ma ripetitivi).
vzn,

1
sono d'accordo con te vzn sulla controversia. Personalmente non so cosa pensare in termini di rifiuto della soluzione teorica con mezzi formali o di accettare CA-110 come un superset che sembra funzionare come una macchina da presa (il fatto che CA sono spazi di calcolo che funzionano come sistemi dinamici e su in cima a quel lavoro in parallelo mi chiedo se rappresentano un universo sintetico in corso).
labotsirc,

Non sono un fan di ignorare i vincoli di spazio e tempo reali. Wikipedia cita la completezza di P dell'automa cellulare Regola 110 e spiega che Neary e Woods hanno evitato un sovraccarico esponenziale del tempo evitando l'uso di sistemi a 2 tag. Tuttavia, Neary e Woods più tardi nello stesso anno (2006) hanno dimostrato che anche i sistemi a 2 tag non hanno un sovraccarico esponenziale di tempo per la simulazione delle macchine di Turing.
Thomas Klimpel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.