Random number generators

Похожие документы
PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Il concetto di valore medio in generale

Dimensione di uno Spazio vettoriale

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

SPC e distribuzione normale con Access

Statistica. Lezione 6

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Generatori di numeri casuali

13. Campi vettoriali

Statistica inferenziale

La distribuzione Normale. La distribuzione Normale

Elementi di Psicometria con Laboratorio di SPSS 1

Un gioco con tre dadi

LE FUNZIONI A DUE VARIABILI

Programmazione dinamica

STATISTICA IX lezione

4. Operazioni elementari per righe e colonne

e-dva - eni-depth Velocity Analysis

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI

Calcolo del Valore Attuale Netto (VAN)

Regressione Logistica: un Modello per Variabili Risposta Categoriali

Calcolo delle probabilità

E naturale chiedersi alcune cose sulla media campionaria x n

Esercizio 1: trading on-line

OSSERVAZIONI TEORICHE Lezione n. 4

Codifiche a lunghezza variabile

Esempi di algoritmi. Lezione III

L'impulso di una forza che varia nel tempo

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Probabilità discreta

1. PRIME PROPRIETÀ 2

Capitolo 13: L offerta dell impresa e il surplus del produttore

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013

Onestà di un dado. Relazione sperimentale

Slide Cerbara parte1 5. Le distribuzioni teoriche

LA MOLTIPLICAZIONE IN CLASSE SECONDA

Esercitazione #5 di Statistica. Test ed Intervalli di Confidenza (per una popolazione)

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Strutturazione logica dei dati: i file

Test statistici di verifica di ipotesi

COEFFICIENTI BINOMIALI

1. Distribuzioni campionarie

4 3 4 = 4 x x x 10 0 aaa

risulta (x) = 1 se x < 0.

PROGRAMMA SVOLTO NELLA SESSIONE N.

Introduzione all analisi dei segnali digitali.

LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO?

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

Prof.ssa Paola Vicard

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

1. Scopo dell esperienza.

La misura degli angoli

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Automazione Industriale (scheduling+mms) scheduling+mms.

Capitolo 2. Operazione di limite

Laboratorio di Pedagogia Sperimentale. Indice

Capitolo 25: Lo scambio nel mercato delle assicurazioni

L Analisi della Varianza ANOVA (ANalysis Of VAriance)

La f(x) dovrà rimanere all interno di questo intorno quando la x è all interno di un intorno di x 0, cioè I(x 0 ), cioè:

Fasi di creazione di un programma

Corso di Informatica

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

(concetto classico di probabilità)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Esercitazione n.1 (v.c. Binomiale, Poisson, Normale)

Intorni Fissato un punto sull' asse reale, si definisce intorno del punto, un intervallo aperto contenente e tutto contenuto in

Intelligenza Artificiale

Analisi e diagramma di Pareto

Consideriamo due polinomi

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Appunti sulla Macchina di Turing. Macchina di Turing

Elementi di Psicometria con Laboratorio di SPSS 1

Viene lanciata una moneta. Se esce testa vinco 100 euro, se esce croce non vinco niente. Quale è il valore della mia vincita?

Matematica generale CTF

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

matematica probabilmente

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

Plate Locator Riconoscimento Automatico di Targhe

2. Leggi finanziarie di capitalizzazione

LINGUAGGI DI PROGRAMMAZIONE

Osservazioni sulla continuità per le funzioni reali di variabile reale

LEZIONE 3. Ing. Andrea Ghedi AA 2009/2010. Ing. Andrea Ghedi AA 2009/2010

Facoltà di Psicologia Università di Padova Anno Accademico

Capitolo 12 La regressione lineare semplice

Metodi statistici per le ricerche di mercato

Pertanto la formula per una prima approssimazione del tasso di rendimento a scadenza fornisce

Analisi dei residui. Test Esatto di Fisher. Differenza fra proporzioni

1 Serie di Taylor di una funzione

Invio SMS. DM Board ICS Invio SMS

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Relazioni statistiche: regressione e correlazione

