Modulo Simulazione Parte 1 Simulazione ad Eventi Discreti: Concetti Base Ing. R.G. Garroppo Organizzazione del modulo Simulazione ad eventi discreti: concetti base Testo: J. Banks, J.S. Carson, B.L. Nelson Discrete-Event System Simulation Ed. Ed. Prentice Hall Descrizione di NS2 Analisi di funzioni di rete con NS2 Multiplazione statistica e discipline di servizio Studio del protocollo TCP Funzionamento del protocollo in reti cablate Problemi del TCP in reti wireless Confronto di diverse versioni del TCP: Tahoe, Reno, NewReno e SACK
Alcune definizioni sulla Simulazione Cosa si intende per Simulazione Imitazione del funzionamento di un sistema o processo reale nel tempo, per lo studio di particolari aspetti Come si effettua una simulazione Imitando l evoluzione temporale del sistema con carta e penna o con un modello di simulazione sviluppato su un calcolatore. In entrambi i casi la simulazione si conduce generando un evoluzione temporale artificiale del sistema Modello di simulazione E una rappresentazione del sistema di cui si vuole studiare un particolare aspetto Esso è un insieme di assunzioni espresse sottoforma di relazioni matematiche, logiche o simboliche fra entità del sistema. Queste assunzioni descrivono il funzionamento del sistema. Per avere delle simulazioni che rispecchiano il comportamento del sistema reale, il modello deve essere VALIDATO!!! Quando e perché usare la Simulazione Studio e sperimentazione delle interazioni interne di un sistema complesso (per es. TCP in sistemi radiomobili) La creazione di un modello di simulazione crea delle opportune conoscenze sul sistema che possono portare ad un suo miglioramento Studiare l impatto dei diversi parametri del modello di simulazione sui risultati (per es. impatto della correlazione del processo di arrivo ad un sistema a coda sulle sue prestazioni) Valutazione delle prestazioni di un sistema prima della costruzione del prototipo Utilizzazione della simulazione per scopi didattici (comprendere meglio un sistema) Verifica di soluzioni analitiche
Vantaggi della Simulazione Valutazione What-if senza interrompere il funzionamento del sistema Verifica di funzionamento di un nuovo sistema prima della costruzione del prototipo Compressione (o espansione) del tempo per l analisi dettagliata di fenomeni interessanti per lo studio del sistema Acquisizione di conoscenze sull interazione fra le diverse variabili del sistema e sull importanza di alcune variabili rispetto ad altre Identificazione di punti deboli del sistema Flessibilità nello studio del comportamento del sistema Svantaggi della Simulazione La creazione del modello richiede esperienza nelle tecniche di simulazione I risultati delle simulazioni possono essere difficili da interpretare La creazione del modello e la sua validazione possono richiedere molto tempo L analisi di un sistema complesso può richiedere molto tempo Utilizzo di tecniche di simulazione avanzate, per es. Importance Sampling In alcuni casi, esistono soluzioni analitiche
Confronto fra diversi approcci di analisi Simulazione Analitico Sperimentale Modellazione Livello di dettaglio arbitrario Il modello dipende dall analisi Non è necessario il modello Facilità di analisi del modello Tempo di calcolo e di esecuzione Precisione dei risultati Analisi di sensibilità Costo La complessità del modello dipende dal livello di accuratezza Più corto rispetto a misure. Lungo nel caso in cui gli eventi importanti si verificano raramente Incertezza stocastica Richiede molto tempo Creazione ed esecuzione del modello di simulazione I metodi di soluzione influenzano le assunzioni sul modello Dipende dalla dimensione e complessità del sistema Esatta Relazioni funzionali dirette Soluzione del modello analitico (esatto o numerico) Non è necessario il modello Dipende dalla complessità del sistema e dalla precisione richiesta sulle misure Attendibile. Incertezza stocastica Richiede molto tempo Creazione del prototipo Area di applicazione della Simulazione Sistemi di trasporti Pianificazione e gestione di sistemi di costruzione Simulatori di volo Re-ingegnerizzazione dei processi di business Sistemi pubblici: militari, ospedali, servizi pubblici Sistemi di produzione: gestione delle scorte, produzioni di pezzi di ricambio Prestazioni di sistemi informatici analisi di scalabilità dei sistemi Sistemi di telecomunicazioni gestione degli instradamenti, valutazione delle prestazioni di nuovi algoritmi di controllo e gestione, problemi what-if
Qualche definizione sui Sistemi Sistema: insieme di entità che interagiscono fra loro per il raggiungimento di un determinato scopo Entità: oggetto di interesse del sistema Attributo: proprietà dell entità Attività: condizione del sistema che perdura per un certo tempo ed è solitamente caratterizzata da un evento di inizio ed uno di fine Stato del sistema: insieme di variabili capaci di descrivere il sistema in ogni istante, negli aspetti che ci interessano Evento: rappresenta un fatto istantaneo che cambia lo stato del sistema Sistemi discreti: le variabili di stato cambiano solo in istanti appartenenti ad un insieme discreto Sistemi continui: le variabili di stato cambiano con continuità nel tempo Sist. Discreto Sist. Continuo Variabili di un sistema Variabili di stato Definiscono in modo completo lo stato del modello; la loro dinamica definisce l evoluzione del sistema Variabili di ingresso Sono parametri da cui dipende il modello; esse descrivono le sollecitazioni esterne al sistema Variabili di uscita Sono funzione delle variabili di stato e di quelle di ingresso; esse rappresentano le grandezze del modello che si intende osservare
Definizione di Modello Modello: rappresentazione di un sistema per lo studio di un suo particolare aspetto Esempio di Modello: Coda FIFO a singolo servente Clienti in Arrivo Fila di attesa Servizio Clienti in Uscita Entità: utenti che richiedono il servizio e servente che offre il servizio Attributi: tipologia di servizio (trasmissione sul collegamento di uscita) Attività: tempo di servizio Eventi: arrivo e partenza degli utenti Variabili di stato: numero di utenti nel sistema Variabili di ingresso: processo di arrivo degli utenti e tempo di servizio di ogni utente Variabili di uscita: tempo trascorso nel sistema dall utente Tipologie di modelli Modelli matematici: si usano notazioni simboliche e equazioni matematiche per rappresentare un sistema. Un modello di simulazione è un particolare tipo di modello matematico (in alternativa si hanno Modelli Fisici) Modelli statici (o simulazione Monte Carlo): rappresentano il sistema in un particolare istante temporale. Es. lancio di un dado Modelli dinamici: rappresentano l evoluzione temporale del sistema. Es. evoluzione di un sistema a coda Modelli deterministici: non contengono variabili aleatorie; la loro evoluzione è legata deterministicamente ai parametri di ingresso Modelli stocastici: hanno come ingresso delle variabili aleatorie; la loro evoluzione dipende dai parametri di ingresso e dalla generazione dei campioni delle variabili aleatorie Modelli discreti: le variabili di stato cambiano solo in istanti appartenenti ad un insieme discreto Modelli continui: le variabili di stato cambiano con continuità nel tempo
Organizzazione di uno studio di Simulazione Fase Iniziale Formulazione del problema, Definizione degli obiettivi e pianificazione dello studio Costruzione del modello e acquisizione di dati Progettazione del modello, acquisizione dati di input e output dal sistema reale, Implementazione del modello, Verifica, Validazione Simulazioni Definizione delle alternative da studiare, Sessioni di simulazione e analisi dei risultati, Pianificazione di nuove sessioni di simulazioni Documentazione e implementazione Documentazione del modello e delle diverse sessioni di simulazioni, Implementazione Simulazione ad eventi discreti La dinamica del sistema è data dagli eventi discreti Lo stato del sistema è distinto e viene modificato solo in particolari istanti Simulazioni ad eventi discreti (oggetto del modulo) Necessitano solo la simulazione degli eventi che modificano lo stato del sistema Un numero finito di eventi rappresenterà l evoluzione temporale del sistema in un determinato intervallo di tempo. Nel modello si stabilirà lo stato iniziale e le modifiche da apportare alle variabili di stato per ogni evento Gli eventi saranno ordinati in un calendario sulla base dell istante di occorrenza La simulazione (esecuzione del programma) consiste nello scorrere il calendario nell eseguire gli aggiornamenti delle variabili di stato in base all evento verificatosi nell effettuare le misure sulle variabili di uscita che ci interessano
Esempio: Modello di sistema a Coda U 1 2 U 2 1 U 3 3 U 4 2 U 5 1 Lista di Eventi 0 1 5 10 15 20 TIME U 6 5 Arrivo Partenza U 1 U 2 U 3 U 4 U 5 U 6 3 Variabile di Stato Num. di Utenti nel Sistema 1 0 1 5 10 15 20 TIME Evento Utente esce dal sistema Azione: se la variabile di stato>0 faccio entrare nel servizio un utente posto nella fila di attesa, altrimenti il servizio rimane vuoto fino all arrivo del prossimo utente Evento Utente arriva al sistema a coda Azione: se la variabile di stato>0 inserisco l utente nella fila di attesa, altrimenti lo inserisco nel servizio Generazione di Numeri Casuali La simulazione di un modello stocastico richiede la generazione di osservazioni di una variabile aleatoria, di cui si conosce le caratteristiche Per es. nel caso di sistemi a coda le variabili di ingresso tempo di interarrivo fra utenti e tempo di servizio dell utente sono spesso assunte esponenziali Le osservazioni di v.a. si ottengono attraverso la generazione di numeri pseudocasuali. Le sequenze pseudo-casuali sono sequenze di numeri che hanno particolari caratteristiche, quali uniformità e indipendenza Uniformità: generando N osservazioni nell intervallo [0,1] e dividendo tale intervallo in n parti uguali, in ogni intervallo si avranno N/n osservazioni Indipendenza: la probabilità di osservare un valore in un particolare intervallo è indipendente dal valore precedentemente osservato Altre caratteristiche richieste ai generatori: velocità, portabilità, lungo periodo di ciclicità, sequenze riproducibili Possibili problemi dei generatori: non uniformità, valori discreti anziché continui, presenza di cicli, valore medio e/o varianza troppo alta (o bassa)
Tecniche di generazione di numeri casuali Linear Congruential Method [Lehmer 1951] X i+1 =(ax i +c) mod m, per i= 0, 1, 2, R i =X i /m-1 X 0 rappresenta il seme (seed) {X i } rappresenta una sequenza di interi [0,m-1], R i la sequenza di reali [0,1] Se c 0, mixed congruential method Se c=0, multiplicative congruential method La scelta di a, c, m e X 0 influenza drasticamente le proprietà del generatore e la lunghezza del periodo di ciclicità. Per esempio m=2 b, c 0, c è primo rispetto a m e a=1+4k, allora P=m=2 b m=2 b, c=0, X 0 èdispari e a=5+8k, allora P=m/4=2 b-2 m numero primo, c=0 e a è tale che k=m-1 rappresenta il più piccolo intero k per il quale a k -1 è divisibile per m, allora P=m-1 Esempi a=13, m=2 6, X 0 =1, 2, 3 e 4 a=7, m=11, e X 0 =1 Generatore reale: a=7 5 =16807, m=2 31-1 (numero primo) e c=0, con P=m-1>2*10 9 Generazione di V.A. Tecnica della trasformata inversa Distribuzione esponenziale Distribuzione uniforme in [a,b] Distribuzioni continue empiriche Metodo con intervalli di uguale ampiezza Metodo con intervalli aventi lo stesso numero di osservazioni Distribuzioni continue senza forma chiusa dell inversa (distribuzione Normale, Gamma e Beta) Distribuzioni discrete: Distribuzione uniforme Trasformazione diretta Distribuzione Normale Metodo della convoluzione Distribuzione di Erlang Tecnica Accettazione-Rifiuto Distribuzione uniforme in sottointervallo di [0,1] Distribuzione di Poisson