Simulazione. rappresentare sistemi reali anche complessi tenendo conto anche delle sorgenti di incertezza;

Documenti analoghi
2. Variabilità mediante il confronto di valori caratteristici della

Esercitazioni di statistica

p k q n k = p n (k) = n 12 = 1 = ,1208. q = 1 2 e si ha: p 12 (8) =

MATEMATICA e COMPLEMENTI di MATEMATICA

Generazione di Numeri Casuali- Parte 2

FUNZIONI CONTINUE - ESERCIZI SVOLTI

Quantificare la variabilità dei processi ecologici

Carta di credito standard. Carta di credito business. Esercitazione 12 maggio 2016

Lezione 12 Argomenti

Statistica Inferenziale

ITCS Erasmo da Rotterdam. Anno Scolastico 2014/2015. CLASSE 4^ M Costruzioni, ambiente e territorio

Il Metodo Scientifico

Il campionamento statistico. prof. C.Guida

Esercitazione # 6. a) Fissato il livello di significatività al 5% si tragga una conclusione circa l opportunità di avviare la campagna comparativa.

Statistica. Esercitazione 16. Alfonso Iodice D Enza iodicede@unicas.it. Università degli studi di Cassino. Statistica. A. Iodice

MISURA DELLA DISTANZA FOCALE DI UNA LENTE CONVERGENTE

Corso di Automazione Industriale 1. Capitolo 4

Sistemi Web per il turismo - lezione 3 -

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

INDICAZIONI PER LA RICERCA DEGLI ASINTOTI VERTICALI

Facciamo qualche precisazione

NUCLEI FONDANTI COMPETENZE CONTENUTI ABILITA METODOLOGIE E STRUMENTI METODO SCIENTIFICO VEDERE

Informatica Teorica. Macchine a registri

Analisi della varianza

FSM: Macchine a Stati Finiti

UNIVERSITA DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA IDRAULICA, MARITTIMA E GEOTECNICA

7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi

2.4.1 Generazione di numeri pseudocasuali con distribuzione uniforme

differiticerti.notebook November 25, 2010 nov nov nov Problemi con effetti differiti

Studio di funzione. Tutti i diritti sono riservati. E vietata la riproduzione, anche parziale, senza il consenso dell autore. Funzioni elementari 2

SECONDO BIENNIO ISTITUTO TECNICO ELETTRONICA ED ELETTROTECNICA

ESERCIZI DEL CORSO DI INFORMATICA

ˆp(1 ˆp) n 1 +n 2 totale di successi considerando i due gruppi come fossero uno solo e si costruisce z come segue ˆp 1 ˆp 2. n 1

Il calcolatore. Architettura di un calcolatore (Hardware)

Metodi di Distanza. G.Allegrucci riproduzione vietata

TECNICHE DI CONTROLLO

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

Geometria Superiore Esercizi 1 (da consegnare entro... )

Elementi di matematica finanziaria

SCUOLA PRIMARIA - MORI

CORSO DI STATISTICA (parte 1) - ESERCITAZIONE 5

Mobilificio. Si vuole simulare il comportamento della gestione degli ordini da parte di una azienda che produce mobili di due qualità

DISTRIBUZIONI DI PROBABILITÀ

NUMERI COMPLESSI. Test di autovalutazione

Tecniche di Simulazione: Introduzione. N. Del Buono:

Reti di Telecomunicazioni 1

TECNOLOGIA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

Infrastruttura telematica: visione d insieme Mauro Nanni

Corso di Laurea in Ingegneria Informatica Analisi Numerica

Collaudo statico di un ADC

Comune Fabriano. Protocollo Generale, Servizio Progettazione, Servizio Edilizia Privata. Progetto di Certificazione secondo le norme ISO 9000

Definizione Dati due insiemi A e B, contenuti nel campo reale R, si definisce funzione reale di variabile reale una legge f : A

L indagine statistica

Indice Aspetti generali sul campionamento da popolazioni finite Campionamento probabilistico Disegno campionario semplice

ANALISI E GESTIONE DEI COSTI

Domanda e offerta. consumatori di un bene/servizio per ciascun livello di prezzo del bene/servizio preso

La mappatura dei geni umani. SCOPO conoscere la localizzazione dei geni per identificarne la struttura e la funzione

Esercizi sulla conversione tra unità di misura

Ing. Andrea Govoni. Modelli di simulazione

DAE Digital Audio Experience

ANALISI MULTIVARIATA

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

Club Alpino Italiano. Commissione Lombarda Materiali e Tecniche

Metodologia per la programmazione, il monitoraggio e la valutazione della formazione nelle PPAA

PIANO DI LAVORO ANNUALE DELLA DISCIPLINA. Classe 3 ATI A.S. 2015/2016

Opzione manutentore impianti elettrici e automazione

MINISTERO DELL'ISTRUZIONE, DELL'UNIVERSITÀ, DELLA RICERCA SCUOLE ITALIANE ALL ESTERO

0.1 Esercizi calcolo combinatorio

Le aree dell informatica

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

Syllabus: argomenti di Matematica delle prove di valutazione

Statistica descrittiva

ISTITUTO D'ISTRUZIONE SUPERIORE A. MOTTI

Syllabus Start rev. 1.03

MONTERENZIO PATRIMONIO SRL. Mappa dei rischi elaborata sulla base dell analisi del contesto e della valutazione dell ambiente di controllo

CURRICOLO DI GEOGRAFIA. INDICATORI OBIETTIVI di APPRENDIMENTO STANDARD PER LA VALUTAZIONE DELLE COMPETENZE DELL ALUNNO

Esercitazione Strumentazione virtuale

Esercizi sui Circuiti RC

Progetto fognatura di Trigoria

Esercizi del Corso di Statistica. Parte I - Variabili Aleatorie Continue

Calcolatori Elettronici

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

SEQUENZE DI NUMERI PSEUDO- CASUALI

7 Esercizi e complementi di Elettrotecnica per allievi non elettrici. Circuiti elementari

Definizione unitaria delle coniche

CAPITOLO V. DATABASE: Il modello relazionale

Riassunto 24 Parole chiave 24 Commenti e curiosità 25 Esercizi 27 Appendice

I laureati scuole di provenienza, durata degli studi, votazioni ed età

1. Distribuzioni campionarie

Comunicazione Digitale

PROGRAMMAZIONE DIDATTICA DI SCIENZE

Il Principio dei lavori virtuali

CENNI DI METODI STATISTICI

Marketing mix, break even point e profitto. massimo

CURRICOLO DI GEOGRAFIA

Introduzione alla Simulazione Numerica

Esercizi di Calcolo delle Probabilità e Statistica Matematica

E naturale chiedersi alcune cose sulla media campionaria x n

Elettronica analogica: cenni

ISTITUTO COMPRENSIVO LUCCA 2

Transcript:

