Generazione ed uso di numeri pseudocasuali



Documenti analoghi
Generazione di numeri random. Distribuzioni uniformi

Teorema del limite centrale TCL

Sperimentazioni di Fisica I mod. A Statistica - Lezione 2

Teoria dei Fenomeni Aleatori AA 2012/13

Teoria dei Fenomeni Aleatori AA 2012/13

Simulazione dei dati

2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme

RICHIAMI DI CALCOLO DELLE PROBABILITÀ

LA DISTRIBUZIONE NORMALE o DI GAUSS

Distribuzioni di Probabilità

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

Variabili aleatorie Parte I

Tecniche di simulazione

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

Dispensa sulla funzione gaussiana

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

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

Distribuzione Normale

Indice. centrale, dispersione e forma Introduzione alla Statistica Statistica descrittiva per variabili quantitative: tendenza

PROBABILITÀ - SCHEDA N. 3 VARIABILI ALEATORIE CONTINUE E SIMULAZIONE

Valutazione incertezza di categoria B

Teorema del limite centrale TCL Questo importante teorema della statistica inferenziale si applica a qualsiasi variabile aleatoria che sia combinazion

Generatori di numeri casuali

Risultati esperienza sul lancio di dadi Ho ottenuto ad esempio:

STIMA DELLA VARIANZA CAMPIONARIA

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

Variabili aleatorie. Variabili aleatorie e variabili statistiche

Elaborazione statistica di dati

STATISTICHE, DISTRIBUZIONI CAMPIONARIE E INFERENZA

Statistica. Matematica con Elementi di Statistica a.a. 2017/18

7. STATISTICA DESCRITTIVA

Statistica. Matematica con Elementi di Statistica a.a. 2015/16

Programmazione con Foglio di Calcolo Cenni di Statistica Descrittiva

Generazione di Numeri Casuali- Parte 2

Capitolo 7. Distribuzioni campionarie. Statistica. Levine, Krehbiel, Berenson

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Elementi di Statistica

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 =

Distribuzione Normale

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

Generazione di numeri casuali

QUANTIZZAZIONE E CONVERSIONE IN FORMA NUMERICA

Unità Didattica N 2 Le funzioni

LE DISTRIBUZIONI CAMPIONARIE

METODO DI CAVALIERI-SIMPSON (o delle parabole) (per il calcolo approssimato 1 di integrali definiti)

NUMERI CASUALI E SIMULAZIONE

Classi: Prime IA; IB; IC; ID; IE; IF Disciplina: MATEMATICA Ore settimanali previste: 4

Esercizio 1. Ricavi 102,3 105,6 100,7 105,2 104,8 104,6 100,7 100,2 100,9 102,7 95,4 120,7

La codifica. dell informazione

CALCOLO DELL ERRORE E VALUTAZIONE DI UN METODO ANALITICO

Teoria della probabilità Variabili casuali

Variabili casuali. - di Massimo Cristallo -

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

Classi: Prime Disciplina: MATEMATICA Ore settimanali previste: 4

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica

PROBABILITA. Distribuzione di probabilità

Transcript:

Generazione ed uso di numeri pseudocasuali.c. Neve Numeri pseudocasuali 1

