Generatore di numeri veramente casuale: Turing calcolabile?


39

Sto cercando una risposta definitiva al fatto che la generazione di numeri "veramente casuali" sia calcolabile o meno di Turing. Non so come esprimerlo esattamente. Questa domanda StackExchange su "algoritmi efficienti per la generazione casuale di numeri" si avvicina alla risposta alla mia domanda. Charles Stewart afferma nella sua risposta: "la [casualità di Martin-Löf] non può essere generata da una macchina". Ross Snider afferma che "qualsiasi processo deterministico (come Turing / Register Machines) non può produrre numeri casuali" filosofici "o" veri "." Esiste un'idea chiara e accettata di ciò che costituisce un generatore di numeri veramente casuale? E se è così, è noto che non può essere calcolato da una macchina di Turing?

Forse indicarmi la letteratura pertinente sarebbe sufficiente. Grazie per tutto l'aiuto che potete fornire!

Modificare. Grazie a Ian e Aaron per le risposte consapevoli! Sono relativamente non educato in questo settore e sono grato per l'assistenza. Se potessi estendere un po 'la domanda in questo addendum: è possibile che una TM con accesso a una pura fonte di casualità (un oracolo?), Possa calcolare una funzione che una TM classica non può?


1
Aiuta se si considera prima la definizione di "veramente casuale".
MS Dousti,

Risposte:


52

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 . sol=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:NNfnn

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σ


8
che bella risposta.
Suresh Venkat,

1
Sono molto grato della chiarezza della tua risposta dettagliata a questa domanda (per me!) Aggrovigliata. Grazie!
Joseph O'Rourke,

12

C'è (forse) una distinzione da fare tra "calcolabile di Turing" e "effettivamente calcolabile" per rispondere alla tua domanda. Se si definisce "processo casuale" come "un processo che non può essere previsto, indipendentemente dalle risorse disponibili" e si definisce "processo deterministico" come "processo prevedibile, dato l'input e l'accesso a (forse molte) risorse, "allora nessuna funzione calcolabile di Turing può essere casuale, perché se conoscessimo la macchina di Turing e la simulassimo, potremmo sempre prevedere il risultato del prossimo" esperimento "del processo.

In questo quadro, un test Martin-Lof può essere visto come un processo deterministico e la definizione di una sequenza casuale è precisamente una sequenza il cui comportamento non è previsto da alcun test Martin-Lof / processo calcolabile / deterministico di Turing.

Ciò, tuttavia, pone la domanda: "Una sequenza casuale è effettivamente calcolabile, nella vita reale?" C'è, infatti, un'industria qui. Ci sono CD pubblicati con miliardi di bit casuali (?) Che vengono utilizzati per eseguire simulazioni al computer di sistemi fisici, ecc. Questi CD garantiscono che le loro sequenze di bit superano un sacco di test Martin-Lof. Il libro The Drunkard's Walk: How Randomness Rules our our Lives fornisce una spiegazione pop-sci di questo problema, in modo più dettagliato.

Punto irrilevante: mi piace la tua rubrica. :-)


11

Intuitivamente, "casuale" significa "imprevedibile" e qualsiasi sequenza generata da una macchina di Turing può essere prevista eseguendo la macchina, quindi le macchine di Turing non possono produrre numeri "veramente casuali". Esistono numerose definizioni formali di sequenze casuali (la casualità ha davvero senso solo quando la lunghezza di una stringa va all'infinito), tutte sostanzialmente equivalenti. Forse il più naturale di questi è la casualità di Martin-Lof, il che significa che una sequenza supera tutti i possibili test statistici calcolabili per la stocastica, e Chaitin random, il che significa che tutte le sottosequenze iniziali sono incomprimibili (più specificamente, hanno un'elevata complessità di Kolmogorov). In entrambe queste definizioni è incomprensibile sia generare sequenze casuali che riconoscerle. Vedi il libro "Informazioni e casualità:


Link per prenotare qui: amazon.com/…
Suresh Venkat,

Grazie, Ian & Suresh, sto recuperando quel libro dalla nostra biblioteca!
Joseph O'Rourke,

Un altro grande libro è "Computabilità e casualità" di Nies.
Diego de Estrada,

11

Chiunque consideri metodi aritmetici per produrre cifre casuali è, ovviamente, in uno stato di peccato. Perché, come è stato sottolineato più volte, non esiste un numero casuale - ci sono solo metodi per produrre numeri casuali, e una procedura aritmetica rigorosa ovviamente non è un tale metodo. - John von Neumann


Ha! Grande citazione, Jeff! E con un punto sostanziale.
Joseph O'Rourke,

7

Sembra che nessuno abbia risposto al tuo addendum, quindi ci proverò:

Se potessi estendere un po 'la domanda in questo addendum: è possibile che una TM con accesso a una pura fonte di casualità (un oracolo?), Possa calcolare una funzione che una TM classica non può?

Proverò a rendere la domanda più precisa e quindi a rispondere. (La mia versione potrebbe non essere quella che avevi in ​​mente, quindi fammi sapere se non lo è.)