Simulazione Con il termine simulazione si intende la riproduzione del comportamento di un sistema. In generale, si parla di simulazione sia nel caso in cui viene utilizzato un modello concreto, sia nel caso in cui viene utilizzato un modello astratto che riproduce la realtà mediante l uso del computer. Un esempio di modello concreto è il modello in scala di una nave che viene poi posto in un apposita vasca per effettuareprovesimulatealloscopodistimareopportunemisurediprestazione. È chiaro che esistono leggi teoriche della fisica dalle quali ottenere informazioni sulle prestazioni della nave, ma le analisi di queste leggi è spesso troppo complicata, per essere effettuata; naturalmente, è anche impraticabile (o quanto meno non conveniente) la costruzione reale della nave e la prova diretta in mare. All interno della Ricerca Operativa, la simulazione utilizza modelli astratti che vengono costruiti al fine di replicare il funzionamento di un sistema. Essa gioca un ruolo molto importante soprattutto nel progettare un sistema stocastico e nel definirne le procedure operative: il funzionamento di un sistema è simulato utilizzando distribuzioni di probabilità per generare casualmente eventi del sistema e dal sistema simulato si ottengono osservazioni statistiche sulle prestazioni dello stesso. Naturalmente affinché ciò possa essere realizzato è necessario costruire un modello di simulazione, che permetta di descrivere le operazioni di un sistema e come esse devono essere simulate. Gli aspetti rilevanti che fanno della simulazione uno strumento largamente utilizzato sono legati al fatto che essa permette di rappresentare sistemi reali anche complessi tenendo conto anche delle sorgenti di incertezza;

1 SIMULAZIONE riprodurre il comportamento di un sistema in riferimento a situazioni che non sono sperimentabili direttamente. D altra parte deve essere sempre tenuto sempre ben presente il fatto che la simulazione fornisce indicazioni sul comportamento del sistema, ma non risposte esatte; l analisi dell output di una simulazione potrebbe essere complessa e potrebbe essere difficile individuare quale può essere la configurazione migliore; l implementazione di un modello di simulazione potrebbe essere laboriosa ed inoltre potrebbero essere necessari elevati tempi di calcolo per effettuare una simulazione significativa. 2.1 GENERALITÀ SUI MODELLI DI SIMULAZIONE Come abbiamo già osservato, per simulare il comportamento di un sistema è necessario costruire un modello di simulazione. Il modello dovrà essere sufficientementre complesso da rispondere alle esigenze dal caso, ma deve comunque rimanere il più semplice possibile. Devono inoltre essere chiari i limiti di utilizzo del modello stesso. 2.1.1 Elementi di un modello di simulazione Vediamo ora gli elementi che costituiscono un modello di simulazione. Variabili di stato Innanzitutto ricordiamo che un sistema è descritto in ogni istante di tempo da un insieme di variabili che prendono nome di variabili di stato. Quindi, ad esempio, in riferimento ad un sistema a coda, è una variabile di stato il numero degli utenti presenti nel sistema in un certo istante di tempo. Ricordiamo, inoltre, che esistono sistemi discreti in cui le variabili cambiano istantaneamente in corrispondenza di precisi istanti di tempo che sono finiti oppure appartenenti ad un insieme numerabile e sistemi continui in cui le variabili variano con continuità rispetto al tempo. Si osservi fin d ora che la scelta di un modello continuo o discreto da utilizzare non è necessariamente obbligata dalla tipologia del sistema; si può infatti decidere, ad esempio, di costruire un modello discreto per un sistema continuo, a seconda dello studio che si vuole effettuare. Un esempio tipico è il caso in cui nel rappresentare una linea ferroviaria, la posizione del treno può essere descritta da una variabile reale che fornisce la distanza dalla stazione di origine, oppure da variabili binarie che descrivono lo stato libero occupato di ciascuna delle sezioni di blocco in cui è divisa la linea.

G À SUI MODELLI DI SIMULAZIONE 125 Eventi Si definisce evento un qualsiasi accadimento istantaneo che fa cambiare il valore di almeno una delle variabili di stato. L arrivo di un utente ad un sistema a coda è un evento, così come il completamento di un servizio. Esistono eventi esterni al sistema (eventi esogeni) ed eventi interni (eventi endogeni). Ad esempio, l inizio del servizio ad un utente che è in coda in un sistema a coda è un evento endogeno, perché interno al sistema; l arrivo di un utente ad un sistema a coda è un evento esogeno. Entità e attributi Le entità sono singoli elementi del sistema che devono essere definiti. Un esempio di entità è un utente presso un sistema a coda, oppure può essere un servente. Nel primo caso l entità fluisce all interno del sistema e si parla di entità dinamica, nel secondo caso si parla di entità statica. Le entità possono essere caratterizzate da attributi che forniscono un valore di un dato assegnato all entità stessa. Ad esempio, in un sistema a coda monoservente dove le entità sono il servente e gli utenti, un attributo di un entità utente potrebbe essere il suo tempo di arrivo al sistema, mentre il servente è caratterizzato dall attributo status che può assumere valore di libero o occupato. È chiaro che alcuni attributi possono essere di interesse in alcuni casi e non in altri. Le entità possono essere raggruppate in classi che sono insiemi di entità dello stesso tipo, ovvero si possono raggruppare le entità in base ad attributi. Se, ad esempio, consideriamo persone di sesso maschile e femminile come utenti di un sistema a coda, essendo le entità le persone, esse possono essere raggruppate in dua classi in base all attributo sesso. Risorse Le risorse sono elementi del sistema che forniscono un servizio alle entità. Un entità puòrichiedere unaopiùunitàdi risorsaesequesta nonèdisponibile l entità dovrà mettersi, ad esempio, in una coda in attesa che si renda disponibile, oppure intraprendere un altra azione. Se invece la risorsa è disponibile, essa viene catturata dall entità, trattenuta per il tempo necessario e poi rilasciata. Un esempio di risorsa potrebbe essere data da un operaio che sovrintende il funzionamento di una macchina che non può funzionare senza l operaio stesso; quando è richiesto l utilizzo di questa macchina, se la risora operaio è disponibile allora l esecuzione del lavoro è effettuata altrimenti si attende che ci sia risorsa (operaio) disponibile. L operaio verrà trattenuto per la durata dell esecuzione del lavoro e poi rilasciato. Si osservi che, in generale, un elemento del modello potrebbe essere considerato parimenti un entità o una risorsa. Questo, ovviamente, dipende da come si è scelto di costruire un modello.

