Cenno sui metodi Monte Carlo



Documenti analoghi
matematica probabilmente

OSSERVAZIONI TEORICHE Lezione n. 4

Probabilità discreta

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

UNIVERSITÀ DEGLI STUDI DI BERGAMO. Corso di Risk Management

Introduzione all analisi dei segnali digitali.

Un gioco con tre dadi

La variabile casuale Binomiale

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Test statistici di verifica di ipotesi

Il concetto di valore medio in generale

E naturale chiedersi alcune cose sulla media campionaria x n

Una sperimentazione. Probabilità. Una previsione. Calcolo delle probabilità. Nonostante ciò, è possibile dire qualcosa.

Elementi di Psicometria con Laboratorio di SPSS 1

LE FUNZIONI A DUE VARIABILI

I sistemi di numerazione

Esercizio 1: trading on-line

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

PROGRAMMA SVOLTO NELLA SESSIONE N.

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Corso di Matematica per la Chimica

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

(concetto classico di probabilità)

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

4 3 4 = 4 x x x 10 0 aaa

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Capitolo 2. Operazione di limite

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Ing. Simone Giovannetti

Corrispondenze e funzioni

1.5. ISTOGRAMMA 17. Figura 1.3: Istogramma ottenuto mediante campionamento da VA Gaussiana (η x =0, σ 2 X =1).

La distribuzione Normale. La distribuzione Normale

Tasso di interesse e capitalizzazione

Slide Cerbara parte1 5. Le distribuzioni teoriche

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Statistica. Lezione 6

Funzioni. Funzioni /2

Informatica. Rappresentazione dei numeri Numerazione binaria

Corso di Automazione Industriale 1. Capitolo 4

Lezione 8. La macchina universale

1. PRIME PROPRIETÀ 2

Corso di Psicometria Progredito

Statistica inferenziale

Corso di. Dott.ssa Donatella Cocca

Cosa dobbiamo già conoscere?

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:

Esercizi di Probabilità e Statistica

Matematica generale CTF

3. Confronto tra medie di due campioni indipendenti o appaiati

LA STATISTICA si interessa del rilevamento, dell elaborazione e dello studio dei dati; studia ciò che accade o come è fatto un gruppo numeroso di

Metodi statistici per l economia (Prof. Capitanio) Slide n. 9. Materiale di supporto per le lezioni. Non sostituisce il libro di testo

Viene lanciata una moneta. Se esce testa vinco 100 euro, se esce croce non vinco niente. Quale è il valore della mia vincita?

Facciamo qualche precisazione

SISTEMI DI NUMERAZIONE E CODICI

Un modello matematico di investimento ottimale

11. Analisi statistica degli eventi idrologici estremi

1 Giochi a due, con informazione perfetta e somma zero

( x) ( x) 0. Equazioni irrazionali

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Introduzione al MATLAB c Parte 2

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Informatica. Rappresentazione binaria Per esempio diventa /10/2007. Introduzione ai sistemi informatici 1

Corso di Informatica

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Sistemi Informativi Territoriali. Map Algebra

Pro e contro delle RNA

Computational Game Theory

Statistiche campionarie

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

PROGETTO INDAGINE DI OPINIONE SUL PROCESSO DI FUSIONE DEI COMUNI NEL PRIMIERO

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

SOLUZIONI ESERCITAZIONE NR. 6 Variabili casuali binomiale e normale

INdAM QUESITI A RISPOSTA MULTIPLA

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

4. Operazioni aritmetiche con i numeri binari

Ulteriori problemi di fisica e matematica

Moto circolare uniforme

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Il confronto fra proporzioni

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

Calcolo delle probabilità

Primi esercizi per gli studenti del corso di Statistica ed Elementi di Probabilita

COMPITO DI SCIENZE NATURALI 23 gennaio Modulo di probabilità e statistica

Regressione non lineare con un modello neurale feedforward

Metodi Stocastici per la Finanza

Matematica in laboratorio

Più processori uguale più velocità?

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Dimensione di uno Spazio vettoriale

VARIABILI ALEATORIE CONTINUE

