Numeri casuali o pseudocasuali

Documenti analoghi
Numeri casuali o pseudocasuali. I generatori di numeri casuali (RNGs) risultano componente fondamentale per diverse applicazioni:

Generazione di numeri casuali. Daniela Picin

Generatori di numeri casuali

3.1 ESERCIZI DI RIEPILOGO

Modulo Simulazione Parte 1. Simulazione ad Eventi Discreti: Concetti Base. Organizzazione del modulo

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

Random number generators

Generazione di numeri random. Distribuzioni uniformi

Teoria dei Fenomeni Aleatori AA 2012/13

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

Introduzione alla probabilità. Renato Mainetti

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

Metodi Computazionali. Generazione di numeri pseudocasuali

Gli studenti posso scaricare dai rispettivi siti le versioni trial/studente delle release

Introduzione alla Simulazione Discreta

Algoritmi in C++ (prima parte)

Automazione Industriale 1

La simulazione con DERIVE Marcello Pedone LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE

SEQUENZE DI NUMERI PSEUDO- CASUALI

λ è detto intensità e rappresenta il numero di eventi che si

codifica in virgola mobile (floating point)

Indice Prefazione XIII Capitolo 1 Introduzione al Visual Basic per Excel

Il calcolo del VAR operativo mediante la metodologia stocastica parametrica. Simona Cosma

Statistica Metodologica Avanzato Test 1: Concetti base di inferenza

Generatori di numeri pseudo-random. Giorgia Rossi Fabio Bottoni Giacomo Albanese

Random Number Generation Techniques

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Modelli e Metodi per la Simulazione (MMS)

Markov Chains and Markov Chain Monte Carlo (MCMC)

Probabilità e numeri casuali Teoria e programmazione Pascal e C++

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

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

Variabili casuali ad una dimensione Testi degli esercizi. Variabili casuali ad una dimensione a.a. 2012/2013 1

RAPPRESENTARE CON UN COMPUTER FENOMENI CASUALI E UTILIZZARLI

Il metodo Monte Carlo

Introduzione alla Simulazione Discreta

Aritmetica dei Calcolatori Elettronici

Modulazione PAM Multilivello, BPSK e QPSK

Corso di Sistemi di Controllo Multivariabile. Docente Prof. Francesco Amato

Generatori di numeri pseudo-casuali

Esercizi di Calcolo delle Probabilità

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Il calcolatore. Architettura di un calcolatore (Hardware)

STATISTICHE, DISTRIBUZIONI CAMPIONARIE E INFERENZA

SIMULAZIONE A.A. 2016/2017

Raccolta degli esercizi svolti in aula

GENERAZIONE DI NUMERI PSEUDOCASUALI

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Calcolo delle Probabilità 2

Teoria dell informazione

Sommario. Capitolo 1 I dati e la statistica 1. Capitolo 2 Statistica descrittiva: tabelle e rappresentazioni grafiche 25

Casualità e numeri casuali

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

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Curriculum Vitae di Andrea Ribichini

Approcci esatti per il job shop

Generazione ed uso di numeri pseudocasuali

I.4 Rappresentazione dell informazione

STATISTICA (2) ESERCITAZIONE Dott.ssa Antonella Costanzo

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

1 4 Esempio 2. Si determini la distribuzione di probabilità della variabile casuale X = punteggio ottenuto lanciando un dado. Si ha immediatamente:

Modelli descrittivi, statistica e simulazione

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Tecniche di compressione senza perdita

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Il Corso di Fisica per Scienze Biologiche

P(A B C) = P(A)+P(B)+P(C) P(A B) P(A C) P(C B)+P(A B C). (E.2)

1/4 Capitolo 4 Statistica - Metodologie per le scienze economiche e sociali 2/ed Copyright 2008 The McGraw-Hill Companies srl

Fondamenti VBA. Che cos è VBA

Analisi delle Serie Storiche

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

PROVE SCRITTE DI MATEMATICA APPLICATA, ANNO 2006/07

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

Curriculum di Jeremy James SPROSTON

Transcript:

Numeri casuali o pseudocasuali I generatori di numeri casuali (RNGs) costiutiscono una componente fondamentale per diverse applicazioni Esperimenti statistici analisi di algoritmi- Simulazione di sistemi stocastici Analisi numerica basata su metodi Monte-Carlo Algoritmi probabilistici Computer games Crittografia Protocolli di comunicazione sicuri Gambling machines Virtual Casino Generatori random non basati su algoritmi Produzione di sequenze di numeri con apparenza di casualità generatori di numeri pseudo-causali RNG sono programmi basati - dovrebbero esserlo - su solide basi matematiche Disponibilità di una sorgente (RNG) capace di generare variabili casuali indipendenti e uniformemente distribuite nell intervallo [0, 1] i.i.d. U[0, 1] Librerie software contengono Generatori di Numeri Casuali (RNGs) Microsoft Excel Visual Basic SUN Java Altre distribuzioni (e.g., Normale, Chi-quadro, esponenziale, Poisson, logonormale, etc.) si ottengono mediante trasformazioni della sequenza uniforme S9.1 S9.2

Casualità e indipendenza Un generatore di numeri casuali è un programma la cui sequenza di output è la simulazione (imitazione) del comportamento di una sequenza di variabili casuali indipendenti Il comportamento del programma è deterministico: a parità di seme iniziale la sequenza di output è la stessa Esempio: Lancio di un dato 8 volte: 55555555 prima sequenza 23613564 seconda sequenza Il risultato di diversi lanci di un dado può essere modellato come una sequenza di variabili casuali uniformemente distribuite su un insieme di interi da 1 a 6 Ogni intero compreso tra 1 e 6 ha probabilità 1/6 di essere osservato in ciascun lancio indipendentemente dai risultati degli altri lanci Concetto astratto: nessun dado perfetto esiste in natura! Cosa ci aspettiamo da un RNG progettato e realizzato per simulare i risultati del lancio di un dado: Per un numero di generazioni elevato ( long run): ciascun intero compreso tra 1 e 6 dovrebbe apparire con una frequenza vicina al valore1/6 ciascuna coppia dovrebbe apparire con una frequenza vicina al valore 1/36 ciascuna tripla di numeri dovrebbe apparire con una frequenza vicina al valore 1/216... Queste proprietà non solo garantiscono che il dado virtuale sia non distorto, ma anche che le generazioni consecutive di numeri non siano correlate S9.3 S9.4

Definizione Un RNG può essere definito come una struttura dove S m (S, m, f, U, g) insieme finito di stati distribuzione di probabilità su S utilizzata per selezionare uno stato iniziale (seme) s 0 f: S -> S funzione di transizione U insieme finito simboli di output g: S -> U funzione di output I cambiamenti di stato sono determinati dalla ricorrenza s n = f(s n-1 ) Poichè S è un insieme finito : per qualche i! 0 e j > 0 da cui per tutti gli n! i s i+j = s i (1) s n+j = s n Il periodo! del generatore è il più piccolo valore di j > 0 per cui si verifica la condizione (1)! deve essere inferiore alla cardinalità di S inoltre se b bit sono usati per rappresentare lo stato allora! " 2 b L output al passo n è per n > 0 u n = g(s n ) " U RNG dovrebbero avere il periodo molto vicino all upper bound i valori u n rappresentano la sequenza di numeri random generati dal RNG S9.5 S9.6

Progetto di generatori e misure di uniformità periodo di lunghezza arbitraria (molto grande) generazione efficente dei numeri: veloce e uso di risorse limitate sequenza riproducibile portabilità del codice jumping nella sequenza efficiente Esempio: generatore uniforme U[0,1] s i+1 = s i +1 se s i " 2 500 1 s i+1 = 0 altrimenti Generatore poco raccomandabile! I valori successivi di u i dovrebbero apparire uniformi e indipendenti si dovrebbero comportare come se il test dell ipotesi (ipotesi nulla): # 0 i valori u i sono i.i.d. U[0,1] fosse vero Per ciascun t! 0, il vettore { u 0, u 1, u 2,, u t-1 } uniformemente distribuito in [0,1] (test di discrepanza) si considerano gli insiemi: $ t = { (u 0, u 1, u 2,, u t-1 ) : s 0 " S } Molto più pratici e semplici i test empirici essenzialmente basati sul test di Goodness of fit Famiglie di RNG - generatori basati su ricorrenze lineari x i = ( a 1 x i-1 + + a k x i-k ) mod m m, k > 0 m è detto modulo k rappresenta l ordine della ricorrenza i coefficenti a i " Z m = { 0, 1,, m-1 } S9.7 S9.8

