generazione di numeri casuali - .• periodicit  • efficienza...

Download Generazione di numeri casuali - .• Periodicit  • Efficienza • Portabilit  ... Generazione

Post on 15-Feb-2019

215 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Daniela Picin

http://images.google.it/imgres?imgurl=http://www.orsodado.com/img/orsologo.gif&imgrefurl=http://www.orsodado.com/&h=93&w=108&sz=5&tbnid=UpUKBqlYfnQJ:&tbnh=68&tbnw=80&hl=it&start=1&prev=/images%3Fq%3Dorso%2Bdado%26svnum%3D10%26hl%3Dit%26lr%3D%26sa%3DG

2

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Testi di consultazione

Gentle I.E. Random Number Generation and Monte Carlo Methods, 2nd ed. Springer Verlag, 2005

Raj Jain - The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling John Wiley & Sons, 1993

3

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Un generatore di numeri pseudocasuali un programma la cui sequenza di uscita la s i m u l a z i o n e di una sequenza di variabili casuali indipendenti.Alcune applicazioni:

Esperimenti statistici Simulazione di sistemi stocastici Metodi Monte-Carlo Algoritmi probabilistici Computer games Crittografia

4

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore pseudocasualeSi definisce generatore una struttura

G = (S, , f, U, g)che opera nel seguente modo:

seleziona lo stato iniziale s0 S tramite , pone u0 = g (s0 );

per i > 0 i cambiamenti di stato sono determinati dalla ricorrenza si = f (si-1) ed ui = g (si);

La sequenza di osservazioni (u0, u1, u2,...) l'uscita del generatore.

5

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Caratteristiche di qualit

Uniformit Indipendenza statistica Riproducibilit Periodicit Efficienza Portabilit Jumping-ahead

6

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Metodi di generazione

Congruenza lineare Generatore lineare congruente (GLC) Generatore Ricorsivo Multiplo e gen. Fibonacci Sequenze di Tausworthe Linear Feedback Shift Register , GFSR Generatore add with carry Generatore substract with borrow Generatore multiply with carry

7

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Metodi CongruenzialiUna classe di generatori di numeri casuali a

distribuzione uniforme basata sui cosiddetti Metodi Congruenziali.

Questo significa semplicemente che sono basati sulla operazione (di congruenza): y = x mod m, che nel concreto consiste in calcolare q = x/m calcolare p = m * porre y = x-p

Esempio:74 mod 7 = 4; 74/7 = 10.571; 7*10 = 70; 74-70=4

q

(Slide su internet: F. Mazzia)(Slide (Slide susu internet: internet: F. Mazzia))

8

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Metodi di generazione

Congruenza non lineare Congruenza quadratica Congruenza inversa

Combinazione di generatori Tabelle di numeri random Middle Square (Centro del quadrato)

9

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Middle Square a valore compreso tra 0 ed 1 con un numero pari

di n cifre decimali; a 2 (doppia precisione); a 2 * 10 (n/2); b = prime n cifre decimali (secondo elemento dellasequenza)Esempio:a = 0.5772156649 (n =10)a 2 = 0.33317792380594919201a 2 * 10 5 = 33317.792380594919201b = 0.7923805949

(Slide su internet: Manuela Aprile, Maria Chiara Fumi)(Slide (Slide susu internet: internet: Manuela Aprile, Maria Chiara Fumi))

10

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore lineare congruente

dove x0, m, a, c Z+ sono chiamati rispettivamente seme, modulo, moltiplicatore ed incremento

xn Zm ={0,...,m-1} lo stato al passo n

il periodo il pi piccolo intero t.c. x = x0

se = m abbiamo il periodo massimose c = 0 abbiamo il GLC Moltiplicativo

( )1 mod i 0,1,...i ix ax c m+ = + =

11

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore lineare congruenteEsempio:Parametri iniziali: X0 = 3, m = 9, c =2, a = 7X1 = (7*3+2) mod 9 = 5X2 = (7*5+2) mod 9 = 1X3 = (7*1+2) mod 9 = 0X4 = (7*0+2) mod 9 = 2X5 = (7*2+2) mod 9 = 7X6 = (7*7+2) mod 9 = 6X7 = (7*6+2) mod 9 = 8

(Slide su internet: Manuela Aprile, Maria Chiara Fumi)(Slide (Slide susu internet: internet: Manuela Aprile, Maria Chiara Fumi))

