Simulazione D.E.I.S. Università di Bologna DEISNet http://deisnet.deis.unibo.it/
Introduzione Per valutare le prestazioni di un sistema esistono due approcci sostanzialmente differenti Analisi si basa sulla definizione di un modello analitico del sistema, cioè un opportuna formulazione matematica che permette di ricavare le grandezze di interesse del sistema. Simulazione Consiste nel riprodurre al calcolatore il comportamento del sistema in esame. Si basa sulla definizione di un modello, detto modello di simulazione, che descrive l evoluzione del sistema nel tempo, grazie al quale è possibile osservare le dinamiche del sistema, riuscendo pertanto a misurarne le prestazioni. 2
Modello del sistema Un modello del sistema è richiesto da entrambi gli approcci Il modello mette in relazione i parametri di ingresso; gli indici di prestazione che si intendono valutare. Il modello deve riprodurre in dettaglio il funzionamento del sistema reale che si vuole studiare; allo stesso tempo deve presentare un complessità accettabile. Occorre ricercare un compromesso tra accuratezza della descrizione ed efficienza/fattibilità. 3
Approccio Analitico Richiede un grande sforzo di astrazione Solitamente un modello matematico in grado di descrivere il sistema reale non è realizzabile Si devono identificare le caratteristiche principali da descrivere successivamente in termini matematici Realizzato il modello è necessario risolverlo per trarne delle misure di prestazioni Questa fase richiede grande abilità e familiarità con gli strumenti matematici adottati Si giunge, quando possibile, ad una o più formule, che Esprimono le prestazioni in funzione delle caratteristiche del sistema Sono solitamente calcolabili in maniera veloce ed efficiente per un ampio intervallo dei parametri di ingresso Permettono di interpretare in termini qualitativi il comportamento del sistema e di individuare situazioni critiche o limite 4
Approccio Simulativo Richiede un minore sforzo nella fase della costruzione del modello Necessita di lunghi periodi di tempo per l esecuzione della simulazione e per il calcolo delle prestazioni Produce stime degli indici di prestazione affette da incertezza statistica Può essere soggetto ad errori di programmazione difficili da individuare Richiede lunghe indagini per ricercare condizioni critiche o limite Grazie alla semplicità della definizione del modello e alla possibilità di descrivere un sistema a qualsiasi livello di dettaglio, questo approccio è solitamente più adatto allo studio di sistemi molto complessi 5
Pianificazione di una simulazione 1. Formulazione del problema: in questa fase iniziale si individuano i parametri di ingresso significativi e si specificano gli indici di prestazione di interesse. 2. Raccolta ed analisi dei dati d ingresso: raccogliere dati sperimentali sulle grandezze aleatorie di ingresso oppure, se questo non è possibile, ipotizzarne le caratteristiche statistiche. 3. Formulazione del modello funzionale o matematico: consiste nel rappresentare al calcolatore il sistema da simulare. È la parte più critica della simulazione. 4. Scrittura del programma: si sviluppa il simulatore utilizzando lo strumento di programmazione più adatto. 5. Analisi dei risultati: raccolta ed interpretazione dei risultati ottenuti. 6
Formulazione del modello Il modello di simulazione deve: Individuare le grandezze ritenute significative per la descrizione del sistema Un insieme di valori di tali grandezze individua uno stato del sistema Definire le cause che portano ad una modifica dello stato del sistema Definire le relazioni che caratterizzano l evoluzione dinamica del sistema 7
Tipologie di simulatori I simulatori possono essere classificati in molti modi: In base alla modalità di funzionamento: Simulatori orientati agli eventi Simulatori orientati ai processi In base alle modalità con cui viene descritto lo scorrere del tempo: Simulatori sincroni Simulatori asincroni 8
Simulatori orientati agli eventi o ai processi I simulatori ad eventi si basano sul concetto di evento Si dicono eventi i fenomeni caratteristici del sistema che ne determinano l evoluzione temporale tramite relazioni Evento stato Come un evento modifica lo stato del sistema Evento evento Come un evento influisce su eventi futuri Al verificarsi di un evento il simulatore gestisce le eventuali modifiche delle variabili di stato Nei simulatori orientati ai processi, il sistema viene descritto in termini di processi Sono eseguiti in parallelo Interagiscono tra di loro scambiandosi informazioni 9
Simulatori sincroni Il tempo viene diviso in tanti intervalli di ugual ampiezza Gli eventi e le conseguenti variazioni di stato vengono collocati in corrispondenza degli istanti di inizio/fine degli intervalli Alcuni problemi legati a questa tecnica sono: Scelta del passo di discretizzazione dell asse dei tempi Si deve ricercare un compromesso fra granularità della descrizione temporale e complessità computazionale passo piccolo durata di simulazione elevata passo grande rappresentazione grossolana del sistema. Perdita di precisione. Pur avendo un passo di discretizzazione ottimale, si rischia di trascurare comportamenti particolari del sistema. Perdita di efficienza. In presenza di dinamiche temporali poco uniformi, ad esempio se si hanno periodi in cui si verificano un gran numero di variazioni dello stato, alternati a periodi in cui non se ne verifica alcuno. 10
Simulatori sincroni Passo di quantizzazione molto ampio Tutte le variazioni di stato sono riassunte negli istanti di inizio/fine intervallo Difficile se non impossibile l accurata descrizione dell evoluzione temporale dello stato La misura dei parametri di stato è imprecisa Stato del sistema Passo di discretizzazione del tempo Tempo Stato del sistema Tempo Passo di quantizzazione molto fine Molti intervalli non sono caratterizzati da alcuna variazione di stato Si eseguono molte iterazioni della simulazione per nulla L efficienza computazionale risulta scarsa 11
Simulatori asincroni Lo stato viene aggiornato solamente quando necessario e contestualmente viene gestito lo scorrere del tempo Il tempo scorre in modo irregolare seguendo le varizioni di stato del sistema In un simulatore orientato agli eventi risulta molto naturale legare lo scorrere del tempo all accadimento degli eventi Il simulatore passa da un evento al successivo saltando i periodi in cui lo stato non si modifica e quindi non significativi per la descrizione dell evoluzione del sistema 12
Altre classificazioni In un ambito generale si ricordano anche le seguenti classificazioni: Simulatori statici o dinamici: statici nel caso in cui il tempo non giochi alcun ruolo (es.: metodo Monte Carlo); dinamici nel caso in cui il sistema evolva nel tempo. Simulatori deterministici o statistici: Determinisitici in cui l uscita è univocamente determinata una volta fissati i parametri di ingresso Statistici quando almeno uno dei parametri di ingresso è una variabile aleatoria. Simulatori continui o discreti Continui se le variabili che descrivono il sistema sono continue Discreti altrimenti. 13