Elementi di Psicometria con Laboratorio di SPSS 1

Corso di Laurea in Scienze e Tecnologie Biomolecolari. NOME COGNOME N. Matr.

Un modello matematico di investimento ottimale

1. Distribuzioni campionarie

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

Transcript:

Cenno sui metodi Monte Carlo I metodi probabilistici hanno una lunga storia ma solo dopo il 1944 è iniziato un loro studio sistematico che ha portato a notevoli sviluppi. Attualmente è stato valutato che quasi la metà delle applicazioni del calcolo scientifico ad alte prestazioni (basate sull utilizzo di macchine con architettura avanzata o su sistemi per il calcolo parallelo) utilizza l approccio con metodi tipo Monte Carlo o qualche versione più recente quali i metodi quasi-monte Carlo. Come vedremo un problema strettamente collegato all uso di metodi probabilistici è il problema della generazione di numeri casuali. Numeri, casualità e simulazioni Senza addentrarci troppo in discussioni filosofiche sul significato di casualità, accenneremo ad alcune tra le molteplici applicazioni nelle quali intervengono i cosiddetti numeri casuali ed a come la matematica consenta di affrontare problemi legati al concetto di caso.

Numeri casuali sono utilizzati per costruire simulazioni di natura probabilistica di fenomeni fisici (reattori nucleari, traffico stradale, aereodinamica), di problemi decisionali e finanziari (econometrica, previsione Dow- Jones), informatica (progettazione VLSI, rendering) o come semplice fonte di divertimento (videogiochi). Il forte legame che esiste tra il gioco e le simulazioni probabilistiche è sottolineato dal fatto che a tali simulazioni viene generalmente dato il nome di metodi Monte Carlo (in onore del famoso casino a Monaco). Breve nota storica L idea di utilizzare in modo sistematico simulazioni di tipo probabilistico per risolvere un problema di natura fisica viene generalmente attribuita al matematico polacco Stanislaw Ulam (1909-1984). Ulam fu uno dei personaggi chiave nel progetto americano per la costruzione della bomba atomica (Manhattan project) durante la seconda guerra mondiale tra il 1943 ed il 1945 a Los Alamos, New Mexico (dopo la guerra, 1 Lorenzo Pareschi (pareschi@dm.unife.it)

Ulam diede contributi essenziali anche nello sviluppo della bomba a fusione di idrogeno o bomba H). Il progetto Manhattan richiedeva infatti la risoluzione di un enorme numero di problemi incredibilmente complessi (nella sua autobiografia Ulam descrive come l idea di utilizzare simulazioni casuali per risolvere tali problemi gli sia venuta mentre giocava a carte) Generatori di numeri casuali Innanzitutto cosa è un numero casuale? Un esempio che tutti conosciamo consiste nel lancio di un dado, in effetti l imprevedibilità del numero ottenuto come punteggio, compreso tra 1 e 6, conferisce allo stesso una forma di casualità. L idea stessa di utilizzare un calcolatore (quindi un oggetto puramente deterministico e di conseguenza prevedibile), per generare un numero casuale quindi imprevedibile sembra costituire una sfida impossibile. 2 Lorenzo Pareschi (pareschi@dm.unife.it)

In effetti nessun calcolatore è in grado di generare numeri puramente casuali, ma solo numeri pseudo-casuali o quasi-casuali ossia numeri generati da algoritmi numerici deterministici in grado di superare una serie di test statistici che conferiscono a tali numeri una apparente casualità. Il metodo middle-square Nei primi anni dell era dei computer (1946) John von Neumann suggerì il famoso metodo middle-square per generare numeri pseudo casuali distribuiti in modo uniforme. In tale distribuzione uniforme ogni possibile numero in un determinato intervallo è ugualmente probabile. Ad esempio se lanciamo un dado un certo numero di volte ognuna delle facce da 1 a 6 si presenterà circa 1/6 delle volte originando così una successione uniforme di numeri casuali compresi tra 1 e 6. 3 Lorenzo Pareschi (pareschi@dm.unife.it)

