Metodi di Monte Carlo
a cura di
Michele Miccio
rev. 2.1 del 13 giugno 2008
Introduzione
Fu Enrico Fermi, a detta di Emilio Segré, ad inventare il
metodo Monte Carlo (senza usare questo nome),
quando studiava a Roma il moto dei neutroni all'inizio
degli anni 30.
Stanislaw Ulam usò il metodo Monte Carlo nel '46.
Un modello di simulazione Monte Carlo può
essere visto come un apparato sperimentale:
• una singola simulazione con il metodo Monte
Carlo corrisponde ad un esperimento
• l’output della simulazione corrisponde ad una
singola osservazione sperimentale
Un problema deterministico può essere risolto
con un metodo Monte Carlo se il problema
formalmente può essere espresso come un
problema stocastico.
Introduzione ./.
“Sono tanti ormai i campi in cui si utilizzano metodi
statistici per ottenere informazioni e stime su fenomeni
legati al caso. Non occorre che i dati siano raccolti
durante un esperimento reale in cui tali fenomeni
avvengono. Ciò potrebbe richiedere troppo tempo e, in
ogni caso, non sempre la natura è disposta a fornirci
situazioni aleatorie ... a comando. I dati possono allora
provenire da simulazioni fatte per mezzo di un
computer, in grado di generare sequenze di numeri
casuali. Esse sono quindi utilizzate per simulare per
migliaia di volte il fenomeno aleatorio, raccogliendo
così rapidamente una serie di dati che, trattati con
metodi statistici, forniscono stime che diventano tanto
più attendibili quanto più è grande il numero delle
prove fatte.”
… da Cerasoli e De Petris (1994)
Introduzione ./.
FIELDS OF APPLICATION
• Telecommunications networks
• Financial markets
• Revenue Management
• Insurance
• Weather forecasting
• Engineering
• Statistics
… from “Monte Carlo Simulation” IEOR E4703 Fall,
by Martin Haugh (2004)
Monte Carlo Simulation Basics
http://www.vertex42.com/ExcelArticles/
mc/MonteCarloSimulation.html
Glossario
Random number (numero casuale):
A mathematically selected value which is generated by a
formula or selected from a table to conform to a probability
distribution.
Generatore di numeri casuali (random number
generator):
Un metodo implementato in un programma su computer che è
capace di generare una successione di numeri casuali, indipendenti
tra di loro
Seme (Seed Number):
Il primo numero in una sequenza di numeri casuali. Uno stesso
seme produce sempre la stessa sequenza di numeri casuali
Simulatore Monte Carlo:
Un sistema che utilizza opportunamente numeri casuali per misurare
gli effetti dell’incertezza su un modello matematico deterministico
Monte Carlo methods:
They are a widely used class of computational algorithms for
simulating the behavior of various physical and mathematical
systems, and for other computations. They are distinguished from
other simulation methods by being stochastic, that is
nondeterministic in some manner – usually by using random
numbers – as opposed to deterministic algorithms.
Forecast
retrieved from Wikipedia, the free encyclopedia
A statistical summary of the mathematical combination of the
assumptions in a model, output graphically or
numerically. Forecasts are frequency distributions of possible
results for the model.
ELEMENTI ESSENZIALI
per lo SVILUPPO di un METODO di MONTECARLO
1. DATI STATISTICI PREGRESSI O CONOSCENZE
STATISTICHE SUGLI ASPETTI AFFETTI DA
INCERTEZZA DEL PROCESSO /CASO/
FENOMENO OGGETTO DI SIMULAZIONE
2. GENERATORE DI N. CASUALI
3. MODELLO MAT. DEL PROCESSO /CASO/
FENOMENO OGGETTO DI SIMULAZIONE
4. PREDIZIONE ATTRAVERSO IL MODELLO
MATEMATICO DEL RISULTATO DELLA
SIMULAZIONE
 almeno 1 variabile aleatoria “di uscita”