Corso di laurea in Scienze Motorie Corso di Statistica Docente: Dott.ssa Immacolata Scancarello Lezione 14: Analisi della varianza (ANOVA)

Транскрипт:

Statistica computazionale Random number generators www.cash-cow.it Distribuito sotto licenza Creative Common, Share Alike Attribution

2 Indice I. Introduzione II. Processi fisici per la creazione di numeri casuali III. RNG e numeri pseudo-casuali IV. Proprietà dei Random Number Generators V. Caratteristiche dei Random Number Generators VI. Generatori lineari congruenziali VII. Mersenne Twister VIII. Correlazione IX. Test di uniformità X. Bibliografia e riferimenti Web

3 I - Introduzione La generazione dei numeri casuali è troppo importante per essere lasciata al caso (Robert R. Coveyou) Il concetto di variabile casuale è fondamentale in campi come lo studio di probabilità e la statistica. In esperienze precedenti, ci siamo spesso trovati a dover utilizzare variabili casuali all interno di modelli di simulazione. Tali modelli, creati proprio per indagare le proprietà fondamentali che regolano il comportamento dei fenomeni oggetto di studio, devono poter astrarre dal singolo caso. Ci si è quindi ritrovati non di rado ad affidare al caso il valore di parametri e variabili che, ad una prima analisi, potevano apparire fondamentali ai fini della simulazione. Quando questi modelli vengono implementati al calcolatore, ecco nascere una affascinante quanto problematica questione: come generare numeri casuali partendo da algoritmi deterministici? E proprio da questo stridente contrasto che nasce lo studio dei Random Number Generators (RNG), ovvero lo studio di algoritmi deterministici in grado di generare sequenze di numeri casuali. Anche se non ci siamo mai addentrati nel dettaglio, in precedenti progetti ci siamo trovati spesso ad utilizzare algoritmi per la generazione di numeri random: è il caso della funzione Rand in Matlab e dell omonima funzione Rand(); in ANSI C. Entrando un po più nel dettaglio, ma restando ancorati ad una definizione intuitiva, possiamo dire che un Random Number Generator è un algoritmo, ovvero un insieme discreto e finito di istruzioni, in grado di generare una sequenza di numeri che, ad una prima osservazione, dovrebbero apparire come casuale. Restando all interno di una definizione intuitiva di RNG, possiamo dire che, osservando una serie di output forniti dall algoritmo, non dovremmo essere in grado di trarre sufficienti informazioni per prevedere lo stato futuro. Nelle prossime pagine analizzeremo i metodi principali utilizzati per la

4 generazione di numeri casuali: dai dispositivi fisici agli algoritmi. Studieremo le caratteristiche principali che deve possedere un buon RNG ed i metodi per valutare la qualità delle sequenze di numeri generate da tali algoritmi.

5 II - Processi fisici per la creazione di numeri casuali Numeri casali possono scaturire dall osservazione di processi fisici. I cosiddetti Generatori hardware di numeri casuali sono dispositivi che, sfruttando fenomeni fisici microscopici, sono in grado di restituire sequenze di numeri casuali. E il caso di dispositivi per l analisi del rumore termico in semiconduttori o del decadimento atomico. Tra i generatori hardware di numeri casuali più vicini all esperienza quotidiana possiamo citare i dadi o la roulette, tutti dispositivi che restituiscono risultati imprevedibili e non correlati se consideriamo una sequenza di lanci. I problemi principali di questi dispositivi risiedono nell incapacità di riprodurre più di una volta una stessa sequenza di numeri, nel costo e nella lentezza, questi ultimi 2 entrambi superiori rispetto alla controparte software. Questi dispositivi trovano comunque applicazione nella pratica: sono spesso utilizzati come fonti esterne di entropia per software RNG. Come vedremo in seguito, i software RNG necessitano in input un seme, vale a dire il valore dello stato iniziale. Tale valore è determinato in maniera aleatoria ad ogni inizializzazione dell algoritmo. Per assicurare la massima casualità, spesso si utilizzano dispositivi hardware per la generazione del seme. La loro importanza è tanto maggiore quanto maggiore è la frequenza di re-seeding, ovvero di reinizializzazione dell algoritmo.

