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.