Oggi il metodo middle-square ha un importanza solamente storica, ma nella sua semplicità evidenzia un aspetto importante nella generazione di numeri pseudo-casuali al computer, ossia la necessità di avere a disposizione molti numeri casuali ed in modo rapido. Esempio 1 [Metodo middle square] Supponiamo di volere generare un numero casuale di 4 cifre, ossia un numero tra 0000 e 9999. Il metodo middle-square richiede come tutti i generatori di numeri casuali un valore iniziale, detto seme dal quale vengono generati i successivi valori. Ad esempio a partire da 1234, elevando tale numero al quadrato abbiamo le otto cifre 01522756 delle quali teniamo solamente le quattro cifre di mezzo 5227. Da queste ripetendo il procedimento otteniamo 27321529 e quindi 3215. 4 Lorenzo Pareschi (pareschi@dm.unife.it)

10000 seme=8022 10000 seme=3482 8000 8000 6000 6000 4000 4000 2000 2000 0 0 10 20 30 40 50 0 0 10 20 30 40 50 10000 seme=6381 10000 seme=1234 8000 8000 6000 6000 4000 4000 2000 2000 0 0 10 20 30 40 50 0 0 10 20 30 40 5 Lorenzo Pareschi (pareschi@dm.unife.it)

Si noti che ogni nuovo numero nella successione è determinato univocamente dal suo predecessore. La successione generata quindi non potrà essere casuale ma avrà solo il carattere di apparente casualità. In particolare ogni successione di numeri generati da questo algoritmo inizierà a ripetersi prima o poi. Il numero di numeri della sequenza prima che intervenga una ripetizione è detto periodo della sequenza. La lunghezza di tale periodo può essere considerata una misura della bontà del generatore di numeri pseudo-casuali. Sfortunatamente il metodo può degenerare in sequenze con periodi molto brevi, ad esempio a partire dal valore 0 la sequenza ha sempre periodo 1, oppure partendo con 43 e numeri a 2 cifre otteniamo la sequenza 43, 84, 05, 02, 00, 00,... Proviamo ad utilizzare il metodo middle-square per effettuare un semplice esperimento di simulazione. Consideriamo la simulazione del lancio di un dado definendo il risultato ottenuto d come d = 1 + [ 5 ms 10 4 ] 6 Lorenzo Pareschi (pareschi@dm.unife.it)

dove ms e il numero generato tramite il metodo middle-square. Simulando 10 lanci consecutivi a partire dal seme 8022 otteniamo risultati che sembrano abbastanza realistici 5 3 3 4 3 3 4 2 3 1 Basta però aumentare il numero di lanci per giungere a risultati insoddisfacenti (la successione ha infatti periodo 38). Generatori lineari congruenziali Nel 1948 venne proposto un generatore di numeri casuali distribuiti uniformemente detto generatore lineare congruenziale o più brevemente LCG che a tutt oggi è ancora utilizzato. Tale generatore venne presentato per la prima volta da D.H. Lemer esperto di teoria dei numeri. Il metodo LCG, analogamente al metodo 7 Lorenzo Pareschi (pareschi@dm.unife.it)

middle-square, ha bisogno di un seme per inizializzare la sequenza di numeri secondo la seguente regola x n+1 = (ax n + c)mod m, n 0, dove a, c ed m sono opportuni numeri interi costanti. La notazione mod m, ossia modulo m, significa che ax n + c viene diviso per m e x n+1 posto uguale al resto intero della divisione. Quindi x n+1 assume valori interi tra 0,1,2,..., m 1. Alcuni esempi Per esempio le scelte a = 13, c = 0 (ossia generatore puramente moltiplicativo) e m = 31 partendo dal valore iniziale x 0 = 1 otteniamo per n = 30 1 13 14 27 10 6 16 22 7 29 5 3 8 11 19 30 18 17 4 21 25 15 9 24 2 26 28 23 20 12 8 Lorenzo Pareschi (pareschi@dm.unife.it)

