RealityModels

Teoria: probabilità algoritmica e censimento delle macchine

La simulazione turing-census enumera le piccole macchine di Turing, esegue ciascuna su un nastro vuoto e conta gli output di quelle che si fermano. Questo documento raccoglie le definizioni e i risultati pubblicati su cui il censimento poggia, nella notazione di js/model.js, e li separa dalle scelte proprie del simulatore. Uso, parametri e tabelle di riferimento: algorithmic-probability-simulation-guide.it.md; versione inglese: algorithmic-probability-theory.en.md.

1. Dal regresso al contare

Il glossario si chiude su un punto aperto: l'informazione algoritmica misura una stringa rispetto a una macchina universale, e la scelta di quella macchina resta a sua volta non spiegata. La mossa di Solomonoff fu smettere di scegliere: invece di un programma, pesare tutti i programmi che producono la stringa. Il censimento fa lo stesso passo un piano più in basso. Invece di una macchina universale con una codifica ingegnosa, prende ogni macchina di taglia limitata, senza eccezioni, e conta. L'ordine che compare nel risultato non è stato messo a mano: è una proprietà dello spazio delle computazioni. È il meccanismo dietro la "law without law" di Wheeler come la formalizza Müller [2020]: se ciò che esiste è l'insieme delle computazioni, la probabilità di un'osservazione è la sua probabilità algoritmica, e la regolarità vince per puro peso numerico.

2. Probabilità algoritmica

2.1 La distribuzione universale

Si fissa una macchina universale U i cui programmi sono stringhe binarie autodelimitanti. La probabilità algoritmica di una stringa x è

m(x) = Σ 2^(−|p|)   sui programmi p con U(p) = x

la probabilità che U produca x quando il nastro dei programmi è riempito a lanci di moneta [Solomonoff 1964; Levin 1974]. m è una semimisura, non una misura: la massa dei programmi che non si fermano va persa, e il problema della fermata rende m non calcolabile, solo approssimabile dal basso. Levin dimostrò che è universale: m domina ogni semimisura semicalcolabile a meno di una costante moltiplicativa, quindi nessun modo calcolabile di assegnare probabilità alle stringhe può batterla per più di un fattore costante.

2.2 Il teorema di codifica

Levin [1974] e Chaitin [1975] mostrarono che le due quantità centrali della teoria coincidono a meno di una costante additiva:

K(x) = −log₂ m(x) + O(1)

dove K è la complessità di Kolmogorov con prefissi, la lunghezza del programma più corto per x. Probabile e semplice sono la stessa cosa: una stringa è probabile esattamente nella misura in cui è comprimibile. Per questo Kirchherr, Li e Vitányi [1997] chiamano m "la miracolosa distribuzione universale"; Li e Vitányi [2008] è il riferimento standard.

2.3 L'invarianza e il suo limite onesto

K e m dipendono da U solo attraverso costanti additive e moltiplicative (teorema di invarianza [Solomonoff 1964; Kolmogorov 1965]). Per stringhe lunghe le costanti svaniscono; per le stringhe corte che una simulazione può raggiungere, dominano. Ogni tabella concreta di m(x) è quindi relativa a una scelta dichiarata di macchine. Il censimento non sfugge a questo; rende la scelta esplicita e uniforme (sezione 6).

3. Un censimento invece di una macchina universale

Delahaye e Zenil [2012] proposero il Coding Theorem Method: approssimare m non con una macchina universale ma con l'intera famiglia uniforme delle macchine piccole. Per lo spazio (n, 2), n stati e 2 simboli nel formalismo di Radó, si definisce

D(n)(x) = (macchine che si fermano sul nastro vuoto con output x) / (macchine che si fermano)

e la complessità stimata K̃(x) = −log₂ D(n)(x), il numero che il tooltip della simulazione mostra. Soler-Toscano, Zenil, Delahaye e Gauvrit [2014] hanno calcolato D(5) da 26 mila miliardi di macchine e trovato la classifica stabile al variare di n e coerente con la complessità misurata per compressione dove entrambe si applicano. Il punto non è che i singoli valori siano canonici, non lo sono, ma che una scelta dall'aria arbitraria (una macchina) è sostituita da una simmetrica (tutte le macchine di una taglia), che lascia molto meno spazio per contrabbandare struttura.

4. Il limite busy beaver

Radó [1962] definì S(n) come il massimo numero di passi che una macchina a n stati e 2 simboli può compiere sul nastro vuoto e fermarsi comunque. I valori noti:

nS(n)Dimostrazione
26Radó 1962
321Lin e Radó 1965
4107Brady 1983
547.176.870campionessa di Marxen e Buntrock 1990; massimalità provata dalla collaborazione bbchallenge, 2024, verificata in Coq

S cresce più in fretta di ogni funzione calcolabile, ed è per questo che ogni valore è un'impresa a sé. Per il censimento il teorema conta in una direzione sola: una macchina che sul nastro vuoto non si è fermata entro S(n) passi non si fermerà mai. Tagliare le corse a S(n) decide quindi l'arresto in modo esatto. Le tabelle (2, 2) e (3, 2) della guida sono enumerazioni complete senza alcun caso indeciso, e nello spazio (4, 2) campionato ogni macchina estratta è comunque classificata esattamente; solo il campionamento è statistico.

5. Il modello nel simulatore

js/model.js codifica un'istruzione come una cifra d in 0 .. 4(n+1)−1: il bit 0 è il simbolo scritto, il bit 1 il movimento (destra o sinistra), d >> 2 lo stato successivo, con il valore n che significa arresto. L'istruzione di arresto scrive e si muove come le altre, come nel formalismo di Radó. Una macchina è il vettore delle sue 2n cifre, una per coppia (stato, simbolo), quindi lo spazio ha (4(n+1))^(2n) macchine: 20.736 per n = 2, 16.777.216 per n = 3, 25.600.000.000 per n = 4. I primi due spazi sono enumerati con un contachilometri; il terzo è campionato con un piccolo generatore con seme, così una corsa è riproducibile.

L'output di una macchina che si ferma è il segmento percorso: il contenuto, al momento dell'arresto, delle celle lette almeno una volta. Una macchina la cui prima istruzione si arresta produce una sola cella. Registrare solo le celle scritte, o solo il segmento tra gli 1 più esterni, sono convenzioni altrettanto difendibili che danno tabelle diverse; i numeri della guida appartengono a questa.

6. Che cosa mostra il censimento

Le tabelle complete stanno nella guida; questi sono i fatti strutturali che le spiegano.

7. Che cosa il censimento non dice

Bibliografia

Probabilità e complessità algoritmica

Busy beaver

Censimenti di macchine piccole

Emergenza delle leggi