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

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

Post on 15-Feb-2019

214 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Daniela Picin

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali2

Testi di consultazione

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

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

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali3

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

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali4

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.

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali5

Caratteristiche di qualit

Uniformit Indipendenza statistica Riproducibilit Periodicit Efficienza Portabilit Jumping-ahead

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali6

Metodi di generazione

Congruenza lineare Generatore lineare congruente (GLC) Generatore Ricorsivo Multiplo e gen. Fibonacci Sequenze di Tausworthe Generatore add with carry Generatore substract with borrow Generatore multiply with carry

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali7

Metodi di generazione

Congruenza non lineare Congruenza quadratica Congruenza inversa

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

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali8

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+ = + =

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali9

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

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali10

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 Transactions on Modeling Computer (ACM Transactions on Modeling Computer Simulation Vol. 13, n. 4, 2003)Simulation Vol. 13, n. 4, 2003)

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali11

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 Transactions on Modeling Computer (ACM Transactions on Modeling Computer Simulation Vol. 13, n. 4, 2003)Simulation Vol. 13, n. 4, 2003)

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali12

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 = + + >

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali13

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 = +

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali14

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],

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali15

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== =

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali16

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 = +

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali17

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 = + = =

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali18

Esempi per limplementazione di un GRM

Nel 2003 Deng e Xu propongono dei GRM di ordine k, chiamati DX-K generators, dove gli aj 0 della ricorrenza sono tutti uguali.

Nel caso di un GRM DX-k-2 avremo:

Es. per k=1511 e m =231 55719 hanno trovato un DX-1511 con un periodo 1014100.5

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

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

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali19

Generatore ricorsivo multiplo (G R M ) di ordine k

La difficolt nella ricerca del periodo massimo.

CNES perch il polinomio caratteristico f(x)sia un polinomio primitivo modulo m :( ) ( )( )( )

( ) ( )( )( ) ( )( ) ( ) ( )( ) ( )( )( )

11

1r

r

-1 mod 1 fattore primo di 1

x mod mod 1 mod dove 1 1

x mod mod ha grado 0 fattore primo di , 1

m skk

k kk

a a m s m -

b f x m a m r m m

c f x m s r s r

+

+

= =

> <

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali20

Generatore ricorsivo multiplo (G R M ) di ordine k

la ricerca e la generazione di polinomi primitivi modulo m non banale poichoccorre la fattorizzazione di

in generale si cercano dei valori di m e k tali che r primo

( ) ( )1 1kr m m=

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali21

Generatore ricorsivo multiplo (G R M ) di ordine k

TabellaAlcuni valori di m e k tali che m, (m-1)/2 e r siano primi

(LEcuyer, Operation Research Vol. 47, n. 1, 1999)(L(LEcuyer, Operation Research Vol. 47, n. Ecuyer, Operation Research Vol. 47, n. 1, 1999)1, 1999)

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali22

Esempio di un GRM

Consideriamo un generatore del 5 ordine (k=5)con m=231-1 a1=107374182 a5=104480 a2= a3= a4=0.

Il prodotto modulo m calcolato usando la tecnica descritta da lEcuyer [1990]: i coefficienti ai soddisfano la seguente condizione:

la condizione (1) verificata

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

( )(1) mod dove con i i i ia m a m m a q r r a i< = + <

2i o per ia m a m j j m< =

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali23

Esempio implementato di un GRM

codice C:h=x/q;x=ai(x-hq)-hr;if (x

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali24

Combi

View more >