Tale successione ha periodo 30 (ossia m 1). Tutti i numeri da 1 a 30 compaiono per poi ripetersi. Questo non dipende dalla scelta del seme iniziale se non è nullo. L uso del seme 0 origina invece la successione costante uguale a 0 per c = 0 indipendentemente da a e m. Quindi il massimo periodo di un generatore puramente moltiplicativo è m 1. Nel caso di c 0 il massimo periodo sarà invece m, in quanto comparirà anche lo 0. Tale periodo massimo non è però raggiunto per tutte le scelte di a, c ed m, ad esempio per a = 7, c = 7 e m = 10 partendo dal seme 7 si ha per n = 8 che ha solo periodo 4. 7 6 9 0 7 6 9 0 Bontá di un generatore Il problema della scelta dei migliori valori per a, c ed m è quindi il punto cruciale del metodo. Cosa si intende però per migliori? Un aspetto importante è la lunghezza del periodo da cui segue che m dovrà essere molto 9 Lorenzo Pareschi (pareschi@dm.unife.it)

grande. Inoltre per un dato m i valori di a e c dovranno essere tali che la successione abbia periodo massimo (se m è grande la differenza tra m e m 1 è irrilevante e ci si può restringere al caso di generatori moltiplicativi, c = 0, che sono più veloci). Una delle scelte più popolari è m = 2 31 1, a = 7 5, c = 0. Questo garantisce un periodo di 2 31 2 = 2.147.483.646 ossia oltre 2 miliardi di numeri pseudo-casuali! (Il fatto che m = 2 31 1 sia un numero primo é fondamentale al fine di ottenere il massimo periodo). Istogrammi di frequenza Da un punto di vista pratico i generatori di numeri casuali restituiscono invece di x n+1 il suo valore diviso per m, al fine di evitare numeri troppo grandi. Inoltre evitano di reinizializzare la sequenza ogni volta. 10 Lorenzo Pareschi (pareschi@dm.unife.it)

Generiamo una tabella di 10000 valori pseudo-casuali compresi tra 0 ed 1 e verifichiamone l uniforme distribuzione tramite l istogramma di frequenza ottenuto suddividendo l intervallo [0, 1] in N sottointervalli di uguale ampiezza e calcolando quanti valori cadono in un dato intervallo. 250 200 150 100 50 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Nel nostro caso tale valore teorico dovrebbe essere esattamente pari a 10000/50 = 200. 11 Lorenzo Pareschi (pareschi@dm.unife.it)

Verificare la casualitá Una richiesta più importante nel valutare la bontà di un generatore uniforme di numeri pseudo-casuali è l assenza di correlazione tra i numeri generati dall algoritmo. In altre parole non deve emergere nessuna relazione tra x n e x n+1 per n > 0. Questa proprietà può essere verificata graficamente realizzando il grafico bidimensionale dei punti (x n, x n+j ) per j > 0. In tale grafico non dovranno comparire linee, forme o altre strutture regolari. In figura riportiamo il risultato per j = 1 con 1000 punti ottenuto con il generatore LCG con scelta ottimale e con lo stesso generatore modificato scegliendo come valori m = 31, a = 13 e c = 0. 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 12 Lorenzo Pareschi (pareschi@dm.unife.it)

Generatori e MATLAB I generatori di numeri casuali più recenti, come quello incluso nella versione MATLAB successive alla 4, non sono basati sul metodo LCG. Essi sono una combinazione di operazioni di spostamento di registri e manipolazione sui bit che non richiedono nessuna operazione di moltiplicazione o divisione. Questo nuovo approccio risulta estremamente veloce ed inoltre garantisce periodi incredibilmente lunghi. Nelle ultime versioni MATLAB il periodo è 2 1492, che ad un milione di numeri casuali al secondo richiederebbe 10 435 anni (circa 10 425 volte l età dell universo) prima di ripetersi!. Data la coincidenza dell esponente con la data della scoperta delle americhe questo generatore viene comunemente chiamato il generatore di Cristoforo Colombo. Calcolo di integrali Il metodo Monte Carlo può essere applicato nel calcolo di integrali, e risulta competitivo con tecniche deterministiche quando il numero di dimensioni del dominio di integrazione è elevato. 13 Lorenzo Pareschi (pareschi@dm.unife.it)