6 III - RNG e numeri pseudo casuali Come accennato in precedenza, la ricerca ruota intorno ai RNG, ovvero intorno a quei software in grado di generare una sequenza di numeri avente le stesse proprietà statistiche di una sequenza generata da un processo casuale, ad esempio da uno dei generatori hardware sopra citati. Per correttezza, dal momento che i numeri generati da un algoritmo deterministico non possono essere definiti propriamente casuali, in questi casi si parla di numeri Pseudo casuali. Una sequenza di numeri, per essere definita casuale, deve possedere 2 caratteristiche fondamentali: distribuzione e indipendenza. La prima fa riferimento alla distribuzione uniforme (equidistribuzione) che devono possedere i numeri generati, all interno di un intervallo determinato. Solitamente l intervallo ha ampiezza (0,1). Indipendenza significa che numeri successivi devono essere indipendenti tra di loro. L output al tempo t non deve quindi influire sull output generato al tempo t+1. Procediamo con un esempio chiarificatore. L ipotetica sequenza di numeri pseudo casuali: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 è certamente equidistribuita nell intervallo (1, 10). Il principio della distribuzione è in questo caso rispettato. Lo stesso non si può dire nei confronti dell indipendenza. Tutte le coppie di numeri sono infatti nella forma (n, n+1). Rientrando nel campo della definizione intuitiva di RNG, se osservassimo i primi 8 numeri della sequenza, potremmo facilmente ipotizzare il valore del nono output, e questo contrasta con la nostra definizione di RNG. Il problema principale, quando si ha a che fare con numeri pesudo casuali, è provare che le sequenze ottenute siano statisticamente simili a sequenze di numeri realmente casuali. Per verificare tali caratteristiche è necessario sottoporre gli output a test statistici. L efficacia di un RNG non può quindi essere testata a priori. Sul tema dei test statistici utilizzati per valutare la bontà di una sequenza di numeri pseudo casuali torneremo nel capitolo Test di uniformità.

