Introduzione alla Simulazione Numerica Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 1.0 - Novembre 2001 Simulazione numerica Tecnica che permette di eseguire esperimenti su un modello (realizzato al computer) che imita il funzionamento di un sistema reale Applicata a sistemi molto complessi dinamici e non stazionari risorse scarse e sistemi di code non possibili un modelli analitici soddisfacenti La simulazione è uno degli strumenti maggiormente usati nella pianificazione e gestione di sistemi produttivi e logistici Simul.2 1
Simulazione numerica (2) La simulazione di un sistema prevede la rappresentazione cronologica degli stati attraverso cui esso evolve nel tempo Il modello di simulazione è un programma che riproduce il funzionamento del sistema: Consente di modellare il sistema in modo fedele e dettagliato Consente l inclusione esplicita nel modello di non stazionarietà, stocasticità ed evoluzione nel tempo Simul.3 Inconvenienti della simulazione Non sono modelli analitici: consentono di ottenere solo stime dei valori che si vogliono osservare I fenomeni stocastici nel modello sono descritti medianti distribuzioni di probabilità I risultati che si ottengono sono variabili aleatorie (simulando più volte il sistema si hanno risultati diversi) Replicazione degli esperimenti ed analisi con metodi statistici dei risultati che si ottengono dagli esperimenti di simulazione Simul. 2
Esempio: stazione di servizio 2 blocchi per il rifornimento (risorse) unica coda FIFO per l attesa delle auto (entità) terminato il servizio le auto escono dal sistema STAZIONE 1 STAZIONE 2 Simul.5 Stazione di servizio (2) Scopo: valutare il dimensionamento dell impianto tempo in coda lunghezza media e massima della coda proporzione del tempo in cui le stazioni sono occupate Dimensionamento soddisfacente? Individuazione dei colli di bottiglia del sistema Modifica e verifica di configurazione alternative Definizione dell unità di misura del tempo Simul.6 3
Stazione di servizio (3) Se ci sono già NMAX auto in coda l auto che arriva rinuncia al servizio Reperimento di dati sui tempi del sistema frequenza degli arrivi tempo di servizio Osservazioni e/o descrizione mediante variabili casuali con distribuzioni di probabilità tipiche Ipotesi: tempo (t) espresso in minuti sistema inizialmente (t = 0) vuoto ed inattivo Simul.7 Stazione di servizio () Esempio di dati di input (noti, osservati) in minuti auto arrivo interarrivo t attesa t servizio uscita 1 0 9 9 2 7 11 3 7 3 2 18 27 13 6 12 25 5 17 8 11 36 6 21 6 5 32 7 23 2 Rinuncia 23 Simul.8
Comportamento dinamico auto arrivo interarrivo t attesa t servizio uscita 1 0 9 9 2 7 11 NMAX = 2 3 7 13 3 6 2 18 12 27 25 5 17 8 11 36 6 21 6 5 32 7 23 2 Rinuncia 23 A 1 I 1 A 2 I 2 A 3 I 3 A I A 5 A 6 A 7 I 5 I 6 rinuncia S1 S2 t F 1 F 2 F F 3 F 6 F 5 0 7 9 11 13 17 21 23 25 27 32 36 Simul.9 Input del modello dati deterministici: numero delle risorse capacità delle code tempi di trasferimento, servizio, interarrivo (??) dati stocastici: tempi di trasferimento, servizio, interarrivo (??) da descrivere mediante distribuzioni tipiche quali? con quali parametri caratteristici? vengono generati nel corso della simulazione input stocastico output stocastico: Simul.10 5
Raccolta dati Fase difficile, costosa, lunga spesso frustrante il sistema può non esistere (impossibile osservarlo) dati non disponibili o incompleti (modifica del modello) Sensitività dell output all incertezza dell input Correlazione tra modello e dati disponibili Costo della raccolta dati da considerare nel budget del progetto Garbage In, Garbage Out (GIGO) Simul.11 Raccolta dati (2) Uso diretto dei dati disponibili nella simulazione lettura da file dei dati osservati (tempi, interarrivi ) tutti i dati usati sono veri non si possono generare dati non osservati potrebbero non essere abbastanza per più prove associazione dei dati a distribuzioni tipiche (fit) vengono generati valori casuali per dati non è detto che si ottenga un buon fit dei dati si possono ottenere valori non osservati si possono generare quanti dati si vogliono Simul.12 6
Fitting dei dati a distribuzioni Le distribuzioni tipiche sono definite da una forma analitica dipentente da un limitato numero di parametri Dato un insieme di osservazioni determinare la distribuzione (uniforme, esponenziale ) determinarne i parametri Valutazione della qualità del fitting scarto tra valori osservati e generati massima verosimiglianza, minimi quadrati Simul.13 Distribuzione uniforme f(x) 1/(b a) a b x f(x) = 1/(b a) per a x b, f(x) = 0 altrimenti parametri: a, b Simul.1 7
Distribuzione esponenziale λx f(x) = λ e per x 0 parametro: λ distribuzione degli intervalli di tempo con cui si verificano fenomeni rari ed indipendenti es. arrivi delle auto alla stazione di servizio λ = tempo medio di interarrivo Simul.15 f ( x ) = σ Distribuzione normale ( x µ ) 1 2 2σ e 2 π 2 parametri: µ, σ tipico andamento a campana descrive fenomeni somma di valori casuali indipendenti es. errori di diametro di pezzi prodotti Simul.16 8
Stazione di servizio: dati Arrivo delle auto: interarrivo distribuito esponenzialmente con v.m. λ Servizio: durata distribuita uniformemente in [T1, T2] Esperimento: dati λ, T1, T2, determinare tempo medio in coda delle auto numero di auto che non si fermano Simul.17 Modello di simulazione Suddivide un sistema in un insieme di elementi (entità) interagenti tra loro per l uso delle risorse scarse del sistema, cui sono associate code le entità hanno particolari caratteristiche (attributi) Ne descrive il funzionamento in termini di: attività che producono variazioni nello stato del Sistema (Eventi) percorso seguiti dalle entità nel transito all interno del Sistema (Processi) Simul.18 9
Entità Elementi di un modello (1) attori che si muovono nel sistema, ne cambiano lo stato ed interagiscono con altre entità Sono oggetti dinamici: entrano (creazione) ed escono (distruzione) dal sistema Normalmente rappresentano entità reali (es. auto, pezzi) In un dato istante esistono più entità dello stesso tipo Possono esserci diversi tipi di entità nel sistema (es. aerei,piloti,bagagli, passeggeri) Simul.19 Attributi Elementi di un modello (2) sono le caratteristiche descrittive ed identificative delle entità Tutte le entità dello stesso tipo hanno lo stesso insieme di attributi ma ciascuna ha valori diversi istante di arrivo istante di consegna accumulatori statistici possono essere immaginati come dati locali relativi a ciascuna entità Simul.20 10
Elementi di un modello (3) Variabili (globali) caratteristiche del modello complessivo (non delle entità) numero delle stazioni di servizio capacità massima della coda istante corrente del tempo simulato dati globali accessibili a tutte le parti del modello Simul.21 Risorse Elementi di un modello () ciò per cui le entità competono: stazioni di servizio spazio, operatori, macchine le entità ottengono una risorsa, la usano e la rilasciano sono parti permanenti del sistema (vita più lunga delle entità) Una risorsa può essere presente in più copie stazioni di servizio posti di un ristorante il numero può variare nel corso della simulazione Simul.22 11
C ode Elementi di un modello (5) luoghi nei quali le entità attendono la liberazione delle risorse generalmente sono collegate alle risorse Capacità infinita Capacità finita (cosa succede alle entità che arrivano a coda piena?) Politica di gestione della coda: FIFO (First In First Out) LIFO (Last In First Out) ordinata in base a valori degli attributi Simul.23 Elementi di un modello (6) Accumulatori statistici memorizzano le informazioni che si desidera osservare tempo medio nel sistema delle entità tempo medio in coda delle entità lunghezze medie delle code numero di entità simulate sono assimilabili a variabili globali Simul.2 12
Costruzione del modello (1) Richiede un elevato grado di conoscenza del sistema da simulare Diagramma di flusso per descrivere evoluzione e relazioni causa-effetto del sistema Individuazione delle componenti fondamentali (descrizione statica) Collegamento tra le componenti (descrizione dinamica) Regole operative che determinano il comportamento dei componenti ed il verificarsi degli eventi Definizione di distribuzioni di probabilitá Simul.25 Costruzione del modello (2) Non sempre un modello molto dettagliato consente di ottenere un maggior grado di informazione sul sistema Se il comportamento di un elemento non puó essere descritto in modo deterministico, meglio usare un fenomeno casuale piuttosto che valori medi Il modello puó essere formalizzato ottenendo un Programma di Simulazione eseguibile su calcolatore Simul.26 13
Costruzione del modello (3) Il programma viene attivato usando numeri casuali per generare eventi simulati nel tempo Ripetendo l esperimento si possono ottenere informazioni statistiche sul comportamento del sistlema Cambiando configurazione, si identifica la più promettente Simul.27 Programmazione degli Eventi (1) Evento: Istante in cui avviene una modifica dello stato (arrivo di un auto.) Sottoprogramma che contiene le istruzioni da eseguire nell istante in cui l evento avviene Eventi esogeni: esecuzione causata dall esterno (es. inizio simulazione, fine simulazione) Eventi endogeni: esecuzione causata da altri eventi (es. arrivo di un auto, fine servizio) Simul.28 1
Programmazione degli Eventi (2) Quando si verifica un evento si considerano tutte le sue possibili implicazioni sul sistema: aggiornamento dello stato (variabili globali, risorse) aggiornamento accumulatori statistici aggiornamento orologio del sistema Ogni evento determina quali eventi debbano avvenire nel futuro: dello stesso tipo di tipo diverso ed in quale istante avvengono (li innesca ) Simul.29 Programmazione degli Eventi (3) Coda del tempo: insieme ordinato degli eventi che devono avvenire (innescati) Al termine dell esecuzione di un evento si manda in esecuzione il prossimo prelevandolo dalla coda E necessario specificare la regola di terminazione spegnimento del sistema (coda del tempo vuota) trascorso un certo tempo simulato Simul.30 15
Diagramma degli inneschi sintetizza il comportamento dinamico del sistema Non c è coda INIZIO ARRIVO AUTO INIZIO SERVIZIO FINE C è coda SERVIZIO Simul.31 Stazione di servizio: eventi (1) Inizio Simulazione evento esogeno lettura dei parametri di ingresso (λ, T1, T2, NMAX, ) inizializzazione dello stato del sistema (stato stazioni, numero auto nel sistema, ) inizializzazione delle code avviamento del sistema (innesco del primo arrivo di un auto) Simul.32 16
Diagramma di flusso (1) INIZIO I leggi i parametri di ingresso; inizializza lo stato del sistema; innesca il primo evento ARRIVO subito; U Simul.33 Stazione di servizio: eventi (2) Arrivo di un auto evento endogeno generazione ritardo e innesco prossimo ARRIVO creazione entità auto arrivata se esiste stazione libera (K): occupala ed innesca un evento INIZIO SERVIZIO per l auto, altrimenti se coda contiene meno di NMAX auto: inserisci l auto in coda, altrimenti distruggi l auto (esce dal sistema) Simul.3 17
Diagramma di flusso (2) I ARRIVO F T:= valore casuale con disp. esp. V.M. λ; innesca prossimoarrivo con ritardo T Stampa le statistiche Ci sono NMAX auto in CODA? NO SI Raccogli le statistiche Considerate tutte le auto? NO SI Genera l auto Esiste stazione K libera? NO SI Occupa la stazione K; innesca un evento INIZIO_SERVIZIO per l auto e la stazione K con ritardo 0 U Inserisci l auto nell insieme CODA Simul.35 Stazione di servizio: eventi (3) Inizio servizio evento endogeno occupazione della stazione generazione ritardo e innesco evento FINE SERVIZIO INIZIO SERVIZIO I T:= valore casuale con distr. unif. in[t1,t2]; innesca un FINE SERVIZIO per l auto sulla stazione corrente con ritardo T; U Simul.36 18
Stazione di servizio: eventi () Fine servizio evento endogeno raccolta statistiche e distruzione auto che termina il servizio (esce dal sistema) se CODA contiene auto in attesa: preleva la prima auto da CODA innesca un inizio servizio per l auto e la stazione altrimenti (CODA vuota): libera la stazione Simul.37 Diagramma di flusso (3) I FINE SERVIZIO Raccogli le statistiche; distruggi l auto Considerate tutte le auto? NO SI Stampa le statistiche F Insieme CODA vuoto? NO SI Libera la stazione estrai la prima auto da CODA; innesca evento INIZIO SERVIZIO per l auto estratta e la stazione corrente con ritardo 0 U Simul.38 19
Processo: Interazione dei Processi (1) Eventi (ordinati cronologicamente) rappresentazione di ciò che succede ad un entità tipica nel sistema Comportamento complessivo del sistema descrivibile da processi interagenti tra loro I processi realizzano più azioni di durata maggiore di zero e interagiscono tra loro Istruzioni: attiva, ritarda di., aspetta fino a. Diagramma di flusso lineare che descrive il transito delle entità nel sistema stesso Simul.39 Interazione dei Processi (2) 1. Crea auto a intervalli distr. esp. di v.m. λ 2. Se stazione occupata inserisci auto in CODA (di capacità NMAX) 3. Occupa stazione; ritarda di un tempo distr. unif. in [T1,T2]. Libera stazione; se c è auto in coda attivala (dal punto 3) 5. Esci dal sistema Simul.0 20