Mi unirò alla discussione abbastanza tardi, ma cercherò di rispondere a diverse domande poste in precedenza.
In primo luogo, come osservato da Aaron Sterling, è importante decidere innanzitutto cosa intendiamo per numeri "veramente casuali", e specialmente se stiamo osservando le cose da una prospettiva computazionale o computazionale.
Consentitemi tuttavia di sostenere che nella teoria della complessità, le persone sono principalmente interessate alla pseudo- casualità e ai generatori di pseudo- casuali, cioè funzioni da stringhe a stringhe tali che la distribuzione delle sequenze di output non può essere distinta dalla distribuzione uniforme da parte di un processo efficiente (laddove si possono prendere in considerazione diversi significati di efficiente , ad es. calcolo del tempo polifunzionale, circuiti di dimensioni polinomiali ecc.) È un'area di ricerca bellissima e molto attiva, ma penso che la maggior parte delle persone concorderebbe sul fatto che gli oggetti che studia non sono veramente casuali, è sufficiente che appaiano casuali (da qui il termine "pseudo").
Nella teoria della computabilità, è emerso un consenso su quella che dovrebbe essere una buona nozione di "casualità reale", ed è in effetti la nozione di casualità di Martin-Löf che ha prevalso (altre sono state proposte e sono interessanti da studiare ma non mettono a nudo tutto le belle proprietà della casualità di Martin-Löf). Per semplificare le cose, considereremo la casualità per infinite sequenze binarie (altri oggetti come funzioni da stringhe a stringhe possono essere facilmente codificati da tale sequenza).
Una sequenza binaria infinita è casuale di Martin-Löf se nessun processo calcolabile (anche se permettiamo che questo processo sia calcolabile in un tempo esponenziale triplo o superiore) è in grado di rilevare un difetto di casualità.α
(1) Cosa intendiamo per "difetto di casualità"? Quella parte è facile: si tratta di un insieme di misura 0, vale a dire una proprietà che quasi tutte le sequenze non hanno (qui si parla di Lebesgue misurare vale a dire la misura in cui ogni bit ha un probabilità di essere 0 in modo indipendente da tutte le altre bit). Un esempio di tale difetto è "avere asintoticamente 1/3 di zero e 2/3 di uno", che viola la legge di grandi numeri. Un altro esempio è "per ogni n, i primi 2n bit di α sono perfettamente distribuiti (tanti zero come quelli)". In questo caso la legge dei grandi numeri è satura, ma non il teorema limite centrale. Ecc. Ecc.1/20α
(2) Come può un processo calcolabile verificare che una sequenza non appartenga a un particolare insieme di misure 0? In altre parole, quali serie di misure 0 possono essere descritte in modo computabile? Questo è esattamente ciò di cui parlano i test Martin-Löf. Un test Martin-Löf è una procedura calcolabile che, dato un input k, calcolabile (ovvero, tramite una macchina di Turing con input ) genera una sequenza di stringhe w k , 0 , w k , 1 , ... tale che l'insieme U k di sequenze infinite che iniziano con una di quelle w k , ho misura al massimo 2 - kkwk,0wk , 1UKwk , io2- k(se ti piace la topologia, nota che si tratta di un set aperto nella topologia del prodotto per l'insieme di sequenze binarie infinite). Quindi l'insieme ha la misura 0 e viene chiamato nullset Martin-Löf . Ora possiamo definire la casualità di Martin-Löf affermando che una sequenza binaria infinita α è casuale di Martin-Löf se non appartiene a nessun nullset di Martin-Löf . G = ⋂KUK0α
Questa definizione può sembrare tecnica ma è ampiamente accettata come quella giusta per diversi motivi:
- è abbastanza efficace, ovvero la sua definizione implica processi calcolabili
- è abbastanza forte: qualsiasi proprietà "quasi sicura" che potresti trovare in un manuale di teoria della probabilità (legge di grandi numeri, legge del logaritmo iterato, ecc.) può essere testata da un test di Martin-Löf (anche se a volte è difficile da dimostrare)
- è stato proposto in modo indipendente da diverse persone che usano definizioni diverse (in particolare la definizione di Levin-Chaitin usando la complessità di Kolmogorov); e il fatto che tutti conducano allo stesso concetto è un suggerimento che dovrebbe essere la nozione giusta (un po 'come la nozione di funzione calcolabile, che può essere definita tramite macchine di Turing, funzioni ricorsive, lambda-calcolo, ecc.)
- la teoria matematica dietro è molto bella! vedere i tre libri eccellenti Introduzione alla complessità di Kolmogorov e alle sue applicazioni (Li e Vitanyi), casualità algoritmica e complessità (Downey e Hirschfeldt) Computabilità e casualità (Nies).
Che aspetto ha una sequenza casuale di Martin-Löf? Bene, prendi una moneta perfettamente bilanciata e inizia a lanciarla. Ad ogni lancio, scrivi uno 0 per le teste e un 1 per le code. Continua fino alla fine dei tempi. Ecco come appare una sequenza di Martin-Löf :-)
Ora torniamo alla domanda iniziale: esiste un modo calcolabile per generare una sequenza casuale di Martin-Löf? Intuitivamente la risposta dovrebbe essere NO , perché se possiamo usare un processo calcolabile per generare una sequenza , allora possiamo certamente usare un processo calcolabile per descrivere il singleton { α }, quindi α non è casuale. Formalmente questo viene fatto come segue. Supponiamo che una sequenza α sia calcolabile. Considera il seguente test di Martin-Löf: per tutti i k , basta emettere il prefisso a k di α di lunghezza k e nient'altro. Questo ha una misura al massimo (in effetti, esattamente) 2 - kααααKun'KαK2- ke l'intersezione degli insiemi come nella definizione è esattamente { αUKα }. QED !!
In effetti una sequenza casuale di Martin-Löf è incomprimibile in un senso molto più forte: se un certo calcolo dell'oracolo con l'oracolo β (che è esso stesso una sequenza binaria infinita) può calcolare α , allora per tutti i bit n , n - O ( 1 ) di β sono necessari per calcolare i primi n bit di α (questa è in effetti una caratterizzazione della casualità di Martin-Löf, che purtroppo viene raramente dichiarata come in letteratura).αβαnn - O ( 1 )βnα
Ok, ora la parte "modifica" della domanda di Joseph: è possibile che una TM con accesso a una pura fonte di casualità (un oracolo?), Possa calcolare una funzione che una TM classica non può?
Dal punto di vista della calcolabilità, la risposta è "sì e no". Se ti viene dato l'accesso a una fonte casuale come un oracolo (dove l'uscita viene presentata come una sequenza binaria infinita), con probabilità 1 otterrai un oracolo casuale di Martin-Löf, e come abbiamo visto in precedenza Martin-Löf implica che non calcolabile, quindi è sufficiente emettere l'oracolo stesso! Oppure, se vuoi una funzione , puoi considerare la funzione f che per tutti n ti dice quanti zeri ci sono tra i primi n bit del tuo oracolo. Se l'oracolo è casuale di Martin-Löf, questa funzione non sarà calcolabile.f: N → Nfnn
Ma ovviamente potresti obiettare che questo è un imbroglio: in effetti, per un diverso oracolo potremmo avere una funzione diversa, quindi c'è un problema di non riproducibilità. Quindi un altro modo di comprendere la tua domanda è il seguente: esiste una funzione che non è calcolabile, ma che può essere "calcolata con probabilità positiva", nel senso che esiste una macchina di Turing con accesso a un oracolo casuale che, con probabilità positiva (sopra l'oracolo), calcola f . La risposta è no, a causa di un teorema di Sacks la cui dimostrazione è abbastanza semplice. In realtà, Robin Kothari ha risposto principalmente: se la probabilità che la TM sia corretta è maggiore di 1/2, allora si possono cercare tutti n tutti i possibili calcoli dell'oracolo con input nffnne trovare l'output che ottiene il "voto di maggioranza", cioè che è prodotto da un insieme di oracoli di misura più di 1/2 (ciò può essere fatto efficacemente). L'argomento si estende anche a probabilità minori: supponiamo che le uscite TM con probabilità ϵ > 0 . Secondo il teorema di densità di Lebesgue, esiste una stringa finita σ tale che se fissiamo i primi bit dell'oracolo in modo che siano esattamente σ , e quindi prendiamo gli altri bit a caso, quindi calcoliamo f con probabilità almeno 0,99. Prendendo tale σ , possiamo applicare nuovamente l'argomento sopra.fϵ > 0σσfσ