Abbiamo una TM deterministica con accesso a un generatore di numeri casuali. Questa TM ora calcola alcune funzioni (una funzione reale, cioè una mappa deterministica da uno spazio di input a uno spazio di output) facendo uso in qualche modo del generatore di numeri casuali.

Quindi la TM con accesso alla casualità può fare errori? In caso contrario, il DTM deve fornire la risposta corretta, indipendentemente dai bit casuali forniti. In questo caso i bit casuali non sono necessari, in quanto potresti semplicemente prendere la stringa casuale da 00000 ...

fio(X,r)fior


Lo trovo perspicace: "In caso contrario, il DTM deve fornire la risposta corretta, indipendentemente dai bit casuali forniti." Grazie!
Joseph O'Rourke,

In realtà non capisco. Sembra che tu stia suggerendo che P = ZPP o che un algoritmo randomizzato con errore zero (ad esempio un algoritmo di Las Vegas) debba essere deterministico?
Suresh Venkat,

Da un DTM con accesso all'oracolo che decide una lingua, ho ipotizzato che il DTM si fermasse dopo un periodo di tempo limitato. In questo caso, possiamo sbarazzarci dell'oracolo. Per errore zero, lo sostituiamo semplicemente con 0000 ... e per qualsiasi altro scopo si può forzare la forza su tutte le stringhe casuali di lunghezza finita. (Sono sicuro che qualcuno probabilmente ritiene che gli algoritmi di Las Vegas non siano realmente algoritmi poiché non terminano necessariamente.)
Robin Kothari,

5

Per quanto riguarda la tua "domanda di modifica": fa una grande differenza se stai chiedendo computabilità o complessità. Se ci sono limiti di complessità sulla TM, allora ottieni il cosiddetto modello a oracolo casuale . Se la TM può usare risorse arbitrariamente grandi ma finite, allora sei nel mondo della casualità relativa : ci sono gerarchie di casualità di oracoli, tanto quanto ci sono gradi di Turing. (Punto a margine: una delle (in) famose critiche di Koblitz e Menzes riguardava l'uso del modello casuale dell'oracolo, quindi la tua meta-domanda tocca i recenti dibattiti accademici.)


Per chiarire però: Joe voleva un oracolo casuale (che è essenzialmente una funzione di hash casuale) o semplicemente una fonte di casualità? queste non sono la stessa cosa, vero?
Suresh Venkat,

Grazie, Aaron, è utile menzionare le gerarchie dell'oracolo della casualità.
Joseph O'Rourke,

@Suresh: intendevo una fonte di casualità.
Joseph O'Rourke,

Probabilmente entrambi siete molto più avanti di me qui, ma stavo cercando di dire che la casualità deve essere definita in relazione a un "quadro di riferimento", cioè alle risorse disponibili per fare previsioni. Una "fonte di casualità" potrebbe essere casuale rispetto a una macchina Turing, ma non rispetto all'Halting Oracle. Sono d'accordo con la risposta di Robin Kothari; il mio punto era solo che una "pura fonte di casualità" sembra non esistere secondo le definizioni attuali, perché potremmo sempre diagonalizzare contro di essa e ottenere qualcosa di casuale.
Aaron Sterling,

5

Sto ancora cercando di capire la tua domanda modificata, in particolare i limiti che poni sulla TM. Quindi, mentre questa risposta potrebbe non arrivare esattamente a quello che vuoi, forse ti aiuterà a restringere un po 'le cose.

Sappiamo che esiste un risultato di impossibilità incondizionato per avvicinarsi in modo deterministico al volume di un corpo convesso (questo è un vecchio risultato di Bárány e Füredi ). Al contrario, possiamo ottenere un FPRAS per questo problema usando il campionamento. È questo un esempio della separazione che stai cercando?


Questo risultato è per algoritmi temporali polinomiali, giusto? Ho interpretato la domanda del PO come una sulla teoria della calcolabilità, non sulla teoria della complessità. Con ciò intendo che l'ho interpretato nel senso che "L'insieme dei problemi è risolto da una fonte di casualità DTM + maggiore di quelli risolti da un DTM?"
Robin Kothari,

questo è possibile. Da qui il mio tentativo di approfondire più in dettaglio. A livello di calcolabilità, tuttavia, una discrepanza per me invaliderebbe la tesi di Church-Turing.
Suresh Venkat,

Mi piace quell'esempio di volume! Anche se ho chiesto in modo specifico la teoria della calcolabilità, sono anche interessato alle differenze di complessità. Non vedo come questo potrebbe invalidare CT, perché le risposte precedenti hanno stabilito che una pura fonte di vera casualità non è calcolabile ...?
Joseph O'Rourke,

Penso che una volta formalizzato ciò che intendiamo per DTM con accesso a una fonte di casualità (con i suoi criteri di accettazione, probabilità di arresto, ecc.), Dovremmo essere in grado di dimostrare che questo modello calcola esattamente anche le lingue ricorsive.
Robin Kothari,

Vero (nel regno commutabile). Ma ora mi chiedo: supponiamo di costruire una stringa che il cui bit è il risultato dell'esecuzione del motore con una codifica di se stesso. Poter prevedere questa stringa corrisponderebbe a risolvere il problema di Halting, e questa stringa è casuale nel senso di Martin-Lof?
Suresh Venkat,
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.