1 SIMULAZIONE Attività e ritardi Un attività è un operazione la cui durata è nota a priori all inizio dell esecuzione dell attività stessa. Tale durata può essere una costante, un valore aleatorio generato da una distribuzione di probabilità, oppure data in input o calcolata in base ad altri eventi che accadono nel sistema. Un esempio è dato dal tempo di servizio in un sistema a coda. Un ritardo è un periodo di tempo di durata indefinita che è determinata dalle condizioni stesse del sistema. Il tempo che un entità trascorre presso una coda prima che si liberi una risorsa della quale necessita è un ritardo. 2.1.2 Classificazione dei modelli si simulazione I modelli di simulazione si possono classificare in base a diversi criteri; una prima distinzione già vista è tra modelli continui, in cui le variabili variano con continuità; modelli discreti, in cui il valore delle variabili cambia in ben definiti istanti di tempo. Un altra distinzione è tra: modelli statici, che rappresentano un sistema in un particolare istante di tempo; modelli dinamici, che rappresentano un sistema in evoluzione nel tempo. Infine, si possono distinguere modelli deterministici, che non contengono componenti probabilistici; modelli stocastici, che presentano elementi soggetti ad aleatorietà. In questa trattazione considereremo modelli di simulazione discreti, dinamici, stocastici che vengono comunemente chiamati modelli di simulazione ad eventi discreti. Molte applicazioni sono ben rappresentate da modelli di questo tipo ed inoltre approssimando variazioni continue con variazioni discrete è possibile utilizzare modelli ad eventi discreti anche per approssimare il comportamento di sistemi continui semplificando quindi molto l analisi. 2.1.3 Simulazione ad eventi discreti Nella simulazione ad eventi discreti il sistema è rappresentato, nella sua evoluzione nel tempo, con variabili che cambiano instantaneamente il loro valore in ben definiti istanti di tempo appartenenti ad un insieme numerabile. Questi istanti sono quelli nei quali accadono gli eventi. È chiaro che, essendo questi modelli di natura dinamica, è necessario registrare, ovvero tenere memoria, del tempo

G À SUI MODELLI DI SIMULAZIONE 127 (simulato) che procede. In particolare sarà necessario definire un meccanismo di avanzamento del tempo per far procedere il tempo simulato da un valore ad un altro. La variabile che in un modello di simulazione fornisce il valore corrente del Simulation tempo simulato si chiama simulation clock, ed esistono due modi per definire clock il suo avanzamento: avanzamento del tempo al prossimo evento, avanzamento del tempo ad incrementi prefissati. Il primo è quello più diffuso ed è quello a cui faremo riferimento. In questo caso il simulation clock è inizializzato a zero e viene avanzato al tempo dell accadimento del primo degli eventi futuri; poi il sistema viene aggiornato tenendo conto dell evento che è accaduto, si aggiornano i tempi degli eventi futuri e si itera il procedimento. A differenza dell avanzamento ad incrementi prefissati, i periodi di inattività non vengono considerati. Un esempio puòessere visto considerandoun sistema di codein cui gli eventi sono l arrivo di un cliente, la conclusione di un servizio; entrambi sono eventi perché provocano il cambiamento di valore di qualche variabile di stato. Il meccanismo di avanzamento del tempo segue in questo caso l accadere di questi due eventi nell ordine cronologico in cui essi si verificano. Un esempio di simulazione ad eventi discreti Vediamo, ora, un semplice esempio di come si realizza un simulazione ad eventi discreti. Consideriamo a tale scopo un sistema a coda costituito da una coda e da un singolo servente e supponiamo che i tempi di interarrivo siano uniformemente distribuiti tra 1 e 3 minuti e che anche i tempi di servizio siano uniformemente distribuiti tra 0.5 e 2 minuti. Vediamo, ora, come si può effettuare una simulazione di questo sistema. Poiché si tratta di un sistema regolato da due processi stocastici (gli arrivi e i servizi) per generare gli eventi è necessario generare osservazioni casuali dalle due distribuzioni di probabilità che regolano i due processi (come questo può essere effettuato sarà oggetto di considerazioni successive nel paragrafo 2.3). Supponiamo di avere a disposizione le due liste che forniscono, rispettivamente i tempi di interarrivo generati casualmente dalla distribuzione corrispondente e i tempi di servizio anch essi generati casualmente dalla distribuzione corrispondente: Tempi di interarrivo Tempi di servizio 1.9 1.7 1.3 1.8 1.1 1.5 1.0 0.9..

1 SIMULAZIONE Supponendoche al tempo t = 0 nessun utente è presente nel sistema. Osservando i valori campionati riportati nelle due liste, si ricava facilmente la successione degli eventi: Tempo t Eventi 1.9 arriva un utente inizia il servizio 3.2 arriva un utente e si pone in coda 3.6 finisce un servizio e il primo utente in coda inizia il servizio 4.3 arriva un utente e si pone in coda 5.3 arriva un utente e si pone in coda 5.4 finisce un servizio e il primo utente in coda inizia il servizio.. Limitando questa semplice simulazione al tempo t = 5.4 (in modo che due utenti sono entrati e hanno completato il servizio), possiamo calcolare, ad esempio, il tempo medio di permanenza nel sistema: il primo utente rimane nel sistema 1.7 minuti, il secondo 2.2 minuti e quindi il valore medio è 1.95. Questa stima, ovviamente non ha alcun senso perché ottenuta dalla particolare sequenza di numeri casuali delle due liste. Quindi, se l esempio da un lato vuole mettere evidenza il meccanismo di una simulazione ad eventi discreti, dall altro mette fin d ora in evidenza un errore che si potrebbe commettere nel reputare affidabili i risultati di una sola esecuzione e che ha avuto una durata arbitraria. D altra parte c è anche da tener presente che se siamo interessati a valutare misure di prestazioni del sistema a regime, ovvero quando sono state raggiunte condizioni di stazionarietà, sarà necessario non prendere in considerazione il sistema durante il periodo iniziale di transitorio. Queste problematiche rappresentano un elemento chiave di ogni simulazione e saranno considerate in dettaglio nel seguito. 2.1.4 Schema dello studio di un problema basato sulla simulazione In questo paragrafo riportiamo uno schema che descrive la successione delle varie fasi che caratterizzano uno studio basato sulla simulazione. 1. Analisi del problema Consiste nel comprendere il problema cercando di capire quali sono gli scopi dello studio e di identificare quali sono le componenti essenziali e quali sono le misure di prestazione che interessano. Naturalmente, se una versione del sistema è già operativa, si deve osservare tale sistema per dedurne le caratteristiche fondamentali. 2. Formulazione del modello di simulazione Poiché stiamo trattando sistemi stocastici, per formulare un modello di si-

G À SUI MODELLI DI SIMULAZIONE 129 mulazione è necessario conoscere le distribuzioni di probabilità delle quantità di interesse. Infatti, per generare vari scenari rappresentativi di come un sistema funziona, è essenziale che una simulazione generi osservazioni casuali da queste distribuzioni. Ad esempio, nei sistemi a coda è necessaria la distribuzione dei tempi di interarrivo e i tempi di servizio; nella gestione delle scorte è necessaria la distribuzione della richiesta dei prodotti e la distribuzione del tempo tra un ordine e il ricevimento della merce; nella gestione dei sistemi di produzione con macchine che occasionalmente possono guastarsi, sarà necessario conoscere la distribuzione del tempo fino a che una macchina si guasta e la distribuzione dei tempi di riparazione. Generalmente è possibile solo stimare queste distribuzioni derivandole, ad esempio, dall osservazione di sistemi simili già esistenti. Se dall analisi dei dati si vede che la forma di questa distribuzione approssima una distribuzione tipo standard, si può utilizzare la distribuzione teorica standard effettuando un test statistico per verificare se i dati possono essere rappresentati bene mediante quella distribuzione di probabilità. Se non esistono sistemi simili dai quali ottenere dati osservabili si deve far ricorso ad altre fonti di informazioni: specifiche delle macchine, manuali di istruzioni delle stesse, studi sperimentali, etc. La costruzione di un modello di simulazione è un procedimento complesso. In particolare, facendo riferimento alla simulazione ad eventi discreti, la costruzione di un modello prevede le seguenti fasi: (a) Definizione delle variabili di stato. (b) Identificazione dei valori che possono essere assunti dalle variabili di stato. (c) Identificazione dei possibili eventi che fanno cambiare lo stato del sistema. (d) Realizzazione di una misura del tempo simulato, simulation clock, che registra lo scorrimento del tempo simulato. (e) Realizzazione di un metodo per generare casualmente gli eventi. (f) Identificazione delle transizioni di stato generate dagli eventi. 3. Analisi del modello di simulazione Nella fase di analisi del modello deve essere verificata l accuratezza del modello realizzato con diverse modalità. Di solito ciò viene fatto attraverso un analisi concettuale del modello che può essere effettuata insieme agli esperti del settore applicativo in modo da evidenziare eventuali errori e/o omissioni.