Esempio 2 [Un metodo probabilistico per il calcolo di π] Supponiamo di lanciare N freccette ad un bersaglio formato da un quadrato di lato L contenete una circonferenza. Assumiamo che le freccette vengano lanciate casualmente all interno del quadrato e che quindi colpiscano il quadrato in ogni posizione con uguale probabilità (si veda la Figura). 1 0 1 1 0 1 Il bersaglio per L = 2 e la posizione dei primi 1000 lanci. 14 Lorenzo Pareschi (pareschi@dm.unife.it)

Dopo molti lanci la frazione di freccette che ha colpito la circonferenza sarà circa uguale al rapporto tra l area della circonferenza e quella del quadrato. Quindi πl 2 4L 2 = 1 4 π N c N, dove N è il numero totale di freccette lanciate e N c indica il numero di freccette cadute all interno della circonferenza. Potremo quindi usare il valore 4N c /N come approssimazione di π. Il seguente script MATLAB simula il procedimento % % Calcolo di pigreco con Monte Carlo % rand( seed,654321) NC = 0; PiE = zeros(500,1); for k=1:500 x = -1+2*rand(100,1); y = -1+2*rand(100,1); 15 Lorenzo Pareschi (pareschi@dm.unife.it)

NC = NC + sum(x.^2 + y.^2 <= 1); PiE(k) = (NC/(k*100))*4; end plot(pie) Qualche commento è necessario. È stata utilizzata la funzione MATLAB rand che genera una successione di numeri casuali distribuiti uniformemente nell intervallo (0,1). La sintassi principale per tale funzione è Matrice = rand(righe, Colonne), che genera una matrice n m di numeri casuali distribuiti uniformemente. 16 Lorenzo Pareschi (pareschi@dm.unife.it)

3.25 3.2 3.15 3.1 0 50 100 150 200 250 300 350 400 450 500 Stima di π tramite il metodo Monte Carlo. Si vede che la stima di π migliora all aumentare di N ma che la convergenza è tutt altro che veloce e uniforme. La presenza di fluttuazioni dovute all approccio probabilistico è infatti una caratteristica dei metodi Monte Carlo. L istruzione rand( seed,numero) assegna il valore Numero detto seme al generatore di numeri pseudo-casuali. In questo modo ci possiamo rendere conto che in realtà non stiamo utilizzando veri numeri casuali ma una loro approssimazione generata tramite un opportuno algoritmo. 17 Lorenzo Pareschi (pareschi@dm.unife.it)

Infatti lanciando nuovamente il programma otteniamo sempre lo stesso identico grafico fino a che non cambiamo il seme o commentiamo tale istruzione. La bontà di tale generatore è di importanza fondamentale in molte applicazioni basate su tecniche di tipo Monte Carlo. Si noti inoltre che il metodo Monte Carlo precedente avrebbe potuto essere utilizzato per calcolare l area della circonferenza. Infatti indicando con A c tale area si ha A c 4L 2N c N. In modo analogo si puó procedere per il calcolo di aree di altre figure piane o di integrali di funzioni non negative. Ad esempio abbiamo b a f(x)dx (b a) f N c N, dove f = max [a,b] f(x) ed N c rappresenta il numero di punti (x, y) estratti uniformemente sul rettangolo [a, b] [0, f] aventi y f(x). 18 Lorenzo Pareschi (pareschi@dm.unife.it)

Un integrale del tipo b I[f] = w(x) f(x) dx a dove w(x) 0 è la funzione peso, può essere interpretato come il valore medio della funzione f(x) = W f(x), relativo ad una variabile aleatoria x con densità di probabilità p(x) = w(x)/w, dove W = b a w(x) dx. Uno stimatore del valor medio di f è dunque dato da f N = 1 N N i=1 f(x i ) dove x 1, x 2,..., x n rappresentano un campionamento della variabile aleatoria X con densità p(x). 19 Lorenzo Pareschi (pareschi@dm.unife.it)