Transcript
Page 2: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 3: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 4: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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.

Page 5: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

5

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Caratteristiche di qualità

• Uniformità• Indipendenza statistica• Riproducibilità• Periodicità• Efficienza• Portabilità• Jumping-ahead

Page 6: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 7: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

⎢ ⎥⎣ ⎦

Page 8: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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)

Page 9: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 10: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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 massimo

se c = 0 abbiamo il GLC Moltiplicativo

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

Page 11: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 12: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 13: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

13

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore Lineare Congruente Moltiplicativo

La ricorrenza del GLCM per gli interi èequivalente, nell’intervallo (0,1), alla ricorrenza

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

Page 14: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

14

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Restrizione dei valori in uscita all’intervallo (0,1)

• Analisi teorica

• Scelte alternative

[ ) 0,1ii i

xu 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)

Page 15: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

15

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Nell’implementazione il prodotto a xn-1 puòcausare 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)

Page 16: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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* è l’elemento

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)

Page 17: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 18: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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 sarà2,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− −= +

Page 19: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 20: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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−

=∑= − = −

Page 21: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

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

Page 22: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

22

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempi per l’implementazione 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− −= + = = ≥

Page 23: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

23

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempi per l’implementazione 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 ACM TransactionsTransactions on on ModelingModeling Computer Computer Simulation Vol. 13, n. 4, 2003)Simulation Vol. 13, n. 4, 2003)

Page 24: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

24

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

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

−+

+

≠ ∀

= − = − −

> ∀ < <

Page 25: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

25

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatore ricorsivo multiplo (G R M ) di ordine k

la ricerca e la generazione di polinomi primitivi modulo m non è banale poichéoccorre la fattorizzazione di

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

( ) ( )1 1kr m m= − −

Page 26: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

26

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

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

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

Page 27: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

