Generatori di numeri casuali



Documenti analoghi
Random number generators

GENERAZIONE DI NUMERI PSEUDOCASUALI

Numeri Random. D.E.I.S. Università di Bologna DEISNet

2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme

Generazione di numeri random. Distribuzioni uniformi

5. Analisi dei dati di input

NUMERI CASUALI E SIMULAZIONE

Generatori di sequenze pseudocasuali. Manuela Aprile Maria Chiara Fumi

CALCOLO NUMERICO. Prof. Di Capua Giuseppe. Appunti di Informatica - Prof. Di Capua 1

Esperimenti al calcolatore

Laboratorio di Calcolo B 67

Probabilità e Statistica

Generatori di numeri pseudocasuali

Processi random in natura

Laboratorio di Calcolo B 68

Numeri pseudocasuali. Olga Scotti

Probabilità e Statistica

Introduzione alla probabilità. Renato Mainetti

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

- noise di conteggio ; f[m] è un numero intero che è la realizzazione di una variabile aleatoria con valor medio (valore atteso) f 0 [m].

Statistica - metodologie per le scienze economiche e sociali /2e S. Borra, A. Di Ciaccio - McGraw Hill

Studio dell aleatorietà: : proprietà di indipendenza ed uniformità. Daniela Picin

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Dio non gioca a dadi : Un introduzione al metodo Monte Carlo Orazio Muscato

Cenni di teoria dell informazione

Metodi Computazionali della Fisica Secondo Modulo: C++

Metodi Computazionali. Generazione di numeri pseudocasuali

Simulazione dei dati

Calcolo dell area di un cerchio con metodo statistico

Generatore random. Laboratorio di Architetture degli Elaboratori I Corso di Laurea in Informatica, A.A Università degli Studi di Milano

Teoria dei Fenomeni Aleatori AA 2012/13

Crittografia Moderna. Segretezza Perfetta: nozioni

Distribuzioni campionarie. Antonello Maruotti

Il metodo Monte Carlo. Numeri (pseudo)casuali. Esempio di transizione al caos. Analisi dati in Fisica Subnucleare. Introduzione al metodo Monte Carlo

Algoritmi in C++ (prima parte)

Esercitazione 1. Introduzione agli algoritmi di ordinamento

Giovanni A. Cignoni 1

Teoria dei Fenomeni Aleatori AA 2012/13

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Intercettazione dei dati. Uso della crittografia simmetrica

ESTRATTO DA INDUZIONI, 32 (2001) pp Significato geometrico del fattoriale, numeri pseudo-casuali e numero di Nepero

Il metodo Monte Carlo. Esempio di transizione al caos. Numeri (pseudo)casuali. λ 1. Analisi dati in Fisica Subnucleare

L one-time pad o cifrario di Vernam (1917) è il crittosistema tale che P = C = K = (Z 2 ) m. è un crittosistema a segretezza perfetta

Generazione di numeri casuali

Generazione di numeri pseudo-casuali

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Sicurezza su reti Uso della crittografia simmetrica

Analisi e scelta dei dati di input

Analisi e scelta dei dati di input

f è una combinazione convessa f con w 1

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Calcolo delle Probabilità e Statistica Matematica Fisciano, 10/1/2012

Pseudocasualità con OpenSSL

Corso di laurea in Scienze Motorie Corso di Statistica Docente: Dott.ssa Immacolata Scancarello Lezione 15: Metodi non parametrici

Generazione di distribuzione di probabilità arbitrarie

Indice Premessa Cenni storici delle misure

STIMA DELLA VARIANZA CAMPIONARIA

complessità degli algoritmi

9. Test del χ 2 e test di Smirnov-Kolmogorov. 9.1 Stimatori di massima verosimiglianza per distribuzioni con densità finita

Politecnico di Milano Dipartimento di Elettronica e Informazione Introduzione. Laboratorio di Reti di Telecomunicazione

Crittografia. Corso di Laurea Specialistica. in Informatica. Generatori di Numeri PseudoCasuali

Il concetto di algoritmo. Il concetto di algoritmo. Costruire un algoritmo. Il concetto di algoritmo (più tecnico) Dati di ingresso (input)

ORDINAMENTO PER SELEZIONE ORDINAMENTO PER SELEZIONE ORDINAMENTO VELOCE CONFRONTI

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 9 Novembre 2015

Piattaforma AlmaChannel e laboratori virtuali

Simulazione. Introduzione

Teoremi limite. Enrico Ferrero. 27 febbraio 2007

Tecniche di simulazione

