Il metodo Monte Carlo è un potente strumento di indagine statistica utilizzato per ottenere stime di probabilità in base al conteggio delle frequenze dei vari esiti possibili di un evento rispetto al numero di osservazioni dell'evento stesso.
Questo metodo consente di affrontare problemi che sarebbero troppo complessi da risolvere analiticamente, offrendo una stima che si avvicina al valore reale quanto più numerose sono le osservazioni effettuate.
Cos’è il Metodo Monte Carlo: Origini e Principi Fondamentali
La storia del metodo Monte Carlo comincia nel modo più improbabile: con un matematico a letto che gioca a carte. Nel 1946, Stanisław Ulam, matematico polacco in convalescenza dopo un intervento chirurgico, si ritrovò a giocare a solitario per passare il tempo. Da matematico qual era, si chiese: quante probabilità ho di vincere una partita?
Il problema, sulla carta, era risolvibile: bastava enumerare tutte le possibili combinazioni di carte e contare quelle favorevoli. In pratica, però, il numero di combinazioni era talmente enorme da rendere il calcolo analitico impraticabile. Ulam ebbe allora un’intuizione tanto semplice quanto potente: anziché calcolare la probabilità esatta, perché non simulare centinaia di partite e contare quante volte si vince? L’idea è disarmante nella sua semplicità.
Questo è, in essenza, il metodo Monte Carlo: usare la simulazione casuale per risolvere problemi che sarebbero troppo complessi da affrontare analiticamente. Ulam condivise l’idea con il collega John von Neumann, che ne intravide immediatamente il potenziale. Von Neumann capì che l’ENIAC - uno dei primissimi computer elettronici, che occupava un’intera stanza - poteva eseguire migliaia di simulazioni in tempi ragionevoli. Insieme svilupparono il metodo per un problema ben più serio del solitario: la diffusione dei neutroni nelle bombe atomiche, nell’ambito del progetto Manhattan a Los Alamos.
Leggi anche: Consigli Deck Gladiatore Bestia
Il nome “Monte Carlo” fu scelto come nome in codice, un riferimento al celebre casinò di Monte Carlo a Monaco. La leggenda vuole che l’ispirazione venisse dallo zio di Ulam, noto giocatore d’azzardo. In fondo, il cuore del metodo è proprio il caso: generare numeri casuali per esplorare spazi di possibilità troppo vasti per essere percorsi sistematicamente. Da quei primi esperimenti nucleari degli anni ’40, il metodo Monte Carlo si è diffuso in ogni campo della scienza e dell’ingegneria. Oggi è uno degli strumenti computazionali più utilizzati al mondo, dalla fisica delle particelle alla finanza, dal rendering cinematografico alla scoperta di nuovi farmaci.
Concetti Preliminari di Base
Il fondamento del metodo Monte Carlo poggia su un principio statistico: la legge dei grandi numeri. In termini semplici, questa legge ci dice che la media di un campione casuale si avvicina alla media della popolazione man mano che il campione cresce. Tradotto nel linguaggio Monte Carlo: più simulazioni eseguiamo, più il risultato sarà accurato.
Per eseguire una simulazione Monte Carlo abbiamo bisogno di numeri casuali. In realtà, i computer non generano numeri veramente casuali: utilizzano algoritmi deterministici che producono sequenze di numeri pseudo-casuali, con proprietà statistiche indistinguibili dal caso reale. Un aspetto cruciale è il tasso di convergenza. L’errore della stima Monte Carlo diminuisce come 1/√n, dove n è il numero di simulazioni. Questo significa che per dimezzare l’errore dobbiamo quadruplicare le simulazioni; per ottenere una cifra decimale in più di precisione, servono 100 volte più iterazioni. Non è particolarmente efficiente, ma la bellezza del metodo sta nel fatto che funziona indipendentemente dalla complessità del problema: che il problema abbia 2 o 2.000 variabili, il tasso di convergenza resta lo stesso.
Va sempre tenuto bene a mente: nella pratica quotidiana dobbiamo bilanciare la precisione desiderata con le risorse computazionali disponibili. Aumentare il numero di simulazioni comporta un costo in termini di tempo di calcolo. Fortunatamente, i computer moderni rendono questo compromesso molto più favorevole rispetto ai tempi dell’ENIAC.
Corso di Probabilità (#24) - Legge dei Grandi Numeri - SBS Matematica
Il Metodo Monte Carlo in Azione
Vediamo concretamente come si applica il metodo Monte Carlo. Il procedimento si articola in quattro passi fondamentali:
Leggi anche: Strategie Glorioso Soldato Nero
- Definire il modello. Per prima cosa, identifichiamo le variabili del problema e le distribuzioni di probabilità che le governano. Ad esempio, se vogliamo simulare il rendimento di un investimento, il modello includerà il rendimento atteso (media) e la volatilità (deviazione standard), assumendo tipicamente una distribuzione normale dei rendimenti.
- Generare scenari casuali. Utilizzando un generatore di numeri pseudo-casuali, produciamo migliaia di scenari possibili. Ogni scenario rappresenta una “storia alternativa”: un modo in cui le cose potrebbero andare.
- Calcolare il risultato per ogni scenario. Per ciascuno scenario, applichiamo il modello e otteniamo un risultato. Se stiamo simulando un investimento, il risultato sarà il valore finale del portafoglio.
- Aggregare i risultati. Infine, analizziamo l’insieme dei risultati: calcoliamo la media, la mediana, i percentili. Questo ci dà non solo una stima del risultato atteso, ma un’intera distribuzione delle possibilità. Ed è qui che il Monte Carlo brilla: non ci dice solo “quanto probabilmente guadagneremo”, ma anche “quanto potremmo perdere nel caso peggiore”.
Facciamo un esempio al volo per chiarire il concetto della convergenza. Immaginiamo di lanciare una moneta e di voler stimare la probabilità che esca testa. Dopo 10 lanci potremmo ottenere 7 teste (70%), una stima molto lontana dal vero 50%. Dopo 100 lanci saremo più vicini, forse 53%. Dopo 10.000 lanci, la nostra stima sarà molto vicina al 50%. Questo è il Monte Carlo in azione: sostituiamo un calcolo teorico con un esperimento ripetuto migliaia di volte.
La potenza del metodo risiede nella sua flessibilità. Mentre i metodi analitici richiedono formule chiuse (che spesso non esistono per problemi complessi), il Monte Carlo richiede solo di saper simulare il processo. Se riusciamo a scrivere un programma che genera uno scenario, il Monte Carlo ci dà la distribuzione dei risultati.
Simulazione e Valutazione di un "Deck" di Carte: Un Esempio Pratico
Un giorno di pioggia in un rifugio, un amico mi osserva giocare a un passatempo. Da un mazzo di napoletane si gira una carta alla volta, contando a partire da 1 e mantenendo l'ordine iniziale nelle carte girate. Se il conteggio arriva a 10 senza alcuna carta uguale al numero progressivo, le 10 carte sono eliminate ed il conteggio riprende da 1 usando le carte residue.
"Guarda che è un punteggio alto, non è frequente." In quel momento mi riprometto di dimostrargli quanta fortuna abbia avuto. Analizzando le frequenze dei vari risultati su un milione di tentativi, ho constatato che per superare 83 occorrono mediamente 200 tentativi (4.748 volte su un milione si fa più di 83, meno di 5 volte su 1000); il punteggio di 84 lo si ottiene all'incirca ogni 2.500 tentativi (395 volte su un milione).
Ho poi proseguito nell'indagine: nel grafico qui sotto, che illustra la distribuzione dei risultati, si notano dei picchi di frequenza per i punteggi 0, 10, 20, 30; in assenza dei picchi il risultato più frequente sarebbe il 17. Qual è il motivo dei picchi per i multipli di 10?
Leggi anche: Drago in Hero Realms: Un Mazzo del Boss da Non Perdere
Alla ricerca del punteggio più alto ho ripetuto l'operazione facendo eseguire al programma, in diverse occasioni, un miliardo di tentativi (10 ore di elaborazione). Ho continuato a lanciare il programma a più riprese, ogni volta effettuando 1 o 2 miliardi di tentativi. Il punteggio più alto in assoluto trovato finora in questo modo è 198. Infatti, le possibili disposizioni indipendenti dal seme in un mazzo di carte napoletane sono date da 40!/4!10, ovvero un numero di 35 cifre: (1,286864E+34), decisamente troppo per un solo PC; e per le carte francesi le cifre necessarie salgono a 50: servirebbe un calcolo distribuito su una rete di potenti elaboratori.
Esempi Pratici e Applicazioni Moderne
Oltre ai giochi di carte, il metodo Monte Carlo si presta a numerosi altri scenari.
Stima del valore di π
L’esempio più classico e didatticamente efficace del metodo Monte Carlo è la stima del numero π. L’idea è elegante: consideriamo un quadrato di lato 2 con un cerchio di raggio 1 inscritto al suo interno. L’area del quadrato è 4, l’area del cerchio è π. Con 100.000 punti otteniamo già una stima ragionevole, ma non precisissima: siamo alla seconda cifra decimale. Per ottenere un’altra cifra di precisione servirebbero circa 100 volte più punti. Sembra difficile? In realtà, è davvero un giochetto da ragazzi - il computer fa tutto il lavoro pesante.
Stima del rendimento di un portafoglio azionario
Supponiamo di avere un portafoglio composto da tre azioni con le seguenti caratteristiche:
- Azione A: Rendimento atteso 8%, Deviazione standard 12%, Peso nel portafoglio 40%
- Azione B: Rendimento atteso 10%, Deviazione standard 15%, Peso nel portafoglio 30%
- Azione C: Rendimento atteso 12%, Deviazione standard 18%, Peso nel portafoglio 30%
Vogliamo stimare la probabilità che il rendimento del portafoglio superi il 10%. Il risultato ci dice che c’è circa il 45% di probabilità di superare il 10% di rendimento. Notiamo come il Monte Carlo ci restituisca non un singolo numero, ma un’intera distribuzione: potremmo facilmente calcolare anche il rendimento mediano, il peggior scenario al 5° percentile, la probabilità di perdita, e così via.
Simulatore Monte Carlo
Per rendere il concetto ancora più tangibile, sono stati costruiti simulatori interattivi che applicano il metodo Monte Carlo alla previsione del valore futuro di un investimento. Il modello alla base è il Geometric Brownian Motion (GBM), lo stesso utilizzato nel celebre modello di Black-Scholes per il pricing delle opzioni finanziarie. In termini intuitivi, il prezzo futuro di un asset si calcola come il prezzo corrente moltiplicato per una crescita casuale. Ogni simulazione genera un percorso diverso: alcuni scenari vedranno il portafoglio crescere molto, altri lo vedranno diminuire. L’istogramma mostra la distribuzione di tutti i possibili risultati.
Applicazioni Moderne del Metodo Monte Carlo
Dalla fisica nucleare degli anni ’40, il metodo Monte Carlo si è diffuso in ambiti che Ulam e von Neumann non avrebbero immaginato. Vediamo le applicazioni più affascinanti.
- Rendering 3D e cinema. Ogni volta che guardiamo un film Pixar o un blockbuster con effetti speciali, stiamo ammirando il Monte Carlo in azione. La tecnica si chiama path tracing: per calcolare il colore di ogni pixel, il software simula milioni di raggi di luce che rimbalzano tra le superfici della scena.
- Finanza e gestione del rischio. Nel mondo finanziario, il Monte Carlo è onnipresente. Le banche lo usano per calcolare il Value at Risk (VaR), ovvero la perdita massima probabile di un portafoglio in un dato orizzonte temporale.
- Scoperta di nuovi farmaci. Nella ricerca farmaceutica, il Monte Carlo viene utilizzato per simulare il docking molecolare: come una molecola candidata si lega a una proteina bersaglio.
- Modelli climatici. I modelli che prevedono il cambiamento climatico sono intrinsecamente incerti: dipendono da scenari di emissioni, feedback atmosferici, dinamiche oceaniche. Il Monte Carlo permette di esplorare migliaia di combinazioni di parametri.
- Intelligenza artificiale. Nel machine learning, una tecnica chiamata Monte Carlo dropout usa la simulazione per stimare l’incertezza delle previsioni di una rete neurale. E il celebre AlphaGo di DeepMind utilizzava il Monte Carlo Tree Search (MCTS) per esplorare le mosse possibili.
Una sintesi delle applicazioni moderne può essere visualizzata nella seguente tabella:
| Campo | Esempio | Cosa si simula |
|---|---|---|
| Cinema/3D | Path tracing (Pixar) | Percorsi dei raggi di luce |
| Finanza | Value at Risk | Scenari di mercato |
| Farmaceutica | Docking molecolare | Configurazioni spaziali |
| Clima | Modelli IPCC | Combinazioni di parametri |
| AI | AlphaGo (MCTS) | Mosse possibili |
Il Metodo Monte Carlo nella Gestione dei Progetti
La tecnica Monte Carlo usata nelle previsioni dei risultati di progetto è particolarmente efficace. L'analisi del rischio di progetto in termini di costi e tempi si basa su alcune proprietà della curva normale e sul teorema del limite centrale. La distribuzione di Gauss (normale) ha la proprietà che se si sommano due o più variabili casuali, la variabile casuale somma è anch'essa distribuita normalmente.
Il teorema del limite centrale afferma lo stesso risultato anche se le variabili casuali componenti non sono distribuite secondo la legge normale. Si deve però osservare che dal punto di vista pratico, in genere è sufficiente sommare 20-30 variabili comunque distribuite, per avere una buona convergenza alla curva normale. Inoltre, se le variabili casuali sono simmetriche rispetto alla mediana, ed hanno valori simili di valor medio e scarto, la convergenza alla normale è molto più veloce.
Per quanto riguarda il calcolo del valor medio, se il rischio è "medio" si dà ugual peso alle stime ottimistiche e pessimistiche, se il rischio è "basso" si dà maggior peso alle stime ottimistiche e se il rischio è "alto" a quelle pessimistiche. Riguardo allo scarto esso è assunto pari ad 1/8 del range se il rischio è basso, ad 1/6 del range se il rischio è medio e ad 1/4 del range se il rischio è alto.
Analisi Semplificata del Rischio sui Costi per un Progetto Offshore
Consideriamo il caso di una oil company che decide di installare una piattaforma fissa per la coltivazione e lo sfruttamento di un giacimento di gas. L'analisi dei costi del progetto è suddivisa in diverse fasi:
| Fasi (Codici) | Descrizione | Costi (Milioni $) | Peso (%) |
|---|---|---|---|
| EPS | Engineering & Proc. Serv. | 30 | 15,00% |
| JDF | Jacket & Deck Fabrication | 50 | 25,00% |
| JDT | Jacket & Deck Tow & Inst | 12 | 6,00% |
| MFA | Modules Fabrication | 70 | 35,00% |
| MTI | Modules Tow & Inst. | 20 | 10,00% |
| HUC | Hook-up & Commissioning | 18 | 9,00% |
| Project Total | 200 | 100,00% |
L'analisi semplificata del rischio sui costi mostra margini di sicurezza rassicuranti: vi è circa il 60% di probabilità di contenere i costi del progetto entro il preventivo (200 milioni di USD). Per converso, dalla curva retrocumulata, si può evincere che il rischio di "splafonare" oltre il budget (Project Overrun) è circa del 40%. Il rischio può sembrare elevato ma si deve considerare che l'utile sui ricavi del progetto supera il 9%. In gergo si usa dire: c'è trippa per gatti. Sempre dall'esame della curva retrocumulata si può dedurre che il rischio che il margine di profitto sui ricavi scenda sotto il 5% (cioè che i costi totali salgano a 210 milioni di USD), ovvero che si dimezzi, è solo dello 0.1%.
Analisi del Rischio sui Tempi
L'analisi deterministica del reticolo mostra che il progetto durerà 915 giorni (circa due anni e mezzo). La data prevista di completamento è il 4 Luglio 2020, quindi 28 giorni prima del milestone contrattuale fissato al primo Agosto 2020. L'esame della curva cumulata e della curva retro cumulata (o profilo del rischio) indicano che la probabilità di terminare il progetto nei tempi contrattuali (1/08/20) è di circa il 90% e quindi il rischio di non riuscire ad ottemperare quanto pattuito con il cliente sfiora il 10%.
La previsione desta nel management della società contrattista qualche preoccupazione. È noto che le Oil Companies (cioè i clienti) si indebitano fortemente per scoprire e poi sviluppare un giacimento. Esse hanno interesse a che il Pay-back del campo (cioè il momento in cui i ricavi della vendita di olio/gas compensino le spese di esplorazione, sviluppo e coltivazione) sia il più anticipato possibile. In questa maniera possono ridurre sensibilmente gli oneri finanziari pagati ai propri finanziatori. Per anticipare il momento di Pay-back è importante attivare, per quanto possibile, la Early Production, cioè il momento in cui la piattaforma di produzione entra in funzione.
Da queste considerazioni nascono le forti pressioni che le Oil Companies effettuano sui Contractors al fine di garantire la consegna degli impianti nei tempi stabiliti. Il management sa che l'analisi del rischio presentata è basata sulle stime soggettive degli esperti intorno all'affidabilità della data di completamento del progetto (04/07/2020) calcolata in modo deterministico sulla base delle durate delle sole attività appartenenti al cammino critico. Del resto, anche metodi probabilistici come il PERT, tengono conto solo dell'incertezza derivante dalle attività appartenenti al cammino critico. Può invece accadere che cammini paralleli sub critici (nell'esempio la fabbricazione e trasporto sul site del Deck e del Jacket) diventino critiche e siano loro ad innescare un ritardo nella consegna della piattaforma. È evidente che questo rischio è tanto maggiore quanto maggiori sono i cammini sub critici e quanto più la loro durata è vicina a quella del cammino critico principale.
Il cronoprogramma e il diagramma di Gantt di un progetto complesso si ottengono attraverso l'analisi deterministica del reticolo (Precedence Diagram) del progetto. L'analisi di un reticolo presuppone il calcolo di molti rami di attività che si possono svolgere in parallelo. Se un'attività ha molti predecessori, che debbono essere tutti completati prima che il successore possa iniziare, si parla di vincolo massimale che è il più diffuso: il successore può iniziare solo quando la data di completamento più ritardata dei predecessori (la massima) è avvenuta.
Poiché le funzioni =Max, =Min, =SE sono non lineari e discontinue è ragionevole effettuare un'analisi del rischio con il metodo Monte Carlo. Nel foglio Excel, da cui è stata copiata la tabella sottostante, l'utente oltre alle durate delle singole attività fornisce una generica percentuale in meno (o) e una generica percentuale in più (p) da applicare a ciascuna attività per ricavare la durata ottimistica e quella pessimistica. Il sistema, all'interno del range "p-o" e usando la funzione =casuale(), sorteggia una possibile durata per ciascuna attività. L'analisi del reticolo viene fatta sulla base di queste durate casuali.
Due sono le analisi interessanti consentite dal metodo Monte Carlo. La prima riguarda l'indice di criticità delle attività. La seconda, e ancora più importante analisi, è quella sulla probabilità di rispettare la data contrattuale del 1° Agosto 2020. Ebbene sempre su 14.224 replicazioni risulta che la probabilità di successo (rispetto delle scadenze contrattuali) è dell'88.2%. Mentre il rischio di non rispettare il contratto con la Oil Company è dell'11.8%.
Corso di Probabilità (#24) - Legge dei Grandi Numeri - SBS Matematica
Concezioni della Probabilità nella Gestione dei Progetti
La concezione classica, quella frequentista e il metodo Monte Carlo appartengono a questa visione oggettivistica della probabilità. La seconda visione, sostenuta dai filosofi, dai manager e da alcuni matematici, è che la probabilità e il rischio sono fattori soggettivi che dipendono fortemente dal grado di conoscenza/esperienza del decisore. La concezione Bayesiana e quella soggettivistica appartengono a questa seconda visione della probabilità e del rischio. La sensazione è che oggi nelle comunità di gestione progetti stia prevalendo questa seconda tesi più soft. Cioè che invece di usare strumenti hard come il metodo Monte Carlo sia preferibile utilizzare strumenti soft come ad esempio le matrici impatto/probabilità che consentono al project manager di valutare, sulla base delle stime dei vari tecnici/esperti, l'evolversi nell'ambito del tempo delle principali minacce alla buona riuscita del progetto. Infine alcuni sostengono che non ha molto senso usare tecniche iterate (Monte Carlo ripete n volte l'analisi deterministica del reticolo) per i progetti che, per definizione, sono unici e irripetibili nel tempo.
Vantaggi e Limiti del Metodo Monte Carlo
Come ogni strumento statistico, il metodo Monte Carlo ha i suoi punti di forza e i suoi limiti. Vediamoli con onestà.
Vantaggi
- Flessibilità. Il vantaggio più grande è la versatilità: il Monte Carlo si applica a problemi complessi di qualsiasi dimensione e in qualsiasi campo, dalla finanza all’ingegneria, dalla fisica alla biologia. Non richiede formule chiuse, solo la capacità di simulare il processo.
- Accuratezza. Con un numero sufficiente di simulazioni, la stima può essere resa arbitrariamente precisa. Più eseguiamo il metodo, più il risultato converge al valore reale.
- Scalabilità. Diversamente dai metodi a griglia, che soffrono della “maledizione della dimensionalità” (il costo esplode con il numero di variabili), il Monte Carlo mantiene lo stesso tasso di convergenza indipendentemente dal numero di dimensioni. Questo lo rende l’unico strumento praticabile per problemi con molte variabili.
Limiti
Tuttavia, va tenuto bene a mente che il metodo presenta anche limiti significativi:
- Convergenza lenta. Il tasso 1/√n significa che per guadagnare una cifra di precisione servono 100 volte più simulazioni. Per problemi che richiedono altissima precisione, questo può essere proibitivo.
- Costo computazionale. Per problemi complessi (molte variabili, modelli pesanti), ogni singola simulazione può richiedere tempo significativo. Moltiplicato per migliaia o milioni di iterazioni, il costo diventa considerevole.
Per mitigare questi limiti, negli anni sono state sviluppate tecniche di riduzione della varianza che permettono di ottenere risultati più precisi con meno simulazioni, come l'importance sampling, i control variates, lo stratified sampling e gli antithetic variates.