27

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempio implementato 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 l’Ecuyer [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< = <⎢ ⎥⎣ ⎦

Page 28: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

28

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempio implementato di un GRM

codice C:h=x/q;x=ai∗(x-h∗q)-h∗r;if (x<0) x=x+m;Nell’esempio m =20∗a1+7=20.554∗a5+1727

( ) ( )mod , con , ,i iz a x m m m a x m= ∈ − ∈Z

Page 29: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

29

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Page 30: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

30

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Combinazione di generatori ricorsivi multipli (CGRM)

Se consideriamo j GRM il CGRM risultante può raggiungere il periodo massimo:

( )( )( )

1, 1,1 1, 1 1, 1, 1

2, 2,1 2, 1 2, 2, 2

1, 1 2, 2

...... mod

...... mod n n k n k

n n k n k

n n n

x a x a x m

x a x a x m

u x m x m

− −

− −

= +

= +

= −

( ) ( )1 m.c.m. 1 ........ 1k kjm mλ = − −

P. L'Ecuyer, Operations Research, 47, 1 (1999),P. L'Ecuyer, Operations Research, 47, 1 (1999),

Page 31: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

31

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempi di CGRM con buone proprietàstrutturali:

( ) ( )11

è primo

1 ... 12

j

k kj

j

r

m mλ −

− −=

Page 32: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

32

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Esempio implementato con k=3:MRG32k3a

La lunghezza del periodo è:

è soddisfatta la condizione:

in questo modo il prodotto aj,i xj,i è sempre ben rappresentato in floating point su un computer a 32 bit, con almeno 53 bits di precisione per la mantissa.

( )( )

321 11 12 13

322 21 22 23

2 209, , , (0,1403580,-810728)

2 22853, , , (527612,0,-1370589)

m a a a

m a a a

= − =

= − =

( ) 531 2j,i ja m − ≤

( )( )3 3 191 571 21 1 2 2 3.1*10m mλ = − − ≈ ∼

Page 33: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

33

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Page 34: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

34

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Riepilogo per una esatta implementazione di un GRM

Vincoli diversi ai coefficienti:• alcuni aj = 0

• il prodotto

• gli aj,i soddisfano la condizione:

( ) 531 2j,i ja m − ≤

( ), , mod j i j j i ja m a m<

Page 35: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

35

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Tipi diversi di applicazioni richiedono differenti vincoli sui moduli e sui moltiplicatori

• Una impl. in virgola mobile con 53 bit di precisione permette di avere moduli con più di 31 bit ⇒ periodi piùlunghi.

• Per computer a 64 bit, vengono richiesti gen. impl. con interi a 64 bit ⇒ occorrono tabelle di buoni parametri per tali gen.

• I generatori di numeri casuali sono un po’ come le automobili.

Page 36: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

36

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Congruenza Quadratica

Esempio:Parametri iniziali: X0 = 2, a=2,

b=3,c=1, m=4

X1 = (2*4+3*2+1) mod 4 = 3X2 = (2*9+3*3+1) mod 4 = 0X3 = (2*16+3*4+1)mod 4 = 1X4 = (2*1+3*1+1) mod 4 = 2X5 = (2*4+3*2+1) mod 4 = 3

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

( )21 1 modn n nX aX bX c m− −= + +

Page 37: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

37

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Congruenza inversa

dove x– è l’elemento moltiplicativo inverso di xmodulo m, se esiste, altrimenti x– = 0.

L’elemento moltiplicativo inverso x – di x modulo mè definito per tutti i valori x ≠ 0 e relativamente primi rispetto ad m tali che:

Buone proprietà di uniformità con particolare riferimento alla struttura reticolare e alla correlazione.

( )1 mod on 0i i ix ax c m c x m−+ = + ≤ <

1 modx x m−≡

Page 38: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

38

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Sequenza di Tausworthe

dove le variabili bi sono dei bite anche le costanti a1,a2,…..,aq assumuno valore 0 e 1.

Poiché il modulo è un numero primo la sequenza può raggiungere il periodo massimo λ = 2q –1 se il polinomio caratteristico associato:

è un polinomio primitivo su un campo di Galois (2) definito sugli interi 0, 1

( )( )1 1 2 2 ... mod 2i i i q i qb a b a b a b− − −= + + +

( ) ( )11 1...q q

q qf z z a z a z a−−= − + + +

Page 39: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

39

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Sequenza di Tausworthe

Consideriamo il caso

Operazione mod 2 è equivalente all’operatore or-esclusivo ( )

( )( )mod 2 con 0i i r i qb b b r q− −= + < <

i i r i qb b b− −= ⊕0 se

1 se i i r i q

i i r i q

b b b

b b b− −

− −

= =⎧⎨ = ≠⎩

Page 40: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

40

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Sequenza di TauswortheEsempio:Sia r = 3, q = 5 e Per i ≥ 6

I primi 42 bi sono111110001101110101000010010110011111000110

Il periodo dei bit è 31= 2q – 1

1 2 5... 1b b b= = = =3 5 i i ib b b− −= ⊕

bi-5bbii--55 bi-4bbii--44 bi-3bbii--33 bi-2bbii--22 bi-1bbii--11

SSS

+++

Page 41: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

41

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Sequenza di TauswortheSi pone ora il problema di estrarre dei numeri casuali interi

dalla sequenza binaria:• Si usa la ricorrenza per un numero sufficiente di volte,

diciamo L con L ≤ q, le L-uple di bi sono interpretate come un numero in base 2. Se L è primo rispetto a λ=2q –1 il periodo delle L-uple sarà ancora λ = 2q –1;

• Si legge la sequenza ogni L + (d scalature) con L ≤ q, si dimostra che se d è primo rispetto a λ = 2q –1 il periodo delle L-uple sarà ancora λ = 2q –1;

• (GFSR) si selezionano dalla stringa L ≤ q bit non consecutivi, distanziati g bit l’uno dall’altro. Ogni nuovo numero è ottenuto spostandosi di un bit rispetto ai precedenti.

Page 42: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

42

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

LinearLinear Feedback Feedback ShiftShift RegisterRegister

USCITAs

XOR

xp-1 xp-2 x q x1 x0

Page 43: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

43

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

F.S.R. per la crittografia

Page 44: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

44

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Selezione del seme in un generatore di numeri random

Le successive condizioni permettono maggiore affidabilità per il generatore:•Non usare lo zero•Evitare i numeri pari: es. GLCM con modulo 2k

•Non suddividere una sequenza usando valori adiacenti per simulare più variabili richieste dal modello. Come risultato ho una forte correlazione fra le due variabili.•Non usare semi casuali.

Page 45: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

45

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Metodi per ottenere sequenze di numeri casuali distinte utilizzando lo stesso generatore

•Utilizzare per ogni sequenza un seme diverso.Svantaggio: si possono avere delle sottosequenze sovrapposte.

•Jumping-ahead: utilizzare un seme iniziale e prendere, per ogni variabile da simulare, sottosequenze diverse e non sovrapposte

– GLCM

– GLC ( )0

1mod

1

nn

n

c ax a x m

a−

= +−

0 modnnx a x m=

0 1 2 1 2, , ,..........., , , ,...n n nx x x x x x+ +

Page 46: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

46

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

- GRMSia λ la lunghezza del periodosn lo stato del generatore al passo n T la funzione di transizione ⇒ T(sn) = sn+1 , Tλ(s) = s

Ad esempio vogliamo due sequenze distinte di lunghezza Z.

Primo caso: dato s0 genero Z valori, ottengo lo stato sze inizio la nuova sottosequenza usando come seme sz+1 . Ho due sott.ze non sovrapposte Z+Z < λ .

Se serve un num. grande di sott.ze diverse il calcolo di tutti gli stati iniziali diventa piuttosto oneroso.

Page 47: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

47

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Secondo caso: Per ottenere il valore dello stato arbitrario sn+z a partire dallo stato sn si calcola

con

La matrice (Az mod m) viene calcolata una sola volta e viene utilizzata tutte le volte che occorre una nuova sott.za di dimensione z.

( )mod mod modz zn z n ns A s m A m s m+ = =

1 1

0 1 . . 0. . .. . .0 0 . . 1

. .k k

A

a a a−

⎛ ⎞⎜ ⎟⎜ ⎟

= ⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

1 1

1

( ... )mod mod

n n k n k

n n

x a x a x mx A X m

− −

= + +

=

P. L'Ecuyer, Operations Research, 50, 6 (2002),P. L'Ecuyer, Operations Research, 50, 6 (2002),

Page 48: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

48

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Per grandi valori di z si calcola la matrice (Az mod m)usando l’algoritmo divide et impera:

il n.ro di moltiplicazioni matriciali sarà O (log2z).

( )( )( )

2 2

1

mod mod mod se è parimod

mod mod se è dispari

z zz

z

A m A m m zA m

A A m m z−

⎧⎪= ⎨⎪⎩

Knuth, The art of computer programming (1998)Knuth, The art of computer programming (1998)

Page 49: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

49

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Falsi dettagli• Un insieme complesso di operazioni conducono a

risultati random che superano test di uniformità ed indipendenza;

• Un solo test come ad es. il test chi-quadro èsufficiente a stabilire la “bontà” di un generatore

• I numeri random sono non prevedibili• Non è importante una esatta implementazione • I bit delle parole successive generate da un

generatore sono ugualmente distribuite. Se un algoritmo crea dei n. random di ampiezza l bit, la casualità è garantita soltanto quando vengono usati tutti gli l bit per formare successivi numeri random

Page 50: Generazione di numeri casuali - uniroma2.it · • Periodicità • Efficienza • Portabilità ... Generazione di numeri casualiGenerazione di numeri casuali Restrizione dei valori

50

Generazione di numeri casualiGenerazione di numeri casualiGenerazione di numeri casuali

Generatori di numeri casualiI generatori di numeri casuali usano una sorgente non deterministica (un fenomeno fisico).Esempio(2004): la sorgente sono dei fotoni inviati su uno specchio semitrasparente. Viene associato il valore 0 o 1 ai due eventi esclusivi (trasmissione o riflessione)

http://www.idquantique.com/products/quantis.htmhttp://http://www.idquantique.com/productswww.idquantique.com/products/quantis.htm/quantis.htm


Top Related