Nella maggior parte dei problemi di simulazione di sistemi reali è molto sentita l esigenza di poter utilizzare variabili casuali aventi una ben determinata distribuzione statistica anche se, quasi sempre, la richiesta si riferisce a numeri casuali uniformemente distribuiti in un certo intervallo di valori. La simulazione di sistemi probabilistici può fornire risultati tanto più affidabili quanto maggiore è il numero di eventi con i quali si sollecita il sistema, è quindi evidente che simili problemi dovranno essere affrontati con l aiuto di elaboratori elettronici i quali, per definizione, sono degli automi deterministici a stati finiti e quindi non idonei alla generazione di eventi casuali. Solo attraverso lo sviluppo di opportuni algoritmi è possibile generare numeri casuali che però non potranno mai essere effettivamente casuali e pertanto vengono detti pseudocasuali. ffinché questi algoritmi possano essere ritenuti validi dovranno soddisfare alcune specifiche caratteristiche: Uniforme distribuzione statistica in un certo intervallo di valori Indipendenza statistica Riproducibilità della sequenza di valori Non ripetitività su un prefissato periodo lta velocità di generazione Minimo utilizzo dello spazio di memoria In questa sede, saranno volutamente trascurati i metodi di generazione analogica i quali, pur risultando effettivamente casuali, richiedono dell hardware aggiuntivo e presentano alcuni tipi di inconvenienti come la non riproducibilità delle sequenze, instabilità e criticità del controllo. Il primo metodo storicamente noto per la generazione di numeri pseudocasuali è attribuito a Von Neuman ed è detto Metodi dei Quadrati Centrati middle square, esso si sviluppa secondo le seguenti modalità: si sceglie a caso un numero di n cifre detto seme se ne calcola il quadrato si aggiungono a sinistra eventuali zeri fino ad arrivare a n cifre si eliminano le prime n/ cifre e le ultime n/ cifre il numero ottenuto è pseudocasuale e viene usato per ottenere il successivo questo metodo presenta l inconveniente che i numeri generati non hanno una uniforme distribuzione statistica e che il periodo risulta molto breve. Un metodo alternativo, derivato da quello di Von Neuman, è detto Metodo dei Prodotti Centrati. Questo metodo parte con il prodotto di due numeri di n cifre e la successiva estrazione delle n cifre centrali. Questo metodo è affetto dagli stessi problemi del precedente ma presenta una ciclicità più lunga. Operando con numeri a quattro cifre, la ciclicità non supera alcune migliaia ed è molto frequente la tendenza a convergere verso lo zero..c. Neve Numeri pseudocasuali