12

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

GLCM con periodo massimo1 caso

m = primo, c = 0, x0 0 a = elemento primitivo modulo m

( a n mod m 1 per n = 1,2,,m-2) = m-1;

2 caso m = 2b, c = 0, x0 numero dispari a = 5 mod 8 = m/4 = 2b-2

13

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore Lineare Congruente Moltiplicativo

La ricorrenza del GLCM per gli interi equivalente, nellintervallo (0,1), alla ricorrenza

1 mod1 con 0 1i i iu a u u+ = <

14

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Restrizione dei valori in uscita allintervallo (0,1)

Analisi teorica

Scelte alternative

[ ) 0,1ii ixu um

=

( )[ ] 0,1

1i

i ixu u

m=

( ) ( )1 2 1 H dove H 0,12m

i ii i

x xu um m+

= = + =

(ACM Transactions on Modeling Computer Simulation Vol. 13, n. 4, 2003)(ACM (ACM TransactionsTransactions on on ModelingModeling Computer Computer Simulation Vol. 13, n. 4, 2003)Simulation Vol. 13, n. 4, 2003)

15

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Nellimplementazione il prodotto a xn-1 pucausare overflow. Come evitarlo: se a relativamente grande

a = cd + e

a = 2r 2w

se a < altra procedura di calcolo (GRM)

Implementazione al computer

m

(ACM Transactions on Modeling Computer Simulation Vol. 13, n. 4, 2003)(ACM (ACM TransactionsTransactions on on ModelingModeling Computer Computer Simulation Vol. 13, n. 4, 2003)Simulation Vol. 13, n. 4, 2003)

16

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

GLCM con buone figure di merito m un numero primo; = m-1; a e a* sono elementi

primitivi modulo m a* lelemento

moltiplicativo inverso di a modulo m

(Mathematics of Computation Vol. 68, n. 225,1999)(Mathematics of Computation(Mathematics of Computation Vol. Vol. 68,68, n. n. 225,225,1999)1999)

17

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore Ricorsivo Multiplo

Consideriamo i generatori del tipo

Il periodo il pi piccolo intero positivo per cui

Ci sono mk k-uple possibili di cui uno il vettore nullo, il periodo massimo = mk 1

Per k > 1 il periodo risulta pi grande di quello del GLC.

0 1 1( ,..., ) ( ,..., )k kx x x x + =

1 1 k( ... )mod con k 1 a 0n n k n kx a x a x m = + + >

18

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

GRM e generatore di FibonacciPer k=2 ed a1= a2=1 abbiamo il generatore di Fibonacci:

Svantaggi:alta correlazione seriale:Es: m =1000 x0=1 e x1=1 La sequenza sar2,3,5,8,13,21,34,55,89,144,233,377,610,987,597,

Non uniformit k-dimensionale

1 2( )modn n nx x x m = +

19

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempio di struttura reticolare per un generatore di Fibonaci

( )mod 125 con 0 e 11 2 0 1x x x x xn n n= + = =

Struttura reticolare per le seguenti coppie:

a) [xn, xn+1], b) [x5n, x5n+1], c) [x5n+1, x5n+2], d) [x5n+2, x5n+3], e) [x5n+3, x5n+4], f) [x5n+4, x5n+5],

20

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore ricorsivo multiplo (G R M ) di ordine k

Se il modulo m primo pu raggiungere il periodo massimo =mk 1Si ha =mk 1 se il polinomio caratteristico

un polinomio primitivo modulo mcon m numero primo

1 1 k( ... )mod con k 1 a 0n n k n kx a x a x m = + + >

n nu x m=

( )1

( ) mod modkk k i

ii

f x xI A m x a x m== =

21

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Implementazione GRM

In termini di implementazione un caso interessante

La ricorsione diventa

( ) con 1k k jj kf x x a x a j k=

( )mod n j n j k n kx a x a x m = +

22

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempi per limplementazione di un GRM

Estensione del gen. di Fibonacci

Se il modulo una potenza di 2, es. 2p, il periodo massimo possibile (2k -1) 2p-1

Deng e Lin [2000] propongono un generatore in cui a1 = 1 e gli altri aj = 0 eccetto per ak

( )modn n j n kx x x m = +

( )1 1mod con 1, , n n k n kx Bx x m a a B n k = + = =

23

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempi per limplementazio