1 SIMULAZIONE 4. Scelta del software e costruzione di un programma Dopo aver costruito il modello, esso deve essere tradotto in un programma. A tale scopo è possibile utilizzare diversi strumenti. Linguaggi general purpose. Linguaggi come C++, FORTRAN, etc. Erano molto utilizzati alla nascita della simulazione ma richiedono molto tempo di programmazione e quindi si preferisce, in genere, utilizzare linguaggi specifici per la simulazione. Linguaggi di simulazione generali. Forniscono molte caratteristiche necessarie per realizzare un modello di simulazione riducendo così il tempo di realizzazione; esempi sono MODSIM, GPSS, SIMSCRIPT, etc. Anche se meno flessibili dei linguaggi general purpose sono il modo più naturale per realizzare un modello di simulazione. Simulatori. Sono packages per la simulazione orientati alle applicazioni. Esistono numerosi pacchetti software di tipo interattivo per la simulazione come ARENA, WITNESS, EXTEND, MICRO SAINT. Alcuni sono abbastanza generali anche se dedicati a specifici tipi di sistemi come impianti industriali, sistemi di comunicazione, altri invece sono molto specifici come, ad esempio, nel caso di simulatori di centrali nucleari o di simulatori della fisiologia cardiovascolare. I simulatori permettono di costruire un programma di simulazione utilizzando menù grafici senza bisogno di programmare. Sono abbastanza facili da imparare e un inconveniente che molti di essi hanno è di essere limitati a modellare quei sistemi previsti dalle loro caratteristiche standard. In ogni caso alcuni simulatori prevedono la possibilità di incorporare routines scritte in un linguaggio general purpose per trattare elementi non standard. Spesso hanno anche capacità di animazione per mostrare la simulazione in azione e questo permette di illustrare facilmente la simulazione anche a persone non esperte. Fogli elettronici (spreadsheets). Quando si hanno problemi di piccole dimensioni si possono anche utilizzare fogli elettronici, come ad esempio Excel, per avere un idea del funzionamento di un sistema. 5. Validazione del modello di simulazione Nella fase successiva è necessario verificare se il modello che è stato realizzato fornisce risultati validi per il sistema in esame. Più in particolare si deve verificare se le misure di prestazione del sistema reale sono bene approssimate dalle misure generate dal modello di simulazione. Ciò è molto

G À SUI MODELLI DI SIMULAZIONE 131 difficile da effettuare, specialmente in fase di progettazione quando il sistema reale non esiste. 6. Progettazione della simulazione Prima di passare all esecuzione della simulazione è necessario decidere come condurre la simulazione. Spesso una simulazione è un processo che evolve durante la sua realizzazione e dove i risultati iniziali aiutano a condurre la simulazione verso configurazioni più complesse. Ci sono inoltre problematiche di tipo statistico: la determinazione della lunghezza del transitorio del sistema prima di raggiungere condizioni di stazionarietà, momento dal quale si inizia a raccogliere dati se si vogliono misure di prestazione del sistema a regime; la determinazione della lunghezza della simulazione (durata) dopo che il sistema ha raggiunto l equilibrio. Infatti, si deve sempre tener presente che la simulazione non produce valori esatti delle misure di prestazione di un sistema in quanto ogni singola simulazione può essere vista come un esperimento statistico che genera osservazioni statistiche sulle prestazioni del sistema. Queste osservazioni sono poi utilizzate per produrre stime delle misure di prestazione e naturalmente aumentando la durata della simulazione può aumentare la precisione di queste stime. 7. Esecuzione della simulazione e analisi dei risultati L output della simulazione fornisce stime statistiche delle misure di prestazione di un sistema. Un punto fondamentale è che ogni misura sia accompagnata dall intervallo di confidenza all interno del quale essa può variare. Questi risultati potrebbero evidenziare subito una configurazione del sistema migliore delle altre, ma più spesso verranno identificate più di una configurazione candidata ad essere la migliore. In questo caso potrebbero essere necessarie ulteriori indagini per confrontare queste configurazioni. 8. Presentazione delle conclusioni In conclusione, è necessario redigere una relazione ed una presentazione che riassuma lo studio effettuato, come è stato condotto e includendo la documentazione necessaria. Includere nella presentazione un animazione di una simulazione è di solito molto efficace. 2.1.5 Applicazioni tipiche della simulazione La simulazione è uno strumento molto flessibile: può essere utilizzata per studiare la maggior parte dei sistemi esistenti. È impossibile enumerare tutte le aree

1 SIMULAZIONE specifiche in cui la simulazione può essere utilizzata. Come esempi, riportiamo, di seguito, solo alcune importanti tipiche categorie di applicazioni in cui si usa la simulazione. Progettazione e definizione delle procedure operative di un sistema di servizio. Gestione di sistemi di scorte. Progetto e definizione delle procedure operative di sistemi di produzione. Progetto e funzionamento del sistemi di distribuzione. Analisi dei rischi finanziari. Gestione dei progetti.