METODI CONGRUENZILI I metodi più utilizzati per la generazione di numeri pseudocasuali sono quelli congruenziali i quali utilizzano l aritmetica modulare. Dati due numeri e l operatore mod è così definito: mod INT/* se 0 mod se 0 Modulo In pratica è il resto della divisione intera Sono poi definite le seguenti operazioni: ddizione modulare 1 + 16 mod 17 11 Prodotto modulare 8*10 mod 17 1 Inversione -1 9 infatti *9 mod 17 1 Dati due numeri e, essi si dicono congruenti modulo M se la loro differenza risulta essere multipla intera del loro modulo. Congruenza Per es. 0 ed 8 sono congruenti modulo 4 Infatti: 0 mod 8 4 e poi 0 8 1 che è multiplo intero di 4 e si ha che 0 mod 4 8 mod 4 nalogamente 18 e 16 sono congruenti modulo. I metodi congruenziali, usati per la generazione di sequenze di numeri pseudocasuali, si basano su una relazione di congruenza esprimibile attraverso una relazione ricorsiva del tipo: X + X C mod M con X i,, C ed M interi arbitrari non negativi. i 1 i + ssegnato un valore X o di innesco diverso da zero, il modulo M e le costanti e C, è possibile determinare tutti i successivi valori della sequenza che risulterà così riproducibile. Esiste sempre un valore h dell indice i tale che X h X o, si ha così la ripetizione della sequenza dopo un periodo h che dipende dai valori di, C, M. Questo indice h esiste perchè i resti della divisione per M possono essere solo 0,1,,... M-1 pertanto, al massimo dopo M cicli verrà generato il valore iniziale. I metodi congruenziali più noti sono quelli di Lehmer detto moltiplicativo e di Rotemberg detto misto. Esiste anche il metodo di Fibbonacci detto additivo che però utilizza una relazione di congruenza leggermente diversa da quella prima introdotta. Ci sono infine i metodi di MacLaren e Marsaglia che sfruttano un metodo composito dei primi due..c. Neve Numeri pseudocasuali 3

METODO di LEHMER Questo metodo prevede per la costante C il valore nullo per cui la relazione di congruenza diventa: X i+ 1 X mod M I valori di ed M dipendono generalmente dal tipo di elaboratore utilizzato. Solitamente si attribuisce ad M il valore n con n pari al grado di parallelismo dell elaboratore usato. La costante deve risultare prima rispetto ad M e diversa da 1 così da evitare la generazione di una sequenza di numeri uguali. lcuni autori suggeriscono l utilizzo della massima potenza dispari di 5 tale che < n. ltri invece consigliano l uso di un valore di sufficientemente grande e tale che nella sua rappresentazione binaria non vi siano troppi zeri. ltri ancora, infine, propongono l uso di un valore di ricavato dalla relazione 1+ + 8 k con K 1,,3,4..., in modo che risulti congruente con 3 secondo il modulo 8. I numeri pseudocasuali che si ottengono risultano compresi nell intervallo ]0 M[. Per ottenere un generatore standard nell intervallo ]0 1[ sarà sufficiente dividere per M i valori ottenuti. Il generatore così ottenuto potrebbe sembrare caratterizzato da una distribuzione continua dei valori nell intervallo ]0 1[, in realtà è sempre discreto e con un passo di discretizzazione pari ad 1/M. Una volta realizzato il generatore di numeri pseudocasuali sarebbe necessario verificare se le sequenze ottenute soddisfano le specifiche richieste per mezzo di opportuni test la cui validità è comunque sempre relativa. É possibile dimostrare che nessuna classe finita di prove può garantire la pseudocasualità di una sequenza finita di numeri, si può infatti verificare che una sequenza di numeri, pur avendo superato un certo numero di test, non sia idonea per una specifica applicazione. Si può asserire quindi che: il fatto che una o più sequenze di numeri generati per mezzo di un algoritmo iterativo che soddisfi un certo insieme di test statistici è una condizione necessaria ma non sufficiente a garantire la pseudocasualità sella sequenza stessa. Esistono in bibliografia molti tipi di test, i più noti sono: il test di frequenza, il test di autocorrelazione, il test di autocovarianza, il test del chi-quadro oltre a quelli più elementari come i test della media, della varianza e del valor quadratico medio. Per questi ultimi test si ottengono i seguenti valori: Valori attesi 75 M 65536 783 M 6559 Media 0.5000000 0.4999999 0.4653915 Varianza 0.0833333 0.083333 0.0833781 Valor Quadratico Medio 0.3333333 0.333331 0.999674 i.c. Neve Numeri pseudocasuali 4

METODO di ROTEMERG Questo metodo è detto misto in quanto utilizza la relazione di congruenza nella sua forma più completa: X X i+ 1 i + C mod M nche in questo caso i valori di, C ed M dipendono dal tipo di elaboratore usato. Esiste un teorema il quale asserisce che: Una sequenza congruente lineare presenta un periodo pari ad M se e solo se: C ed M sono primi tra loro -1 è multiplo intero di P per ogni numero P che divide M Se M è multiplo di 4, -1 è multiplo dello stesso valore Di solito si sceglie per M il valore n con n grado di parallelismo del computer usato. Per la costante, la maggior parte degli autori suggerisce un valore fornito dalla relazione s + 1 con s Questa scelta è molto conveniente se il software è scritto in assembly in quanto il tempo di esecuzione può essere ridotto realizzando il prodotto X i tramite uno schift a sinistra di s posizioni del registro contenente X i e poi sommando 1. Per il valore della costante C l importante è che sia prima rispetto ad M e dispari. Le sequenze di numeri pseudocasuali che si possono ottenere con il metodo di Rotemberg sono generalmente più lunghe di quelle ottenibili con il metodo di Lehmer. Per quel che riguarda il comportamento statistico, i due metodi possono ritenersi simili. Valori attesi 19 C1 3773 C3 M 65536 M 65536 Media 0.5000000 0.4997787 0.4979933 Varianza 0.0833333 0.0833130 0.0839504 Valor Quadratico Medio 0.3333333 0.3330918 0.3309477.C. Neve Numeri pseudocasuali 5

METODO di FIONCCI Questo metodo è un caso particolare dei metodi additivi utilizzati per cercare di rendere ancor più lunghe le sequenze generabili. L idea di base consiste nel far dipendere il valore X n+1 da entrambi i valori X n ed X n-1 invece che solo da X n. In queste condizioni il periodo della sequenza può arrivare fin a M. Il più semplice di questi metodi è quello di Fibonacci X X X 1 mod M i+ 1 i + i che però non risulta statisticamente molto affidabile. Il metodo più generale ed un pò più efficiente è: X X X i+ 1 i + ik mod M Mitchell e Moore hanno messo a punto questa versione: X X X 55 mod M i+ 1 i4 + i con M pari e X o, X 1,...X 54 interi arbitrari non tutti pari. Le costanti 4 e 55 non sono scelte a caso ma sono valori che consentono un periodo teorico della sequenza pari a 55 1 in realtà è inferiore. I valori 4 e 55 sono detti lags e la sequenza è nota come lagged Fibonacci LFG Una evoluzione di questo metodo è poi quello dei generatori LFG paralleli. Per quel che riguarda i metodi congruenziali, autorevoli riferimenti bibliografici consigliano: M C Knuth 31 Intπ*10 8 31415965 45380654 Goodman Miller 31-1 7 5 0 Gordon 31 5 13 0 Leormont Lewis 31 16 + 3 65539 0.C. Neve Numeri pseudocasuali 6

GENERTORI STNDRD La maggior parte dei software applicativi e dei linguaggi di programmazione mettono a disposizione degli utenti delle funzioni per la generazione di numeri pseudocasuali con distribuzioni uniformi nell intervallo 0 1. Questi generatori vengono molto spesso considerati continui ma in realtà risultano discreti anche se con un passo di discretizzazione molto piccolo. Da quanto visto in precedenza, un generatore di numeri pseudocasuali genera numeri interi compresi nell intervallo 1 M, quindi discreto. Un generatore standard si ottiene dividendo per M tutti i numeri generati con i metodi prima esposti. Per M 65536, i numeri generati saranno distanziati tra loro di un passo di discretizzazione pari a 1/M e cioè di 0.00001559 mentre per M 31 il passo risulterà di 4.65661 10-10, l entità di quest ultimo valore consente pertanto, con buona approssimazione, di considerare il generatore come se fosse continuo. Qualsiasi sequenza di numeri pseudocasuali può essere sempre generata partendo da un generatore standard di numeri pseudocasuali. Un generatore continuo di numeri pseudocasuali compresi nell intervallo N 1 N si ottiene operando un semplice cambio di scala sui valori generati da un generatore standard: si moltiplica il numero compreso nell intervallo 0 1 per la differenza N N 1 e si aggiunge poi N 1. GENERTORI DISCRETI L esempio classico è quello della simulazione del lancio di un solo dado che rappresenta il tipico esempio di generatore discreto equiprobabile dado non truccato!. Si consideri un generatore standard di numeri pseudocasuali compresi nell intervallo [0 1[. Il numero generato dal lancio di un dado di otterrà dalla relazione: N DDO INTERON casuale * 6 + 1 Infatti: moltiplicando per 6 il numero N casuale, il suo valore sarà compreso tra 0 e 5.999999 estraendone l intero, il suo valore potrà essere 0, 1,, 3, 4, 5 sommando infine 1, il suo valore potrà essere 1,, 3, 4, 5, 6 cioè come un dado. Essendo questo generatore equiprobabile, ci si aspetta di ottenere una sequenza che contenga la stessa quantità di 1,, 3, 4, 5, e 6. Questa verifica può essere effettuata per mezzo dell esame dell istogramma di frequenza. Nella figura seguente si può osservare l istogramma di frequenza della simulazione di 600 lanci di un dado. Il risultato non sembra molto soddisfacente in quanto solo il 4 si è verificato un numero di volte pari a quella atteso 100 mentre il 3 ed il 5 sono molto lontani. Un indice della qualità di questa sequenza può essere ottenuto calcolando il ripple del grafico: Ripple Ma Min/Valore-atteso 113 85/100 % 8% Come si vede il risultato è alquanto scadente poiché il campione usato è molto piccolo e di conseguenza la simulazione che si effettuerà non sarà attendibile..c. Neve Numeri pseudocasuali 7

L attendibilità della simulazione di un sistema probabilistico è notevolmente influenzata dalle caratteristiche del campione usato e dalla sua dimensione. In questo semplice esempio la stabilità dei risultati dipende essenzialmente dalla dimensione del campione usato. Ponendo N 10.000 lanci si ottiene un ripple del 10% circa Ponendo N 30.000 lanci si ottiene un ripple del 5% circa Ponendo N 50.000 lanci si ottiene un ripple del 3% circa Ponendo N 100.000 lanci si ottiene un ripple del % circa Ponendo N 00.000 lanci si ottiene un ripple dell'1% circa Ponendo N 1.000.000 lanci si ottiene un ripple dello 0.5 % circa Queste informazioni sono di estrema importanza per valutare l'attendibilità di una simulazione operata con questi tipi di sequenze numeriche. Simili considerazioni risultano valide per la simulazione del lancio di due dadi provare. Un pò diversa è invece la realizzazione di generatori discreti con distribuzione non uniforme. Il metodo più usato è quello della probabilità cumulata con griglia di uscita. In pratica si utilizzano gli intervalli della probabilità cumulata come griglia per la selezione dell evento da generare. Si consideri come esempio un generatore discreto di numeri interi compresi tre 1 e 9 avente la seguente distribuzione di probabilità: come si può notare la somma delle probabilità dei nove eventi è pari ad 1..C. Neve Numeri pseudocasuali 8

Con questa distribuzione si costruisce la seguente griglia nella quale l ampiezza di ogni intervallo è proporzionale alla probabilità dell evento corrispondente: 0 0.0 0.35 0.45 0.49 0.51 0.55 0.65 0.80 1.0 1 3 4 5 6 7 8 9 Il funzionamento del metodo è il seguente: per mezzo di un generatore standard equiprobabile si genera un numero compreso tra 0 ed 1 si individua l intervallo della griglia al quale appartiene il numero si associa il valore della griglia di uscita appartenente all intervallo per es. se il numero generato è pari a 0.45456, appartenendo all intervallo 0. 0.35, il valore generato in uscita sarà il ; se il numero generato è pari a 0.63908, appartenendo all intervallo 0.55 0.65, il valore generato in uscita sarà il 7. GENERTORI CONTINUI CON DISTRIUZIONE NON UNIFORME Disponendo di un generatore standard con distribuzione continua ed uniforme nell intervallo 0 1 di numeri pseudocasuali è possibile generare delle sequenze continue con qualsiasi distribuzione di probabilità per mezzo della trasformazione inversa. Si consideri una variabile casuale continua avente funzione di densità di probabilità f. Di questa funzione si determina la corrispondente funzione di ripartizione F r F 0 f d si rammenta che la funzione di ripartizione F di una variabile aleatoria indica la probabilità che la variabile assuma un valore minore o uguale ad Si determina poi l espressione analitica se esiste della funzione inversa cioè F -1 r. La determinazione del campione della variabile si ottiene generando un valore di r compreso tra 0 ed 1 e sostituendolo nell espressione della funzione di ripartizione inversa. GENERTORI CON DISTRIUZIONE LINERE Si consideri una distribuzione lineare con la seguente densità di probabilità: f - P.C. Neve Numeri pseudocasuali 9

.C. Neve Numeri pseudocasuali 10 Dovendo risultare l area sottesa dalla curva uguale a 1, si ha che il valore massimo nel punto sarà pari a: h h S 1 1 L equazione della retta congiungente i punti e P 0 1 0 0 1 0 y y y y risulta essere: f La sua funzione di ripartizione è data da: r d d f F operando la trasformazione inversa della funzione di ripartizione si ottiene: r + usando per r un valore compreso nell intervallo [0 1] e generato per mezzo di un generatore standard, si ottiene per un campione appartenente ad una distribuzione lineare. Nel caso di una distribuzione lineare con pendenza negativa si ha che: r f Nelle figure seguenti sono proposti i grafici delle distribuzioni di frequenza relativi alla simulazione di un generatore di numeri pseudocasuali con distribuzione lineare tra 10 e 100 rispettivamente per la generazione di 10.000 ed 1.000.000 di campioni.

GENERTORI CON DISTRIUZIONE ESPONENZILE La generica rappresentazione di una distribuzione esponenziale decrescente è la seguente: f λ λ λ e con λ > 0 e λ e d 1 0 f λ La rappresentazione così proposta garantisce l unitarietà dell area sottesa dalla curva. La relativa funzione di ripartizione risulta: F λ λ f d λ e d 1 e 0 0 operando la trasformazione inversa della funzione di ripartizione si ha che: 1 ln1 r con r compreso nell intervallo [0 1[ λ r con r estratto da una distribuzione uniforme per mezzo di un generatore standard. λ rappresenta la frequenza media di interarrivo se rappresenta il tempo e 1/λ è il tempo medio di interarrivo. Nelle figure seguenti sono proposti i grafici delle distribuzioni di frequenza relativi alla simulazione di un generatore di numeri pseudocasuali con distribuzione esponenziale con λ 0.8 rispettivamente per la generazione di 10.000 ed 1.000.000 di campioni..c. Neve Numeri pseudocasuali 11

GENERTORI CON DISTRIUZIONE GUSSIN La generica rappresentazione di una distribuzione gaussiana è la seguente: f µ 1 σ σ e π con µ media e σ deviazione standard si rammenta che, nell intervallo µ ±3 σ ricadono il 99.7% dei campioni f µ - 3σ µ µ + 3σ In questo caso non esiste, in forma esplicita, la funzione F di ripartizione per cui non è possibile far uso del metodo della trasformazione inversa. Una distribuzione gaussiana può essere sufficientemente approssimata dalla somma di un certo numero di campioni estratti da distribuzioni uniformi 0 1 generatori standard, il numero di questi generatori è compreso tra 10 e 4 ma generalmente si consiglia 1. La relazione matematica attraverso la quale è possibile ottenere una accettabile sequenza di numeri con distribuzione gaussiana con media µ e scarto σ è la seguente: N σ N µ + ri N / 1 i 1 con N numero di generatori standard ed r i generico campione di tali generatori. Per N 1 la precedente relazione diventa: 1 µ + σ i 1 r i 6 Nelle figure seguenti sono proposti i grafici delle distribuzioni di frequenza relativi alla simulazione di un generatore di numeri pseudocasuali con distribuzione gaussiana con µ 0 e σ 1 rispettivamente per la generazione di 10.000 ed 1.000.000 di campioni..c. Neve Numeri pseudocasuali 1

GENERTORI HRDWRE DIGITLI La generazione di numeri pseudo casuali si ottiene facendo uso di registri a scorrimento shift register retroazionati tali cioè da riportare in ingresso un segnale proveniente dalla combinazione dei bit di uscita. Un registro a scorrimento di M bit viene pilotato con un clock a frequenza f o. L ingresso del registro a scorrimento viene pilotato dall uscita di una porta e-or i cui ingressi sono collegati alle uscite del registro a scorrimento N e M una delle quali è sempre l ultimo bit M. La lunghezza massima della sequenza di numeri così ottenibile è pari a M -1 poiché lo stato formato da tutti zero bloccherebbe la generazione dei numeri. Questo valore della lunghezza della sequenza può essere ottenuto solo con una opportuna scelta dei valori di N ed M. Una volta generata l intera sequenza, questa tornerà a ripetersi in modo periodico. La tabella seguente descrive i valori di M ed N e le relative lunghezze delle sequenze ottenibili. M N Lunghezza 4 3 15 5 3 31 6 5 63 7 6 17 9 5 511 10 7 103 11 9 047 15 14 3767 0 17 1048575 5 33554431 31 8 147483647 35 33 34359738367 39 35 549755813887 1 3 N M.C. Neve Numeri pseudocasuali 13

Nel caso in cui si volessero utilizzare dei registri di dimensione multipla di 8 bit, si dovranno utilizzare più di due linee di retroazione come descritto dalla seguente tabella. M N1 N N3 Lunghezza 8 4 5 6 55 16 4 13 15 65535 4 17 3 1677715 Nelle figure seguenti sono proposti i circuiti di due generatori di numeri pseudocasuali rispettivamente ad 8 e 16 bit..c. Neve Numeri pseudocasuali 14

METODO DI MONTECRLO Il metodo di Montecarlo fu ideato da S. Ulam e J. Von Neumann altre fonti lo attribuiscono ad E. Fermi per lo studio di problemi troppo complessi per essere risolti analiticamente o troppo costosi per essere affrontati sperimentalmente. Questo metodo, basato sulla tecnica del campionamento casuale, fu usata dal naturalista uffon per la determinazione del valore del π per mezzo della misura della posizione di un ago ripetutamente lanciato su un foglio quadrettato. Il metodo di Montecarlo consente il raggiungimento di attendibili risultati in situazioni anche molto complesse grazie alla legge dei grandi numeri per la quale un fenomeno statistico tende a fornire risultati deterministici se sollecitato con un numero molto elevato di eventi casuali. L esecuzione delle simulazioni dovranno iniziare con un numero limitato di eventi che sarà poi man mano aumentato in modo da verificare la tendenza dei valori a stabilizzarsi nell intorno dei risultati cercati. L esempio classico dell uso del metodo di Montecarlo è la misura del valore di π. Si consideri un quadrato di lato unitario contenente al suo interno un arco di cerchio di raggio unitario centrato nell origine. Per mezzo di un generatore di numeri pseudocasuali compresi nell intervallo [0,1] ed uniformemente distribuiti, verranno generate delle coppie Xn,Yn che rappresenteranno dei punti all interno del quadrato. Tutti questi punti dovranno essere divisi in due gruppi: quelli appartenenti a tutto il quadrato e quelli appartenenti al settore circolare. Essendo il generatore equiprobabile, è ragionevole ipotizzare che il numero di punti presenti nelle due aree risulti proporzionale al valore delle aree stesse e cioè: Numero di punti interni al settore circolare Numero di punti interni al quadrato rea del settore circolare rea del quadrato π r r / 4 π 4 da cui: π 4 N N punti cerchio totale di punti in quanto il numero di punti interni al quadrato corrisponde al numero totale di punti usati per la simulazione. Il conteggio dei punti interni al settore circolare si ottiene valutando, per ogni punto, la distanza del punto dall origine e cioè se:.c. Neve Numeri pseudocasuali 15

D X + Y 1 allora il punto appartiene al settore altrimenti al quadrato. n n n I risultati ottenibili dalle simulazioni presentano degli errori con i seguenti ordini di grandezza: Numero totale di punti Errore sul calcolo del π 100 6% 1.000 % 10.000 0,5% 100.000 0,1% 1.000.000 0,04% Un altro classico esempio riguarda il calcolo dell integrale definito. Si rammenta che, dal punto di vista geometrico, il valore di un integrale definito coincide con il valore dell area sottesa dalla curva tra i due estremi di integrazione. Si consideri come esempio la funzione: f 3 + + 1 ed il relativo integrale definito: INTEGRLE f d 3 + + 1 5 1 15 nche in questo caso, per mezzo di un generatore di numeri pseudocasuali uniformemente distribuiti, verranno generate delle coppie Xn,Yn tali che: Xn sia compreso tra e Yn si compreso in questo caso tra 0 ed f in generale è necessario valutare, caso per caso, la dimensione verticale del rettangolo..c. Neve Numeri pseudocasuali 16

Tutti questi punti dovranno essere divisi in due gruppi: quelli appartenenti a tutto al rettangolo e quelli appartenenti all area sottesa dalla curva. Essendo il generatore equiprobabile, è ragionevole ipotizzare che il numero di punti presenti nelle due aree risulti proporzionale al valore delle aree stesse e cioè: f d Numero di punti nell'area sottesa dalla curva rea sottesa dalla curva Numero di punti interni al rettangolo rea del rettangolo f da cui: Numero di punti nell'area sottesa dalla curva f d f Numero totaledi punti Il conteggio dei punti appartenenti all area sottesa dalla curva si ottiene confrontando il valore della funzione nel punto Xn con il valore di Yn e cioè: se f Xn Yn allora il punto appartiene all area sottesa dalla curva. I risultati ottenibili dalle simulazioni presentano degli errori con i seguenti ordini di grandezza: Numero totale di punti Errore sul calcolo dell integrale 100 10% 1.000 4% 10.000 % 100.000 1,7% 1.000.000 1,3% Un ulteriore classico esempio è quello del lancio di due dadi. E ben noto che il funzionamento del sistema consiste nel lancio di due dadi e la successiva somma dei due singoli risultati. Le combinazioni dei possibili risultati possono essere schematizzate dalla seguente tabella: 1 3 4 5 6 1 3 4 5 6 7 3 4 5 6 7 8 3 4 5 6 7 8 9 4 5 6 7 8 9 10 5 6 7 8 9 10 11 6 7 8 9 10 11 1 Come si può notare, il ed il 1 si possono ottenere solo con una singola combinazione 1+1 e 6+6 senza altre possibilità, mentre il 7 è ottenibile con diverse combinazioni 6+1, 5+, 4+3, 3+4, +5, 1+6. E pertanto ragionevole ipotizzare che la probabilità di ottenere il 7 è superiore a quella di ottenere il o il 1. In considerazione del fatto che il numero totale di eventi è 36, è possibile calcolare le probabilità teoriche dei singoli eventi..c. Neve Numeri pseudocasuali 17

Valore 3 4 5 6 7 8 9 10 11 1 Probabilità 1/36 /36 3/36 4/36 5/36 6/36 5/36 4/36 3/36 /36 1/36 Prob. %.77% 5.55% 8.33% 11.11% 13.88% 16.66% 13.88% 11.11% 8.33% 5.55%.77% La simulazione di questo sistema è abbastanza semplice: per mezzo di due generatori standard [0 1[ equiprobabile si simulano i due dadi per mezzo della relazione: N DDI N DDO1 + N DDO INTERON1 casuale *6+1 + INTERON casuale *6+1 La distribuzione degli eventi risulterà triangolare con il massimo in corrispondenza del 7. I risultati ottenibili dalle simulazioni presentano dei valori della probabilità degli eventi caratterizzata dai seguenti ordini di grandezza: Prob. con N500 Prob. con N1500 Prob. con N10000 Prob. con N50000 Prob. con N1000000 3.4.56.86.75.79 3 5.4 5.9 5.5 5.37 5.58 4 7.6 8.3 8.56 8.44 8.9 5 11.6 8.84 11.8 11.0 11.14 6 14 15. 13.18 13.91 13.87 7 17.4 16.3 17.71 16.67 16.60 8 13.4 13.68 14.06 13.97 13.89 9 11. 10.3 10.99 11.15 11.16 10 6.8 9.4 8.3 8.34 8.30 11 5. 6.36 5.65 5.59 5.54 1 4.0 3.4.89.76.78 Come si può notare, all aumentare del numero di eventi il valore della probabilità si avvicina sempre di più a quella teorica e con una ripetibilità dei risultati sempre maggiore..c. Neve Numeri pseudocasuali 18