DI IDROLOGIA TECNICA PARTE III

PROBABILITÀ SCHEDA N. 5 SOMMA E DIFFERENZA DI DUE VARIABILI ALEATORIE DISCRETE

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

RICHIAMI SU SIMULAZIONE E METODO MONTE CARLO

Generazione di variabili aleatorie con distribuzione non uniforme. Daniela Picin

Corso di Laurea in Informatica Applicata Esame di Calcolo delle Probabilità e Statistica Prova scritta dell 11 gennaio 2007

PASCAL: IL CALCOLO NUMERICO TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 3, HOEPLI. Informatica

Generazione di numeri casuali. Daniela Picin

X = X 1 + X X n. dove. 1 se alla i-esima prova si ha un successo 0 se alla i-esima prova si ha un insuccesso. X i =

1. Calcolo dell indice di condizionamento di una matrice

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

La simulazione è l'imitazione di un processo o di un sistema reale per un

1. i dati sono usati direttamente nella simulazione ( trace driver simulation ).

Analisi e scelta dei dati di input

Test delle ipotesi. Le differenze che vengono riscontrate possono essere ovviamente ricondotte a due possibilità:

Numeri casuali o pseudocasuali

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a.

Numeri casuali o pseudocasuali

RETI DI TELECOMUNICAZIONE

Analisi statistica dell output prodotto dalla simulazione

Distribuzioni di Probabilità

ALGORITMI: PROPRIETÀ FONDAMENTALI

Teorema del limite centrale TCL

MODELLISTICA DI IMPIANTI E SISTEMI Syllabus e Testi di Riferimento Prof. Giuseppe Iazeolla

CAMPIONAMENTO - ALCUNI TERMINI CHIAVE

Algoritmi in C++ (seconda parte)

Transcript:

Statistica computazionale Generatori di numeri casuali Alberto Lusoli www.cash-cow.it Distribuito sotto licenza Creative Common Share Alike Attribution

La generazione dei numeri casuali è troppo importante per essere lasciata al caso Robert R. Coveyou

Concetti fondamentali I campi di studio della probabilità e della statistica si fondano sul concetto di spazio delle probabilità e variabile casuale. Quando questi concetti vengono implementati in elaboratori nasce il problema di simulare variabili casuali mediante algoritmi deterministici.

Definizione intuitiva Un algoritmo RNG (Random Number Generator) è un software il cui output è difficilmente distinguibile dal comportamento di una variabile "veramente casuale".

Definizione intuitiva Ovvero, osservando una serie di output forniti dall'algoritmo non si dovrebbero avere informazioni circa il successivo valore generato.

Quando si utilizzano numeri random? Nei linguaggi di programmazione sono presenti funzioni per la generazione di numeri casuali. Tra quelli che abbiamo affrontato in altri corsi citiamo: Matlab rand ANSI C rand()

Processi fisici Variabili casuali possono scaturire anche dall osservazione di processi fisici come il tempo di decadimento atomico o l'analisi del thermal noise (disturbo termico) nei semiconduttori.

Processi fisici I RNG basati su processi fisici hanno molti svantaggi rispetto alla loro controparte software: sono difficili da realizzare, sono costosi, lenti e non sono in grado di riprodurre la stessa sequenza di output a partire dal medesimo stato iniziale.

Processi fisici Questi metodi sono spesso utilizzati insieme a algoritmi RNG per la selezione del seme iniziale (vedi dopo). Rappresentano infatti una fonte di entropia esterna utile per certe applicazioni dove è frequente il reseeding, ovvero la reinizializzazione della sequenza di output (criptologia e macchine da gioco).

Algoritmi RNG e numeri pseudo casuali Centro della nostra analisi sono i software per la generazione di numeri casuali (abbreviati in RNG) Si tratta di algoritmi deterministici in grado di generare un output avente le stesse proprietà statistiche di una sequenza di numeri generata da un processo casuale.