A 133 2.2 ANALISI DELL INPUT 2.2.1 Generalità Per effettuare una simulazione di un sistema che presenta elementi stocastici è necessario specificare le distribuzioni di probabilità che regolano i processi che caratterizzano il sistema stesso. Ad esempio, nei sistemi a coda devono essere note le distribuzioni di probabilità dei tempi di interarrivo e dei tempi di servizio. Se è possibile raccogliere dati reali (osservazioni) sulle variabili aleatorie di interesse, essi possono essere utilizzati per determinare queste distribuzioni facendo uso di tecniche di inferenza statistica. Questa prima fase viene di solito chiamata analisi dell input e sarà oggetto di studio di questo paragrafo. Una volta stabilite tali distribuzioni, la simulazione procede generando valori casuali da queste distribuzioni, ovvero, durante ogni esecuzione, la simulazione genera osservazioni casuali di variabili aleatorie distribuite secondo particolari distribuzioni di probabilità. Successivamente, vengono utilizzate tecniche statistiche per interpretare i risultati ottenuti da una simulazione (analisi dell output). Questi ultimi due aspetti saranno trattati nei paragrafi successivi. In generale, nello studio di un fenomeno riguardante un insieme di elementi (popolazione) che presenta caratteristiche aleatorie, molto spesso si dispone solo di informazioni su una parte di essi (campione) e si vogliono dedurre proprietà generali riguardanti l intera popolazione. L inferenza statistica si occupa di questa problematica e riveste un importante strumento di analisi. Esula dallo scopo di queste note una trattazione degli elementi dell inferenza statistica che verranno assunti come noti. Una breve rassegna di alcuni importanti risultati è riportata nell Appendice. Richiamiamo di seguito solo alcune importanti osservazioni e le ben note definizioni di media campionaria e varianza campionaria Solitamente viene fatta l assunzione che esiste una distribuzione di probabilità della popolazione nel senso che se da essa vengono estratti casualmente alcuni elementi, ad essi sono associate variabili aleatorie indipendenti identicamente distribuite secondo tale distribuzione. In questo senso, un insieme di variabili aleatorie X 1,...,X n di variabili aleatorie indipendenti tutte con la stessa distribuzione si dice campione di questa distribuzione. L interesse principale risiede nella possibilità di dedurre caratteristiche della distribuzione non nota sulla base dei dati a disposizione. Naturalmente ci sono casi in cui della distribuzione della popolazione non si conosce nulla (se non il fatto che essa è discreta o continua), mentreinaltri casi ladistribuzioneènotamanonsononoti alcuni suoiparametri. Formalmente, sia dato un campione X 1,...,X n estratto da una popolazione, ovvero le X i sono variabili aleatorie indipendenti identicamente distribuite, e sia µ e σ 2 rispettivamente la loro media e la loro varianza (ovvero la media e la varianza della popolazione). La media campionaria è data da Media campionaria

1 SIMULAZIONE X n = 1 n n X i. i=1 X n è una variabile aleatoria funzione delle X i e si verifica facilmente che risulta E( X n ) = µ e Var( X n ) = σ2 n. La varianza campionaria è data da Varianza campionaria s 2 n = 1 n 1 n ( Xi X ) 2 n i=1 e si verifica facilmente che risulta E(s 2 n) = σ 2. 2.2.2 Scelta delle distribuzioni di input Se è possibile raccogliere dati reali sulle variabili aleatorie di interesse, essi possono essere utilizzati per determinare una distribuzione di probabilità che meglio li rappresenta secondo tre metodi: 1. i dati sono usati direttamente nella simulazione ( trace driver simulation ). 2. i dati sono raccolti per generare una distribuzione empirica, ovvero per definire una funzione di distribuzione empirica che verrà usata per produrre l input della simulazione; 3. i dati raccolti sono utilizzati per definire una distribuzione teorica. Vengono utilizzate tecniche statistiche per analizzare se una distribuzione teorica tra quelle note sia adatta a rappresentare i dati, effettuando i test di ipotesi per verificare la rappresentatività della distribuzione ipotizzata (problema del fitting ). Il primo approccio ha senso solamente quando si possono raccogliere grandi quantità di dati rappresentativi del funzionamento del sistema; ha l ovvio difetto di rappresentare il passato ed è usato raramente; può essere utile per effettuare una validazione del modello, ovvero per confrontare il modello con il sistema reale, ma non permette un analisi previsionale. Il secondo approccio elimina questo inconveniente poiché, almeno per distribuzioni continue, può essere ottenuto ogni valore compreso tra il minimo e il massimo osservati. Se si può determinare una distribuzione teorica che si adatta bene ai dati, il terzo approccio è quello preferibile. I motivi per cui una distribuzione teorica in genere è preferibile a una empirica sono i seguenti: le distribuzioni empiriche possono avere irregolarità (specialmente se i dati sono scarsi) mentre le distribuzioni teoriche sono più smooth, nel senso

A 135 che tendono a regolarizzare i dati e rappresentano un comportamento generale; le distribuzioni empiriche non permettono di generare valori al di fuori del range di valori osservati, mentre le misure di prestazione possono, a volte, dipendere anche da eventi eccezionali che corrispondono a valori fuori da tale range; le distribuzioni teoriche sono un modo compatto di rappresentare un insieme di valori, mentre in una distribuzione empirica, se ci sono n dati disponibili, si ha bisogno di 2n valori per rappresentarla: il dato e le corrispondenti probabilità cumulative (si hanno quindi grandi quantità di dati da memorizzare); le distribuzioni teoriche si possono variare più facilmente. Ad esempio se la distribuzione esponenziale degli arrivi di un sistema di code ha media pari a 1/λ = 5, per effettuare una diminuzione del 20% sarà sufficiente considerare 1/λ = 4.9. Tuttavia esistono situazioni in cui nessuna distribuzione teorica si adatta ai dati osservati e allora in questo caso si deve usare una distribuzione empirica. Un difetto dell uso di distribuzioni teoriche sta nel fatto che esse possono generare anche valori molto grandi (anche se con probabilità molto piccole), quando nella pratica questi non vengono mai assunti realmente. 2.2.3 Distribuzioni empiriche Supponiamo di disporre di n osservazioni X 1,...,X n di una variabile aleatoria e di voler costruire, a partire da esse, una distribuzione continua. Supponiamo di aver ordinato le X i per valori crescenti e sia X (i) l i-esima osservazione in ordine crescente, ovvero risulti X (1) X (2)... X (n). Si può costruire la distribuzione empirica come una distribuzione continua lineare a tratti, così definita: 0 se x < X (1) F(x) = i 1 n 1 + x X (i) (n 1)(X (i+1) X (i) ) se X (i) x < X (i+1), i = 1,...,n 1 1 se X (n) x

1 SIMULAZIONE Si osservi che per ogni i vale F(X (i) ) = i 1 che è approssimativamente (per n n 1 grande) la proporzione delle X i che sono minori di X (i). Esempio 2.2.1 Disponendo dei seguenti valori osservati: 1, 0.4, 4, 2, 2.5, 3.6, 3 costruire il grafico della distribuzione empirica. Dopo aver ordinato le osservazioni si ottiene il grafico della F(x) riportato nella Figura 2.2.1. F 1 Grafico della distribuzione empirica dell Esempio 2.2.1 Come abbiamo già osservato, uno svantaggio nell utilizzare una distribuzione empirica è che le variabili aleatorie generate da essa durante un esecuzione di una simulazione non possono essere mai più piccole di X (1) o più grandi di X (n). Analogamente si possono costruire distribuzioni empiriche per distribuzioni discrete; infatti, è sufficiente per ogni x definire p(x) come proporzione delle X i che sono uguali ad x. 2.2.4 Distribuzioni teoriche Distribuzioni Continue Le distribuzioni teoriche continue alle quali si può fare riferimento nella

