metodi di monte carlo a cura di michele miccio rev. 2.1 del 13 giugno 2008

12
Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Upload: tiziana-biondi

Post on 01-May-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Metodi di Monte Carlo

a cura di

Michele Miccio

rev. 2.1 del 13 giugno 2008

Page 2: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

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

Page 3: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

“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 ./.

Page 4: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

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)

Introduzione ./.

Page 5: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Monte Carlo Simulation Basics

http://www.vertex42.com/ExcelArticles/mc/MonteCarloSimulation.html

Page 6: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Random number (numero casuale): A mathematically selected value which is generated by aformula or selected from a table to conform to a probabilitydistribution.

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.

retrieved from Wikipedia, the free encyclopediaForecastA statistical summary of the mathematical combination of theassumptions in a model, output graphically ornumerically. Forecasts are frequency distributions of possibleresults for the model.

Glossario

Page 7: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

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

Page 8: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

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)

Page 9: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Metodi di Monte Carlo

ESEMPIO 1

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

• 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

PROCEDURE(…from “VERTEX 42”)

Step 1: Create a parametric model, y = f(x1, x2, ..., xq).

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.

Page 11: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Cristal Ball® softwarehttp://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?

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

                                          e              .

Page 12: Metodi di Monte Carlo a cura di Michele Miccio rev. 2.1 del 13 giugno 2008

Monte Carlo Simulation in Matlab®

MATLAB Function Referencerand DescriptionThe 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