Numeri Pseudo casuali L output fornito, come accennato in precedenza, imita ma non è propriamente una variabile casuale. Per questo motivo è più corretto parlare di numeri pseudo-casuali (PRNG, dall'inglese pseudo-random numbers generator).

Caratteristiche dei numeri pseudo-casuali Una sequenza di numeri pseudocasuali deve soddisfare, al minimo, le seguenti proprietà statistiche: Distribuzione Indipendenza

Distribuzione Distribuzione degli output secondo una funzione di distribuzione predefinita f(x): di solito si richiede una distribuzione uniforme su un intervallo specificato (equidistribuzione)

Indipendenza Indipendenza tra elementi successivi della sequenza, ovvero tra 2 output successivi

Esempio La sequenza 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Non si può definire pseudo-casuale E certamente equidistribuita sull'intervallo [1,10], ma le coppie di elementi successivi non sono uniformemente distribuite sull'insieme di tutte le possibili coppie di numeri da 1 a 10, ma sono tutte della forma (n,n+1). Non è quindi soddisfatto il criterio di indipendenza

Provare la casualità Il problema principale dei RNG è che l'output fornito non è propriamente una variabile casuale ma una approssimazione di una variabile casuale con distribuzione uniforme ed indipendente

Provare la casualità Se l output è, come avviene spesso, una sequenza di bit con valori 0 o 1, ogni bit deve assumere con uguale probabilità 0 o 1 e tutti i bit devono essere tra di loro indipendenti.

Provare la casualità Questo comportamento desiderato non può essere provato a ex-ante ma deve essere testato ex-post mediante test statistici che provino che la variabile in osservazione abbia realmente il comportamento casuale desiderato.

RNG in formula Indipendentemente dal funzionamento particolare di ciascun algoritmo, tutti gli RNG possono essere descritti come composti da: (",µ, f,u,g)

RNG in formula " : Insieme finito di stati (spazio degli stati) µ : f : U : g : Distribuzione di probabilità utilizzata per selezionare dall insieme lo stato iniziale (detto Seme) Funzione di transizione che, partendo da determina. In formula: s i+1 = f (s i ) Spazio degli output, solitamente comprende i valori tra 0 e 1 Funzione di output. Dato uno stato Gli output dal RNG " s i+1 u i = g(s i ) " U u 0,u 1,u 2... s 0 s i s i sono i Numeri casuali prodotti

Periodo massimo di un RNG Dato che l insieme degli stati è finito, per qualsiasi seme (stato iniziale) esisterà un valore l " tale per cui s 1 s i+l = s i

Periodo massimo di un RNG Dato che le funzioni di transizione e di output f e g sono deterministiche, allora anche per l output vale la formula: u i+l = u i

a parole Significa che, partendo da un qualsiasi stato iniziale, dopo un certo numero di l iterazioni, il sistema torna allo stato iniziale, ovvero al seme. Quindi, tutti gli algoritmi RNG generano sequenze finite di numeri casuali e dopo un numero l di iterazioni tornano allo stato iniziale.

Proprietà del periodo Il valore di l più piccolo per cui è avviene il ritorno allo stato iniziale è chiamato periodo del RNG ed è indicato con ". " è minore o uguale a ", ovvero all'insieme finito di stati (spazio degli stati).

Proprietà del periodo Se gli stati sono rappresentati in un computer da una stringa di k bit, allora: " # 2 k Buoni RNG hanno valore di tendente a. " dipende anche dal seme. RNG efficienti hanno possibili stati iniziali. " " uguale per tutti i "

Altre caratteristiche dei RNG Criteri di qualità utilizzati per valutare la qualità di un RNG sono: Lunghezza del periodo: periodi lunghi, prossimi a ", assicurano che il sistema non entri in cicli prevedibili.

Altre caratteristiche dei RNG Efficienza: buoni RNG devono utilizzare una quantità ridotta di risorse (memoria) Ripetibilità: partendo dallo stesso seme, devono essere in grado di riprodurre la stessa sequenza di numeri casuali Portabilità: devono essere indipendenti dal contesto hardware software

Alcuni esempi di RNG Analizziamo ora 2 famiglie di RNG, tra le più utilizzate. Generatori lineari congruenziali Mersenne Twister

Generatori lineari congruenziali I generatori di numeri casuali di tipo lineare congruenziale sono tra i più semplici e più diffusi. La formula base per questa famiglia di RNG è del tipo: s i+1 = a " s i + c(modm)

nel dettaglio s i+1 : stato al tempo i+1 s i : stato al tempo i s i+1 = a " s i + c(modm) a c m : parametro Moltiplicatore : parametro Incremento. Se, allora l RNG è detto Moltiplicativo : numero di stati possibili c = 0

Esempio Poniamo i valori dei parametri pari a: a = 3 c = 6 m = 5 s 0 =1 " s i+1 = 3" s i + 6(mod5)

s 0 =1 Esempio

s 0 =1 s 1 = 3"1+ 6(mod5) = 4 Esempio

s 1 = 3"1+ 6(mod5) = 4 s 0 =1 s 2 = 3" 4 + 6(mod5) = 3 Esempio

s 1 = 3"1+ 6(mod5) = 4 s 0 =1 s 2 = 3" 4 + 6(mod5) = 3 s 3 = 3" 3+ 6(mod5) = 0 Esempio

s 1 = 3"1+ 6(mod5) = 4 s 0 =1 s 2 = 3" 4 + 6(mod5) = 3 s 3 = 3" 3+ 6(mod5) = 0 s 4 = 3" 0 + 6(mod5) =1 Esempio

s 1 = 3"1+ 6(mod5) = 4 s 0 =1 s 2 = 3" 4 + 6(mod5) = 3 s 3 = 3" 3+ 6(mod5) = 0 s 4 = 3" 0 + 6(mod5) =1 s 5 = 3"1+ 6(mod5) = 4 Esempio

Esempio s 0 =1 s 1 = 3"1+ 6(mod5) = 4 s 2 = 3" 4 + 6(mod5) = 3 s 3 = 3" 3+ 6(mod5) = 0 s 4 = 3" 0 + 6(mod5) =1 s 5 = 3"1+ 6(mod5) = 4 Periodo di lunghezza 4 4 < 5 " < m " < # in simboli: riprendendo la formula generale:

Pro e contro dei RNG lineari congruenziali Pro Semplici da implementare Velocità di esecuzione Contro Sequenza periodica di periodo al più pari a m Ogni valore di " è completamente determinato dai 4 parametri a,c,m,s 0 Correlazione tra chiamate successive del generatore

Cosa si intende per correlazione? Se k numeri consecutivi della sequenza vengono utilizzati come coordinate di punti in uno spazio k-dimensionale, se i numeri fossero assolutamente non-correlati, i punti tenderebbero a coprire tutto lo spazio. In realtà i punti vanno a cadere in piani (k-1) dimensionali, il cui numero è al massimo: m 1 k

Correlazione Consideriamo ad esempio k=2. Utilizziamo ogni coppia di numeri pseudo-casuali generati da un RNG come coordinate di punti all interno di un piano cartesiano. Un buon RNG dovrebbe dar luogo ad un grafico dove i punti sono disposti uniformemente nello spazio (figura di sinistra)

Correlazione

Mersenne Twister RNG in grado di generare numeri casuali di qualità elevata ed in tempi ridotti. Sviluppato nel 1997 da Makoto Matsumoto e Takuji Nishimura.

Mersenne Twister Tra i vantaggi di questo RNG vi sono: 2 19937 Periodo lungo: pari a Correlazione: Correlazione trascurabile tra valori successivi della sequenza Velocità: La velocità di generazione è paragonabile a quella della funzione Rand() dell ANSI C Efficienza: Utilizzo delle risorse ridotto

Valutare la qualità di un RNG Come accennato in precedenza, per valutare la qualità di un RNG è necessario studiare le proprietà statistiche delle sequenze generate.

Test di uniformità o del " 2 Test in grado di valutare l uniformità della distribuzione di una sequenza di variabile discrete.

Test di uniformità o del " 2 k : numero di eventi possibili E 1, E 2,..., E k : evento 1, evento 2,, evento k p 1, p 2,..., p k : probabilità evento 1, probabilità evento 2,, probabilità evento k n : numero di esperimenti 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

Test di uniformità o del " 2 Quindi, la sommatoria di tutti gli eventi che si realizzano sarà pari al numero di esperimenti: " k i=1 y i = n Introduciamo la variabile V, definita come: V = k " (y # np i i )2 i=1 np i

Test di uniformità o del " 2 Per verificare l uniformità di un generatore nel fornire numeri random distribuiti uniformemente in [0,1]: Tra 0 e 1, si creano k-sottointervalli di 1 ampiezza k Si genera un gran numero di istanze della v.a. uniforme e si conta per ogni intervallo il numero y i di istanze che sono cadute all interno dell intervallo

Poichè il generatore è uniforme si ha p i = 1 k

Test di uniformità o del " 2 Si calcola qundi il valore di V utilizzando la formula descritta in precedenza: V = " k (y i # np i ) 2 i=1 np i Se il generatore è efficace, la variabile V risulta avere distribuzione " 2 con k "1 gradi di libertà.

Test di uniformità o del " 2 Il test è superato se, fissato un certo valore critico 2 " 1#$ V non risulta maggiore a tale valore Solitamente si pone " = 0.05

Riferimenti web e bibliografia Computational statistic Marsenne Twister Home page http://www.math.sci.hiroshimau.ac.jp/~m-mat/mt/emt.html http://www.cs.unibo.it/~donat/random1. pdf