A 137 costruzione di un modello di simulazione sono molte. Quelle più comunemente utilizzate sono la distribuzione uniforme, la distribuzione esponenziale, la distribuzione gamma, la distribuzione normale, la distribuzione lognormale, la distribuzione di Weibull, la distribuzione beta, la distribuzione triangolare. In realtà spesso si tratta di famiglie di distribuzioni in quanto sono presenti uno o più parametri che possono essere classificati in: parametro di posizione: specifica un punto del range della distribuzione e una sua variazione provoca solamente una traslazione; parametro di scala: specifica l unità di misura dei valori, parametro di forma: specifica l andamento della distribuzione. Distribuzioni Discrete Le distribuzioni teoriche discrete che vengono di solito utilizzate come input di una simulazione sono: la distribuzione uniforme, la distribuzione di Bernoulli, la distribuzione binomiale, la distribuzione geometrica, la distribuzione di Poisson, la distribuzione binomiale negativa. Per una descrizione dettagliata di ogni singola distribuzione di probabilità e delle caratteristiche specifiche, si rimanda ad un qualsiasi testo di Calcolo delle Probabilità. 2.2.5 Scelta di una distribuzione teorica Determinare quale distribuzione teorica è adatta a rappresentare dei dati è un problema complesso. Un modo efficiente per effettuare questa scelta può essere così schematizzato: Dopo una preliminare verifica dell indipendenza delle osservazioni, si cerca di individuare una o più famiglie di distribuzioni candidate, stimando poi nella fase successiva i parametri di queste distribuzioni. A questo punto è necessario effettuare una verifica della rappresentatività dei dati reali da parte della distribuzioni scelta. Se tale verifica non ha successo, è necessario individuare una differente famiglia di distribuzioni ed eventualmente iterare il processo fino a che la verifica è soddisfatta. Indipendenza delle osservazioni Preliminarmente è necessario verificare l indipendenza delle osservazioni in quanto questa è un assunzione essenziale per l utilizzo di tecniche statistiche quali la stima della massima verosimiglianza o il test chi quadro. Un primo strumento di analisi è basato su una tecnica grafica. Siano X 1,...,X n le osservazioni elencate così come sono state osservate nel tempo; un modo possibile per avere un idea

1 SIMULAZIONE i ii! "i# $# "elazione fra diverse osservazioni. Sia ρ j = n j (X i X n )(X i+j X n ) i=1 (n j)s 2 n la stima del coefficiente di correlazione ρ j di X i e X i+j, ovvero di dueosservazioni distanti j. Se le osservazioni sono indipendenti allora il coefficiente di correlazione è nullo, cioè ρ j = 0 per ogni j = 1,...,n 1. Tuttavia poiché ρ j è una stima di ρ j, anche nel caso di osservazioni indipendenti ρ j potrebbe essere non nullo. Ci si aspetta, comunque che esso sia prossimo a zero, e quindi possiamo dire che se ρ j è diverso da zero in maniera significativa, allora le X i non sono indipendenti. Ci sono due modi grafici per verificare informalmente se le X i sono indipendenti: il grafico di ρ j al variare di j e il diagramma di dispersione delle osservazioni X 1,...,X n, ovvero le coppie (X i,x i+1 ) con i = 1,2,...,n 1. In caso di osservazioni indipendenti i punti dovrebbero risultare distribuiti casualmente sul piano, altrimenti, in presenza di correlazioni, essi saranno concentrati intorno a rette.

