Il metodo di Montecarlo (simulazione stocastica)


Spesso ci si trova di fronte a situazioni in cui si ha bisogno di conoscere la probabilità di un certo evento, ma le variabili che lo condizionano sono troppe e non è possibile svolgere i calcoli analitici. In tali situazioni si fa ricorso a metodi di campionamento simulato, cioè si simula la situazione nella quale si vuole calcolare la probabilità di un certo evento. La simulazione stocastica si attua riproducendo il meccanismo preso in esame, sostituendo alla valutazione analitica l'osservazione empirica del fenomeno e traendo da questa le informazioni non rilevabili per via analitica. Ad esempio, la frequenza osservata di un certo evento costituisce una valutazione della probabilità di quell'evento (a patto che il campionamento sia stato simulato per un consistente numero di volte). Questa simulazione prende il nome di metodo di Montecarlo.

Il metodo di Montecarlo fu utilizzato durante la Seconda Guerra Mondiale dagli USA. Fu applicato al problema del bombardamento da parte degli aerei: si voleva colpire una vasta area, senza però bombardare in modo totalmente casuale.

Per scegliere a caso un elemento da un universo descritto dalla funzione di densità f(x), si procede nel modo seguente:

  1. si traccia il grafico della funzione cumulativa

    ;

  2. si genera un numero casuale compreso tra 0 e 1 (ad es., con il generatore congruenziale di Lehmer);
  3. si riporta il numero così trovato sull'asse y e lo si proietta orizzontalmente sulla curva y = F(x);
  4. il valore di x così trovato sulla curva si assume come uno dei valori del campione di x.

A questo punto, le procedure di elaborazione dei dati così ottenuti variano a seconda del tipo di simulazione. Per rendere un'idea generale del procedimento, si ricorrerà ad un'esemplificazione:

Problema: si calcoli il tempo medio di attesa di un utente alla fermata dell'autobus, sapendo che:

Numero di posti liberi sull'autobus Tempi di arrivo degli autobus (min.) Assegnazione dei passeggeri sull'autobus Tempi di arrivo degli utenti (min.) Intervalli tra gli arrivi degli utenti (min.) Tempi di attesa degli utenti (min.)
1 3 17 autobus 1 8 8 9
2 2 28 autobus 1 13 5 4
3 1 46 autobus 2 18 4 10
4 1 58 autobus 2 22 5 6
5 1 75 autobus 4 49 27 9
6 2 96 autobus 5 58 9 17
7 2 111 autobus 6 71 13 25
8 0 122 autobus 6 91 20 5
9 1 130 autobus 11 133 42 23
10 0 148 autobus 11 139 6 17
11 2 156 autobus 12 154 15 31
12 3 185 autobus 13 189 35 3
13 3 192 autobus 14 207 18 2
14 1 209 autobus 15 216 9 10
15 2 226 autobus 15 223 7 3
16 1 241 autobus 17 247 24 5
17 3 252 autobus 23 341 94 7
18 2 267 autobus 24 350 9 9
19 4 286 autobus 25 352 2 20
20 2 304 autobus 25 369 17 3
21 2 313 autobus 27 401 32 3
22 0 332 402 1 -
23 3 348 403 1 -
24 1 359 416 13 -
25 3 372 425 9 -
26 1 388
27 1 404

La situazione è stata osservata per un periodo di circa 8 ore. Se ne è ricavata questa tabella. Le prime due colonne si riferiscono al numero di posti liberi sugli autobus ed ai rispettivi tempi di arrivo e sono state ricavate col metodo di Montecarlo dalle distribuzioni indicate nel problema. La quinta colonna indica gli intervalli fra successivi arrivi di utenti alla fermata ed è stata ricavata col metodo di Montecarlo dalla distribuzione esponenziale e-4t. Il tempo è espresso in minuti, con riferimento al momento in cui ha avuto inizio il processo di campionamento simulato. Una volta noti i tempi di arrivo degli autobus e degli utenti, l'assegnazione dei passeggeri agli autobus diventa automatica. Si applica l'ovvio criterio che i passeggeri salgono sull'autobus se sono presenti alla fermata nel momento in cui arriva l'autobus e se vi sono posti liberi sullo stesso. Avendo assegnato i passeggeri agli autobus, i tempi di attesa (sesta colonna) degli utenti si ottengono sottraendo il tempo di arrivo di ogni passeggero dal tempo di arrivo del suo autobus. Nella tabella sono stati indicati i dati relativi a 21 passeggeri, per un totale di 221 minuti di attesa. Pertanto il tempo medio di attesa di un passeggero è di 10,5 minuti.


Il metodo di Montecarlo presenta vari vantaggi rispetto alla semplice osservazione ed elencazione degli arrivi, dei tempi di attesa, delle lunghezze delle code, ecc. Innanzitutto, il campionamento simulato può produrre dati relativi a simulazioni di eventi per tempi anche molto lunghi (mesi o anni) in pochi minuti, specialmente se si utilizza un calcolatore. Un altro vantaggio è rappresentato dal fatto che è possibile modificare a piacimento i parametri che determinano l'andamento della simulazione: ad es., nella simulazione si può aggiungere un ulteriore centro di servizio per vedere come evolve la situazione, senza doverlo installare nella realtà, eliminando così l'impiego di tempo e risorse che si sarebbe dovuto affrontare nel caso la modifica fosse stata compiuta materialmente.


Ritorna alla pagina principale.


Ritorna alla homepage di Lorenzo Azzalini.