7 IV - Proprietà dei Random Number Generators I Random Number Generators utilizzati in ambito statistico sono algoritmi che, nella maggior parte dei casi, seguono lo schema introdotto da L Ecuyer nel 1994. Secondo tale schema, le parti fondamentali di un RNG sono: (",µ, f,u,g) Analizziamo nel dettaglio i singoli elementi: " : Insieme finito di stati (Spazio degli stati) µ : Distribuzione di probabilità, utilizzata per selezionare dallo spazio degli stati " il seme, o stato iniziale. f : Funzione di transizione utilizzata per determinare lo stato al tempo t +1 dato lo stato al tempo t. In formula: s i+1 = f (s i ) U : Spazio degli output. Solitamente si utilizzano valori compresi nell intervallo (0, 1) g : Funzione di output. Dato un qualsiasi stato s i, u i = g(s i ) " U. Gli output u 0,u 1,u 2... sono i numeri casuali prodotti dal Random Number Generators. Dal momento che lo spazio degli stati " è finito, selezionando un qualsiasi seme s i, esisterà sempre un valore l tale per cui: s i+ l = s i In pratica, qualsiasi sia lo stato iniziale, dopo un numero l di iterazioni, il RNG torna inevitabilmente allo stato iniziale. Dal momento che sia la funzione di transizione che la funzione di output sono deterministiche, allora anche gli output generati torneranno inevitabilmente allo stato iniziale.

8 Il valore di l più piccolo per cui si realizza il ritorno allo stato iniziale è chiamato Periodo del RNG ed è individuato dal simbolo ". Il valore di " è minore o uguale alla cardinalità dello spazio degli stati ". Nella pratica, essendo " memorizzato in un calcolatore sotto forma di stringa binaria di lunghezza k, allora " avrà lunghezza: " # 2 k RNG di buona qualità si distinguono per valori di periodo uniformi per tutti i possibili stati iniziali. " " prossimi a. Il valore di " dipende anche dal seme, ancora una volta, i buoni RNG possiedono valori del Un RNG con l = 0 è detto puramente periodico.

9 V - Caratteristiche dei Random Number Generators Analizziamo ora le caratteristiche che determinano la qualità di un RNG. Oltre al periodo, altri parametri di valutazione degli RNG sono: Efficienza, Ripetibilità e Portabilità. Analizziamoli nel dettaglio: Periodo: I migliori RNG sono quelli caratterizzati da periodi lunghi. Valori di " prossimi a " assicurano che il sistema non entri in cicli brevi e prevedibili. Efficienza: Un buon RNG è un software che utilizza un quantitativo ridotto di risorse computazionali, misurate in termini di memoria allocata. Ripetibilità: Gli RNG devono essere in grado di riprodurre esattamente la stessa sequenza di numeri pseudo casuali partendo dallo stesso stato iniziale. Portabilità: Gli algoritmi RNG devono essere realizzati in maniera da essere il più possibile indipendenti dal contesto hardware e software in cui sono implementati. Oltre a queste 4 caratteristiche, per valutare la qualità di un RNG è fondamentale valutare l uniformità della distribuzione dei numeri generati. Su questo tema torneremo nel paragrafo intitolato Correlazione.

10 VI - Generatori lineari congruenziali I Lineari Congruenziali sono una famiglia di RNG tra i più semplici ed al contempo tra i più utilizzati. La formula fondamentale dei Generatori Lineari Congruenziali è: s i+1 = a " s i + c(mod m) Analizziamo nel dettaglio la formula: s i : Stato del RNG al tempo i s i+1: Stato del RNG al tempo i+1 c : Parametro Incremento. Nel caso in cui puramente moltiplicativo a : Parametro Moltiplicatore m : Numero di stati possibili c = 0 si parla di RNG Analizziamo ora, in linea teorica, il comportamento di un RNG lineare congruenziale. Poniamo quindi i valori dei parametri nel seguente modo: a = 3 c = 6 m = 5 s 0 = 1 Fissati questi parametri, la formula risulterà: s i+1 = 3" s i + 6(mod 5)

11 Partendo da questi dati, iteriamo il calcolo per ottenere una sequenza di numeri pseudo casuali: s 0 = 1 s 1 = 3"1+ 6(mod 5) = 4 s 2 = 3" 4 + 6(mod 5) = 3 s 3 = 3" 3+ 6(mod 5) = 0 s 4 = 3" 0+ 6(mod 5) = 1 s 5 = 3"1+ 6(mod 5) = 4 Osservando la sequenza dei valori di output, è possibile notare come al passo s 4 si ottenga il valore 1. Tale valore coincide con il seme. Come abbiamo affermato in precedenza, questo determina il periodo del RNG in esame. In formula: " = 4 Lo spazio degli stati m è stato fissato a 5, m in questa formula corrisponde al della formula di l Ecuyer. Quindi: " m = 5 = " Il periodo si avvicina al numero massimo pur restando inferiore al numero di stati possibili: " < # I pregi di questi tipo di RNG risiedono nell estrema semplicità e velocità di esecuzione una volta implementati al calcolatore. Problemi possono sorgere nei confronti della lunghezza massima del periodo e della correlazione tra chiamate successive del generatore (Vedi capitolo Correlazione ). Infine, ogni valore di " è determinato dai 4 valori a,c,m,s 0

12 VII - Mersenne Twister Il Mersenne Twister (MT) è un RNG sviluppato nel 1997 da Makoto Matsumoto e Takuji Nishimura. Le sue caratteristiche lo rendono ad oggi uno dei metodi più efficaci ed efficienti per le generazione di numeri casuali. Analizziamo nel dettaglio le caratteristiche che hanno reso popolare questo RNG: Periodo: Periodo molto lungo ed equidistribuito. Sotto questo apetto, il MT assicura prestazioni superiori rispetto a qualsiasi generatore precedente. È stato dimostrato che il periodo è pari a 2 19937"1 e i numeri sono distribuiti uniformemente in un iperspazio a 623 dimensioni. Questo significa che la correlazione fra valori successivi della sequenza è praticamente trascurabile. Velocità: La velocità di generazione di numeri casuali è sostanzialmente uguale a quella della funzione rand() presente nella libreria standard dell ANSI C. Efficienza: Il Marnenne Twister è estremamente efficiente in temrini computazionali: la versione in C del generatore è costituita da 624 parole di codice.

13 VIII - Correlazione Quando abbiamo parlato del Marsenne Twister e dei generatori lineari congruenziali, abbiamo accennato alla loro capacità di generare sequenze di numeri più o meno correlate. Ma cosa si intende per correlazione tra sequenze di numeri pseudo casuali? Immaginiamo di avere a disposizione un RNG e di generare una serie di sequenze di numeri pseudo casuali di lunghezza uniforme k. Utilizziamo queste sequenze per identificare una serie di punti all interno di uno spazio k-dimensionale. Se i numeri generati fossero realmente casuali, i punti individuati dalle sequenze si distribuirebbero in maniera uniforme nello spazio. Nella realtà i punti si distribuiscono in piani k-1 dimensionali, il cui numero massimo è pari a: 1 k m Prendiamo per esempio una serie di sequenze di mueri pseudo casuali di lunghezza 2. Quindi: k = 2

14 Se le sequenze generate fossero statisticamente simili a sequenze realmente casuali e quindi non-correlate, riportando i numeri su un piano cartesiano dovremmo osservare una distribuzione uniforme dei punti (immagine di sinistra). Nel caso contrario, i numeri finirebbero per disporsi all interno di aree circoscritte del piano, come illustrato nell immagine di destra:

15 IX Test di uniformità Per testare l uniformità dei numeri generati da un RNG si ricorre ad un test statistico chiamato Test del " 2 (chi-quadro). Introduciamo alcuni termini necessari per eseguire il test: k : Numero di eventi possibili. Nel nostro caso corrisponde alla cardinalità dello spazio degli output E 1,E 2,...,E k : Identificano tutti gli eventi possibili. Evento 1, Evento 2 Evento k. p 1,p 2,...,p k: Probabilità che si realizzi ciascun evento. Ovvero, probabilità di venire generato di ciascun numero appartenente allo spazio degli output. n: Numero di esperimenti che si conducono. Nel nostro caso corrisponde al numero di volte che si genera un numero casuale y 1,y 2,..., y k : Numero di volte che si realizza l evento 1, numero di volte che si realizza l evento 2, numero di volte che si realizza l evento k. Quindi, sommando il numero i eventi che si realizzano otteniamo il numero di esperimenti condotti, overo il numero di numeri generati. Il formula: " k i =1 y i = n Introduciamo ora la variabile v, definita come: k V = " (y i # np i ) 2 i =1 np i Immagiamo ora di avere un RNG in grado di fornire numeri pseudo casuali compresi nell intervallo (0, 1) e di volerne testare l uniformità della distribuzione.

16 Tra 0 e 1 creiamo k intervalli, ognuno di ampiezza uniforme 1 k. Utilizziamo il nostro RNG per generare n numeri pseudo casuali e contiamo per ogni intervallo il numero y i di istanze che sono cadute all interno dell intervallo. Poichè il generatore si suppone uniforme, la probabilità che un numero cada all interno di un qualisasi intervallo è pari a: p i = 1 k Ora che abbiamo tutti i valori, possiamo calcolare la variabile v utilizzando la formula descritta in precedenza. Se il generatore è uniforme, la variabile con k-1 gradi di libertà. v risulterà avere una distribuzione " 2

17 Il test si ritiene superato se, fissato un valore critico 2 " 1#$ v non risulta maggiore a tale valore. Solitamente si pone " = 0,05.

18 X Bibliografia e riferimenti web Computational statistic (Springer heidelberg 2004) Marsenne Twister Home page( http://www.math.sci.hiroshima-u.ac.jp/~mmat/mt/emt.html) http://www.cs.unibo.it/~donat/random1.pdf