A 139 Individuazione di una famiglia di distribuzioni Una volta verificata l indipendenza delle osservazioni, il passo successivo è quello di individuare una distribuzione da scegliere come input della simulazione che sia rappresentativa della variabile aleatoria in ingresso alla simulazione. In una prima fase vorremmo individuare una famiglia generale senza occuparci, per ora, dei suoi parametri. In alcuni casi, quando esiste una conoscenza a priori del fenomeno che la variabile aleatoria rappresenta, essa può essere utilizzata per ottenere la distribuzione. Ciò è fatto su base teorica e non richiede osservazioni. Ad esempio, se supponiamo che dei clienti arrivano ad un sistema di servizio uno alla volta e che il numero dei clienti che arrivano in intervalli disgiunti è indipendente, allora ci sono motivi teorici per assumere che i tempi di interarrivo siano variabili aleatorie indipendenti identicamente distribuite secondo la distribuzione esponenziale. Oppure, può anche accadere che la conoscenza a priori permetta solo di escludere alcune distribuzioni. Tuttavia, nella pratica spesso queste informazioni a priori non sono disponibili, o comunque non sufficienti. Quello che si fa più frequentemente è ricorrere a due strumenti di analisi statistica: le statistiche riassuntive delle osservazioni e i grafici dell andamento delle osservazioni. Statistiche riassuntive Dalle osservazioni è possibile ricavare stime di parametri dalle quali cercare di individuare una famiglia di distribuzioni che meglio realizza il fitting dei dati. I parametri che di solito vengono presi in considerazione sono i seguenti: l intervallo [X (1),X (n) ] che ha per estremi il più piccolo e il più grande valore osservati e che approssima il range della distribuzione; la stima della media µ data X n = 1 n X i ; n la stima della mediana data da { X(n+1)/2 se n è dispari [X (n/2) +X ((n/2)+1) ]/2 se n è pari; la stima della varianza σ 2 data da s 2 n = stime di misure di variabilità: i=1 n (X i X n ) 2 i=1 n 1 nel caso continuo, la stima del rapporto cv = σ 2 /µ (coefficiente di variazione) data da ĉv = s 2 n/ X n ;

1 SIMULAZIONE nel caso discreto, la stima del rapporto τ = σ 2 /µ data da τ = s 2 n/ X n la stima del grado di asimmetria ν = E[(X µ)3 ] (σ 2 ) 3/2 n [(X i X n ) 3 ]/n data da ν = i=1 (s 2 n) 3/2. Un confronto tra media e mediana può farci capire se considerare la distribuzione simmetrica o no; questo perché nel caso di distribuzioni continue simmetriche, media e mediana coincidono, come ad esempio nel caso della distribuzione normale (nel caso di distribuzioni discrete questo è vero solo se il numero dei valori distinti che possono essere assunti è pari, altrimenti sono solo approssimativamente uguali). È importante tener presente che si hanno solo le stime dei parametri, pertanto anche nel caso di distribuzioni continue simmetriche, stima di media e mediana possono non essere esattamente uguali. Per quanto riguarda la misura di variabilità data nel caso continuo dal rapporto cv, si ha che cv = 1 per la distribuzione esponenziale indipendentemente dal parametro; nel caso discreto si considera invece il rapporto τ e si ha che τ = 1 per la distribuzione di Poisson e τ < 1 per la distribuzione binomiale. Il grado di asimmetria ν vale zero per distribuzioni simmetriche mentre se ν > 0ladistribuzionehaasimmetriaversodestra(ν = 2perladistribuzione esponenziale); se ν < 0 la distribuzione ha asimmetria verso sinistra. Uso di grafici (tecnica dell istogramma) Per distribuzioni continue è molto utile costruire un istogramma di valori assunti dalla variabile aleatoria sulla base delle osservazioni che si hanno a disposizione. Un istogramma può essere considerato una stima grafica del grafico della densità di probabilità corrispondente alla distribuzione dei dati X 1,...,X n. Le funzioni densità di probabilità tipiche hanno forme che in molti casi sono ben riconoscibili e quindi un istogramma può fornire utili indicazioni. Ricordiamo che per costruire un istogramma si suddivide l intervallo formato dal minimo e dal massimo dei valori assunti dai dati, in k intervalli disgiunti adiacenti [b 0,b 1 ), [b 1,b 2 ),...,[b k 1,b k ) di uguale ampiezza b = b i b i 1. Per j = 1,2,...,k si definisce h j il numero delle osservazioni che cadono nel j-esimo intervallo diviso il numero totale delle osservazioni, ovvero la proporzione delle X i contenute nel j- esimo intervallo [b j 1,b j ). Si definisce la funzione

A 141 0 se x < b 0 h(x) = se b j 1 x < b j, j = 1,2,...,k h j 0 se x b k. Il grafico di h(x) è costante a tratti e può fornire una buona indicazione sul tipo di distribuzione che ha la variabile aleatoria in questione, confrontandolo con i grafici delle densità di probabilità ignorando, per il momento, posizione e scala, ma considerando solo la forma. Mostriamo ora le motivazioni che sono alla base del fatto che la forma di h(x) dovrebbe somigliare alla densità di probabilità f dei dati. A questo scopo, sia X una variabile aleatoria con densità di probabilità data da f. Allora per ogni j fissato (j = 1,2,...,k), applicando il teorema della media si ha P(b j 1 X b j ) = bj b j 1 f(x)dx = b f(y) per qualche y (b j 1,b j ). D altra parte h j approssima P(b j 1 X b j ) che è il valore di h(y) perché h(x) = h j per ogni x [b j i,b j ); si ha dunque: h(y) = h j bf(y). Quindi, h(y) è approssimativamente proporzionale a f(y), ovvero h e f hanno approssimativamente forma simile. Una difficoltà è data dall assenza di criteri generali per scegliere k. C è una regola detta regola di Sturges che suggerisce di scegliere k = 1 + log 2 n. Regola di Tale regola non è peròutile in generale e si raccomanda piuttosto di provare Sturges differenti valori di b e scegliere il più piccolo che fornisce un istogramma smooth. La scelta di b è problematica in genere; infatti se si sceglie troppo piccolo, l istogramma sarà molto poco uniforme (frastagliato); se si sceglie troppo grande l istogramma può avere una forma a blocchi e il vero andamento della densità che stiamo cercando sarà mascherata in quanto i dati sono sovraggregati. Nel caso di variabili discrete si può ugualmente rappresentare la distribuzione di probabilità usando un istogramma; per ogni valore x j che può essere assunto dai dati, sia h j = n j /n dove n j è il numero delle occorrenze di tali valori, ovvero h j è la proporzione delle X i che sono uguali a x j. Si tracciano poi le barre verticali di altezza h j in corrispondenza di x j.

1 SIMULAZIONE Stima dei parametri Dopo aver individuato una o più famiglie di distribuzioni candidate a rappresentare i dati osservati, è necessario determinare i parametri di queste distribuzioni in modo che siano completamente definite e utilizzabili in ingresso ad una simulazione. Gli stessi dati utilizzati per individuare le famiglie di distribuzioni sono utilizzati per stimare i loro parametri. La stima dei parametri è un argomento vasto che si assume noto. Alcuni cenni riguardanti lo stimatore di massima verosimiglianza (Maximum Likelihood Estimator) sono riportati nel paragrafo 3.3. Verifica della rappresentatività della distribuzione di probabilità Dopo aver individuato una o più distribuzioni di probabilità candidate e i relativi parametri, si devono esaminare queste distribuzioni di probabilità per verificare se esse rappresentano bene i dati osservati. A tale scopo, si utilizzano di solito procedure euristiche basate su confronti grafici e test statistici. Procedure grafiche Per distribuzioni continue, si confronta l istogramma dei dati con il grafico della densità di probabilità della distribuzione di probabilità ipotizzata, oppure, per distribuzioni discrete, si confronta l istogramma con la funzione p(x) della distribuzione ipotizzata. Un altro possibile confronto è tra il grafico della distribuzione empirica e il grafico della funzione di distribuzione della distribuzione ipotizzata. Test statistici Come è noto, i test delle ipotesi possono essere utilizzati per verificare se le osservazioni X 1,...,X n sono un campione indipendente di una particolare distribuzione di probabilità con funzione di distribuzione F. I due test piú comuni sono i test Chi quadro e Kolmogorov Smirnov e sono adatti al caso che stiamo esaminando anche se essi presentano le loro limitazioni intrinseche. Un esposizione sintetica di questi due test è riportata nell Appendice. 2.2.6 Scelta delle distribuzioni di input in assenza di dati In alcuni casi, nella pratica, può accadere che non sia possibile raccogliere dati sul funzionamente del sistema che si vuole studiare perchè esso è ancora in fase di progettazione e quindi non ancora esistente. In questi casi non sono quindi disponibili dati da utilizzare per selezionare una distribuzione di input ad una simulazione e quindi non sono applicabili le tecniche viste fino ad ora. Senza entrare nei dettagli, osserviamo solamente che sarà necessario far ricorso a procedure euristiche che si basano sulla natura del sistema, sul ricorso a persone esperte di sistemi della tipologia di interesse, sulle limitazioni fisiche o convenzionali del processo in esame.

G % & &AA ' % & ( A 143 2.3 GENERAZIONE DI OSSERVAZIONI CASUALI Una volta determinate le distribuzioni di input, la simulazione dovrà generare durante ogni esecuzione osservazioni casuali di variabili aleatorie distribuite secondo particolari distribuzioni di probabilità. Ad esempio, nel simulare un sistema di code M/M/1 si avrà bisogno di generare i tempi di interarrivo in accordo alla distribuzione esponenziale e così anche per i tempi di servizio. Un esempio banale di ciò è stato mostrato alla pagina 127, dove nell effettuare una semplice esemplificazione di una simulazione abbiamo avuto bisogno delle due liste di valori generati casualmente dalle distribuzioni corrispondenti. Ogni metodo per generare osservazioni casuali da distribuzioni fissate utilizza variabili indipendenti identicamente distribuite secondo la distribuzione uniforme in [0,1) (che indichiamo con U(0,1)), nel senso che costruisce le osservazioni casuali desiderate a partire da numeri casuali generati uniformemente in [0, 1) attraverso opportune trasformazioni. Quindi preliminarmente analizziamo brevemente nel prossimo paragrafo la generazione di numeri casuali con distribuzione uniforme e nel paragrafo successivo studieremo come generare osservazioni casuali secondo distribuzioni fissate a partire dalla distribuzione U(0, 1). 2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme In generale, per generare successioni di numeri casuali si potrebbero utilizzare metodi quali il lancio dei dadi, l estrazione da urne, ma ovviamente questi metodi non sono utilizzabili nella simulazione dove è necessario generare lunghe successioni di numeri casuali in tempi molto brevi. Attualmente per generare successioni di numeri casuali si ricorre all uso del calcolatore e in realtà quello che si fa è la generazione deterministica di successioni di numeri aventi proprietà statistiche che approssimano molto bene quelle di successioni veramente casuali e che ad un analisi statistica risultano indistinguibili da successioni di numeri casuali. I Numeri numeri determinati con questa procedura si chiamano numeri pseudocasuali. pseudocasuali Per generare numeri pseudocasuali con distribuzione uniforme esistono diversi metodi; i più utilizzati sono i generatori congruenziali lineari. In questi metodi Generatori una successione di numeri interi Z i viene definita dalla seguente formula ricorsiva congruenziali lineari Z i+1 = az i +c ( mod m ) dove a si chiama moltiplicatore e c viene detto incremento 1. Il termine Z 0 si chiama seme. Il generatore si dice moltiplicativo se c = 0. Quindi vengono generati al più m numeri interi Z i distinti con 0 Z i m 1. Per ottenere numeri casuali U i in [0,1) è sufficiente definire U i = Z i /m. 1 La notazione mod m indica la congruenza modulo m, ovvero il resto della divisione per m

1 SIMULAZIONE Esempio 2.3.1 Vediamo un esempio di generatore moltiplicativo (c = 0). Prendiamo a = 3, Z 0 = 3 e m = 7. Si ottiene Z 1 = 9 ( mod 7 ) = 2 Z 2 = 6 ( mod 7 ) = 6 Z 3 = 18 ( mod 7 ) = 4 Z 4 = 12 ( mod 7 ) = 5 Z 5 = 15 ( mod 7 ) = 1 Z 6 = 3 ( mod 7 ) = 3 Z 7 = 9 ( mod 7 ) = 2 Periodo pieno Naturalmente la successione è periodica di periodo al più pari ad m. Se un generatore ha periodo pari ad m, ovvero il periodo massimo, si dice che il generatore ha periodo pieno e, in questo caso, ogni scelta del seme Z 0 porterà alla generazione dell intero ciclo di valori da 0 a m 1. Se invece un generatore non ha periodo pieno allora la lunghezza del ciclo può dipendere dal particolare valore del seme Z 0. È importante avere periodolungo o, ancora meglio, periodopieno in modoche vengono generati tutti gli interi tra 0 e m 1 ed inoltre essi appariranno esattamente una volta ogni ciclo e questo contribuisce all uniformità delle U i. Il teorema che segue riporta le condizioni che devono essere soddisfatte dai parametri m, a e c affinché il generatore abbia periodo pieno. Teorema 2.3.1 Un generatore congruenziale lineare ha periodo pieno se e solo se sono soddisfatte le seguenti condizioni: i) m e c sono primi tra loro; ii) se q è un numero primo che divide m, allora q divide a 1; iii) se 4 divide m, allora 4 divide a 1. È obiezione comune a tutti i generatori pseudo random il fatto che le Z i non sono realmente casuali, ma ogni Z i è completamente determinata dai quattro parametri m, a, c e Z 0. Tuttavia, un attenta scelta di questi parametri induce le Z i ad assumere valori tali che le U i corrispondenti siano indipendenti identicamente distribuite secondo la distribuzione uniforme in [0, 1). Un altra obiezione riguarda il fatto che, ovviamente ogni numero reale nell intervallo [0, 1) dovrà avere la stessa probabilità di essere generato, mentre le U i assumono solamente valori razionali. A questo inconveniente si può ovviare scegliendo m molto grande (m 10 9 ) in modo che i numeri generati U i costituiscono un sottoinsieme denso dell intervallo [0, 1).