Stato del generatore al passo s i = (x i-k+1,, x i ) Periodo massimo m primo e a i soddisfacenti date condizioni periodo! = m k 1 Funzione di output u i = x i / m Caso particolare: k = 1: Generatore congruente moltiplicativo x i = (a x i-1 ) mod m Condizioni di periodo massimo Altra famiglia di generatori: a registri di scalatura Linear feedback shift register (Tausworthe generator) Consideriamo lo stato s i = (x is,, x is+k-1 ) prodotto da un generatore ricorrente lineare e consideriamo un valore di m pari a 2 u i = G(s) = % 1!j!L x is+j m -j con s e L " k, interi positivi Se il generatore ricorrente lineare ha periodo! e gdc(!, s) = 1 allora il generatore proposto ha anch esso periodo pari a! m primo ( es. m = 2 31-1) a elemento primitivo modulo m a è un elemento primitivo modulo m se il più piccolo intero s per il quale (a s 1) è divisibile per m è s = m-1 Esempio: a= 16807 a= 630360016 LCG16807 ( a=16807 e m = 2 31-1) S9.9 S9.10

Variante: generalized feedback shift register Generatore MRG32k3a: Multiple Recursive Generator x 1,n = (a 1,1 x 1,i-1 + + a 1,k x 1,n-k ) mod m 1 x 2,n = (a 2,1 x 2,i-1 + + a 2,k x 2,n-k ) mod m 2 u n = (x 1,n / m 1 x 2,n / m 2 ) mod 1 Alcuni generatori: Java x i+1 = (2521490391 x i + 11) mod 2 48 u i = (2 27 x 2i / 2 22 + 2 27 x 2i+1 / 2 21 ) mod 2 53 Visual Basic periodo m = m 1 m 2 Suggerimenti: k = 3 m 1 = 2 32-209 (a 11, a 12, a 13 ) = (0, 1403580, -810728) m 2 = 2 32-22853 (a 21, a 22, a 23 ) = (527612, 0, -1370589) x i+1 = (1140671485 x i + 12820163) mod 2 24 Alcuni rifermenti u i = (x i ) mod 2 24 http://random.mat.sbg.ac.at http://cgm.cs.mcgill.ca/ http://www.webnz.com/robert/rng links.htm http://statistik.wu-wien.ac.at/src/unuran/ S9.11 S9.12

Riferimenti Bratley, P., B. L. Fox, and L. E. Schrage. 1987. A Guide to Simulation. Second ed. New York, Springer-Verlag..8 Devroye, L. 1986. Non-Uniform Random Variate Generation. New York: Springer-Verlag. Gentle, J. E. 1998. Random Number Generation and Monte Carlo Methods. New York: Springer. ed. P. Hellekalek and G. Larcher. 1998. Random and Quasi-Random Point Sets. volume 138 of Lecture Notes in Statistics. New York: Springer. Hormann, W. and J. Leydold. 2000. Automatic random variate generation for simulation input. in Proc. of the 2000 Winter Simulation Conference, ed. J. A. Joines, R. R. Barton, K. Kang, and P. A. Fishwick, 675-682,. IEEE Press. Knuth, D. E. 1998. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. Third ed. Reading, Mass.: Addison-Wesley. Lagarias, J. C. 1993. Pseudorandom numbers. Statistical Science, 8(1), 31-39. Law, A. M and W. D. Kelton. 2000. Simulation Modeling and Analysis. Third ed. New York, McGraw-Hill. L'Ecuyer, P. 1994. Uniform random number generation. Annals of Operations Research, 53,77-120. L'Ecuyer, P. 1998. Random number generation. In Handbook of Simulation, ed. J. Banks, 93-137. Wiley. chapter 4. L'Ecuyer, P. 1999a. Good parameters and implementations for combined multiple recursive random number generators. Operations Research, 47(1), 159-164. L'Ecuyer, P. 1999b. Tables of maximally equidistributed combined LFSR generators. Mathematics of Computation, 68(225), 261-269. L'Ecuyer, P and T. H. Andres. 1997. A random number generator based on the combination of four LCGs. Mathematics and Computers in Simulation, 44, 99-107. L'Ecuyer, P. and R. Simard. 2000. On the performance of birthday spacings tests for certain families of random number generators. Mathematics and Computers in Simulation, 55(1{3), 131-137. Marsaglia, G. 1985. A current view of random number generators. In Computer Science and Statistics, Sixteenth Symposium on the Interface, 3{10, North-Holland, Amsterdam. Elsevier Science Publishers. Matsumoto, M and T. Nishimura. 1998. Mersenne twister: A 623- dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and ComputerSimulation, 8(1), 3-30.9 Niederreiter, H. 1992. Random Number Generation and Quasi-Monte Carlo Methods. volume 63 of SIAM CBMS-NSF Regional Conf. Series in Applied Mathematics. Philadelphia: SIAM. Tezuka, S. 1995. Uniform Random Numbers: Theory and Practice. Norwell, Mass.: Kluwer Academic Publishers. S9.13