5. TECNICHE E STRUMENTI PER LA
RAPPRESENTAZIONE (TABELLARE, TESTUALE,
GRAFICA) E LA VALUTAZIONE STATISTICA DEL
RISULTATO
6. TECNICHE E STRUMENTI PER LA RIDUZIONE
DELLA VARIANZA DEL RISULTATO
Metodi di Monte Carlo
ESEMPIO 1 (Haugh, 2004)
Il magazzino di uno stabilimento petrolchimico
mantiene, per le necessità dei vari impianti di
processo delle acque, uno stoccaggio di fusti di
additivo antischiuma deperibile.
Il magazziniere emette un ordine per N nuovi fusti
all’inizio di ogni nuova settimana.
Ogni fusto utilizzato per il trattamento delle acque
nella settimana consente un risparmio di gestione di
60 €.
Ogni fusto non utilizzato comporta un costo di
smaltimento a fine settimana di 40 €.
La domanda settimanale, D, di fusti di additivo
dagli impianti è uniformemente distribuita
nell’intervallo [80, 140].
Quanti nuovi fusti per settimana dovrebbe il
magazziniere ordinare per massimizzare il
risparmio ?
… adapted from “Monte Carlo Simulation”, IEOR E4703
Fall by Martin Haugh (2004)
Metodi di Monte Carlo
ESEMPIO 1
PROCEDURE
(…from “VERTEX 42”)
Step 1: Create a parametric
model, y = f(x1, x2, ..., xq).
(Haugh, 2004)
I.
Usa un modello o
sviluppa un nuovo
modello per il risparmio P
II. Fissa un valore per N
(ordine nuovi fusti
all’inizio di settimana)
Step 2: Generate a set of
random inputs, xi1,..., xiq.
Step 3: Evaluate the model
and store the results as yi.
Step 4: Repeat steps 2 and
3 for i = 1 to n.
Step 5: Analyze the results
using histograms, summary
statistics, confidence
intervals, etc.
• Estrai n numeri per D
(domanda
settimanale, D, di fusti
di additivo dagli
impianti)
• Calcola il risparmio P
III. Calcola la media <P> del
risparmio su n estrazioni
IV. Determina un nuovo
valore per N
• Ripeti la sequenza …
V. Scegli il valore di N la cui
simulazione MonteCarlo
ha fornito il risparmio
medio <P> più alto
Cristal Ball® software
http://www.gmsl.it/prodotto.asp?id=9&pg=3
Cristal Ball® software
http://www.gmsl.it/prodotto.asp?id=9&pg=3
Cosa si intende per "Simulazione?"
Quando usiamo la parola simulazione, intendiamo a qualsiasi
metodo analitico in grado di imitare un sistema reale,
specialmente quando altre analisi sono troppo
matematicamente complesse o difficili da riprodurre.
Senza l'aiuto di una simulazione un modello spreadsheet potrà
rivelare solamente un risultato singolo, tipicamente il valore
medio dello scenario.
Un tipo di simulazione spreadsheet è la Monte Carlo
simulation, che genera valori casuali per le variabili incerte in
un modello.
Cosa fare delle variabili incerte in uno spreadsheet?
e
.
Per ogni variabile incerta (che può assumere diversi intervalli di
valori possibili), si definiscono i possibili valori con una
distribuzione probability distribution. Il tipo di distribuzione
selezionata è basata sulle condizioni note per la variabile. I tipi
di distribuzione includono:
Cosa succede durante una simulazione?
Una simulazione calcola uno scenario multiplo di un modello
ripetendo in modo ciclico il calcolo con nuovi valori di
campionamento ricavati dalla curva di distribuzione.
Durante un ciclo singolo, Crystal Ball seleziona in modo
casuale un valore dalle possibilità definite (l'intervallo e la forma
della distribuzione) per ogni variabile incerta e quindi ricalcola
l'intero foglio dati (spreadsheet).
Monte Carlo Simulation in Matlab®
MATLAB Function Reference
rand
Description
The rand function generates scalar or arrays of
random numbers whose elements are uniformly
distributed in the interval (0,1).
rand
Generates a random scalar
number in the interval (0,1)
from a (pseudo)-uniform
distribution
rand('state',0) Resets the generator to its
initial state
rand('state',s) Resets the state to its
another specified state s