G % & &AA ' % & ( A 145 Nei linguaggi di programmazione sono di solito disponibili generatori di numeri pseudocasuali ed esistono metodi statistici per valutarne la qualità. Tra tutti i generatori di numeri pseudocasuali basati su metodi congruenziali moltiplicativi, nel caso di computer a 32 bit, il più utilizzato è il generatore di Learmouth Lewis dato da c = 0, a = 7 5 e m = 2 31 1. 2.3.2 Generazione di osservazioni casuali da una distribuzione di probabilità Esaminiamo ora come, a partire da numeri casuali uniformemente distribuiti in [0, 1) sia possibile generare osservazioni da una fissata distribuzione di probabilità. Per questo scopo sono state introdotte molte tecniche. Ci limitiamo nel seguito a considerarne due tra le più utilizzate: il metodo della trasformazione inversa e il metodo dell accettazione reiezione. Metodo della trasformazione inversa È un metodo per generare osservazioni da una distribuzione di probabilità. Il metodo si basa sul seguente risultato teorico [Ross, 2003a] valido nel caso di distribuzioni continue: Proposizione 2.3.2 Sia U una variabile aleatoria uniforme in [0, 1). Allora per ogni funzione di distribuzione continua F, la variabile aleatoria ha funzione di distribuzione F. X = F 1 (U) Dimostrazione: Sia F X la funzione di distribuzione della variabile aleatoria X. Quindi, per ogni y risulta F X (y) = P (X y) = P ( F 1 (U) y ). Poiché F(x) è una funzione di distribuzione, essa è monotona crescente e quindi si ha che F 1 (U) y se e solo se U F(y). Quindi, poichè U ha distribuzione uniforme, si ha F X (y) = P (U F(y)) = F(y), ovvero F è la funzione di distribuzione della X. Quindi, sulla base di questo risultato, data una distribuzione di probabilità con funzione di distribuzione F, a partire dalla distribuzione uniforme in [0, 1) possiamo costruire una variabile aleatoria la cui funzione di distribuzione è F.

1 SIMULAZIONE Osservazione 2.3.3 Nel caso in cui la funzione F non è strettamente monotona, non è possibile definire la sua invera; in questi casi, si può utilizzare la funzione pseudoinversa data da F 1 (x) = inf{y IR x F(y)}. Esempio 2.3.4 Supponiamo di voler costruire una successione di numeri pseudocasuali come osservazioni dalla distribuzione esponenziale, ovvero con funzione di distribuzione F(x) = 1 e λx. Innanzitutto determiniamo F 1 : da u = F(x) = 1 e λx si ricava x = 1/λln(1 u), ovvero F 1 (u) = 1 λ ln(1 u). Quindi se U è una variabile aleatoria uniformemente distribuita in [0, 1), X = F 1 (U) = 1 ln(1 U) (2.3.1) λ è una variabile aleatoria con distribuzione esponenziale con media 1/λ. Quindi, data una successione di numeri pseudocasuali con distribuzione uniforme in [0,1), dalla (2.3.1) possiamo ottenere una successione di numeri pseudocasuali con distribuzione esponenziale. Osservazione 2.3.5 È importante osservare che se una variabile aleatoria U ha distribuzione uniforme in [0, 1), anche 1 U ha distribuzione uniforme in [0, 1) e quindi nella (2.3.1) si può sostituire nell argomento del logaritmo (1 U) con U. Tuttavia, come vedremo nel seguito nel paragrafo 2.5.1 sulle tecniche per la riduzione della varianza, questo cambiamento potrebbe indurre un cambiamento nella correlazione delle variabili X generate. Esempio 2.3.6 Utilizzando quanto ricavato nel precedente Esempio 2.3.4 si può ottenere la generazione di osservazioni casuali dalla distribuzione di Erlang. Infatti sappiamo che la somma di k variabili aleatorie indipendenti identicamente distribuite secondo la distribuzione esponenziale, ciascuna con media 1/(kµ) ha distribuzione di Erlang di parametro k e media 1/µ. Quindi avendo una successione di numeri uniformemente distribuiti in [0,1), u 1,...,u k, le osservazioni dalla distribuzione di Erlang possono essere ottenute da x = k i=1 ln(1 u i) kµ che è equivalente a [ k ] x = 1 kµ ln (1 u i). i=1