simulazione - Dipartimento di Ingegneria Informatica e delle
by user
Comments
Transcript
simulazione - Dipartimento di Ingegneria Informatica e delle
SIMULAZIONE Ing. Alessandro Leonardi Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università degli Studi di Catania Outline analisi e simulazione pianificazione di una simulazione tipi di simulatori esempio di una coda a singolo servente generatori pseudo - casuali transitorio e regime precisione dei risultati correlazione dei campioni alcuni simulatori NS - 2 DIIT - A. Leonardi 2 Analisi e simulazione a confronto Analisi si basa sul modello analitico es. teoria delle code Simulazione consiste nell’emulazione al calcolatore del comportamento del sistema, mediante un modello di simulazione il comportamento del sistema è specificato dallo stato in cui il sistema si trova DIIT - A. Leonardi 3 Analisi e simulazione a confronto In entrambi i casi: BUON MODELLO buon compromesso tra accuratezza della descrizione ed efficienza/fattibilità DIIT - A. Leonardi 4 Vantaggi - Svantaggi Approccio analitico grande sforzo di astrazione, risultati non sempre in forma chiusa molto efficiente per la valutazione degli indici prestazionali Approccio simulativo sforzo minore nella costruzione del modello lunghi periodi per l’elaborazione DIIT - A. Leonardi 5 Simulazione esistono sistemi non descrivibili con modelli di sistemi a coda: sistemi wireless routing dinamico controllo di congestione protocolli di ritrasmissione complessi DIIT - A. Leonardi 6 Pianificazione e realizzazione di una simulazione Formulazione del problema Raccolta ed analisi dei dati Formulazione del modello matematico Impostazione e scrittura del programma Verifica del modello Pianificazione degli esperimenti Analisi dei risultati DIIT - A. Leonardi 7 1 Formulazione del problema 2 Raccolta ed analisi dei dati 3 Formulazione del modello 4 5 6 Valutazione del Modello Scrittura del programma Verifica del Modello 7 Pianificazione degli esperimenti 8 Analisi dei risultati DIIT - A. Leonardi 8 Formulazione del problema (1) determinare gli obiettivi dello studio simulativo analizzare le prestazioni determinare relazione ingressi- u scite ottimizzare i parametri di controllo confrontare sistemi diversi specificare gli indici di prestazione di interesse individuare i parametri di ingresso DIIT - A. Leonardi 9 Raccolta ed analisi dei dati di ingresso (2) raccogliere dati sperimentali sulle distribuzioni delle grandezze aleatorie che intervengono oppure… ipotizzare le caratteristiche dei dati in ingresso DIIT - A. Leonardi 10 Formulazione del modello matematico e valutazione (3) (4) semplificare il sistema reale in modo da rappresentarlo sul calcolatore identificare le relazioni funzionali tra le componenti del sistema dinamico DIIT - A. Leonardi 11 Scrittura del programma (5) si sceglie lo strumento di programmazione più adatto e si sviluppa il simulatore DIIT - A. Leonardi 12 Verifica del modello (6) si confrontano le uscite del modello con quelle del sistema reale si può simulare qualche caso semplice per il quale esiste una soluzione analitica DIIT - A. Leonardi 13 Pianificazione degli esperimenti (7) analisi delle prestazioni del sistema determinazione delle relazioni tra i parametri di ingresso e le prestazioni di uscita stimare i parametri che caratterizzano la funzione ottimizzazione dei parametri di controllo del sistema precisione dei risultati max o min della funzione che lega parametri da ottimizzare alle grandezze su cui si può agire paragone tra le prestazioni di sistemi diversi simulare i due sistemi e stimarne le prestazioni medie DIIT - A. Leonardi 14 Analisi dei risultati (8) raccolta od interpretazione dei risultati delle simulazioni seconda serie di simulazioni… DIIT - A. Leonardi 15 Tipi di simulazioni 1/2 deterministiche le simulazioni sono completamente definite dal modello e la sua evoluzione dipende fondamentalmente dagli ingressi es: descrizione del moto di oggetti casuali i modelli includono variabili o processi aleatori es: determinare probabilità di rifiuto di un sistema DIIT - A. Leonardi 16 Tipi di simulazioni 2/2 simulazioni statiche non esiste la variabile tempo simulazioni Monte - Carlo simulazioni dinamiche il tempo è la variabile principale il modello evolve temporalmente problemi del transitorio DIIT - A. Leonardi 17 Tipologie di simulatori sincroni e asincroni orientati agli eventi (o a eventi discreti) e orientati ai processi DIIT - A. Leonardi 18 Simulatori sincroni 1/2 Il tempo di simulazione viene diviso in tanti intervalli di uguale ampiezza definizione del passo di discretizzazione dell’asse dei tempi perdita di precisione perdita di efficienza nel caso di eventi che si verificano su scale temporali molto diverse DIIT - A. Leonardi 19 Simulatori sincroni 2/2 A B DIIT - A. Leonardi 20 Simulatori asincroni il tempo di simulazione viene aggiornato in modo irregolare in base al cambiamento di stato del sistema DIIT - A. Leonardi 21 Simulatori orientati agli eventi i cambiamenti di stato del sistema (eventi) non avvengono in modo continuo ma in istanti temporali discreti es: sistemi di servizio, gli eventi corrispondono ad arrivo o partenza ad ogni evento il simulatore modifica le variabili che descrivono il comportamento del sistema DIIT - A. Leonardi 22 Simulatori orientati ai processi il sistema viene descritto in termini di processi che sono eseguiti in parallelo e che interagiscono tra di loro scambiandosi informazioni DIIT - A. Leonardi 23 Simulazioni ad eventi discreti 1/2 occorre: definire i tipi di eventi che possono verificarsi definire per ogni evento le modifiche da apportare allo stato del sistema una struttura dati che raccolga le informazioni relative agli eventi che si devono verificare Æ calendario definire uno stato iniziale scorrere il calendario degli eventi effettuare misure sulle variabili di uscita DIIT - A. Leonardi 24 Simulazioni ad eventi discreti 2/2 calendario degli eventi si realizza con una lista linkata, ordinata secondo il campo che contiene il tempo di schedulazione durante la simulazione si scorre il calendario degli eventi e si eseguono le modifiche alle variabili di stato corrispondenti a quell’evento DIIT - A. Leonardi 25 Esempio: coda a singolo servente µ λ tempo medio di interarrivo 1/λ tempo medio di servizio 1/µ DIIT - A. Leonardi 26 Esempio: coda a singolo servente Variabili del sistema variabili di ingresso: processo degli arrivi e dei tempi di servizio. Es. M/M/1 processo arrivi di Poisson a tasso λ e tempi di servizio distribuiti esponenzialmente con tasso µ variabili di stato: numero clienti in coda N Obiettivi numero medio di clienti in coda E[N] tempo medio di attesa in coda E[W] DIIT - A. Leonardi 27 Esempio: coda a singolo servente Simulazione: ricostruire l’evoluzione nel tempo del comportamento del sistema. sequenza degli istanti di arrivo A[k] dei clienti tempi di servizio S[k] scandendo i vettori si può costruire la funzione N[t] (numero di clienti presenti nel sistema al tempo t) DIIT - A. Leonardi 28 Esempio: coda a singolo servente N(t) S[1] A[1] S[2] A[3] S[3] A[4] A[2] DIIT - A. Leonardi 29 Esempio: coda a singolo servente E[N]=(integrale N[t])/(tempo totale simulazione) E[W]=(integrale N[t])/(numero totale partenze) DIIT - A. Leonardi 30 Esempio: coda a singolo servente (approccio analitico) concetti base di teoria delle code ρ) con ρ=λ/µ E[W]=1/(µ- λ) E[N]=ρ/(1 - confronto: N[t] può essere ricostruita qualunque sia la sequenza di ingresso la teoria ci permette di osservare caratteristiche fondamentali del sistema DIIT - A. Leonardi 31 Esempio: coda a singolo servente calendario degli eventi Calendario degli eventi, deve contenere: tempo di schedulazione identificativo del tipo di evento altri campi, es: ID del cliente a cui l’evento si riferisce Eventi possibili: arrivo di un nuovo cliente partenza di un cliente DIIT - A. Leonardi 32 Esempio: coda a singolo servente calendario degli eventi inizializzazione t=0 N=0 si inserisce nel calendario degli eventi un arrivo per ogni istante A[k] t=A[1] (primo arrivo) N++ viene inserito un evento di tipo partenza nel calendario degli eventi all’istante A[1]+S[1] occorre un inserimento in liste ordinate di tipo efficiente la simulazione procede analizzando il prossimo evento… DIIT - A. Leonardi 33 Esempio: coda a singolo servente calendario degli eventi t=0 N=0 A[1] arrivo t=A[1] N=1 A[2] arrivo cliente 1 cliente 2 A[2] A[3] arrivo arrivo cliente 2 cliente 3 A[3] A[1]+S[1] arrivo partenza cliente 3 cliente 1 DIIT - A. Leonardi 34 Generazione di sequenze pseudo-casuali 1/5 la simulazione coinvolge variabili di ingresso di tipo casuale ripetibilità degli esperimenti anche su piattaforme di calcolo differenti generazione algoritmica (deterministica) appare ‘casuale’ a chi la usa generatori pseudo-casuali DIIT - A. Leonardi 35 Generazione di sequenze pseudo-casuali 2/5 formule ricorsive Es. Generatori congruenziali moltiplicativi xn +1 = xn ⋅ a mod m x0 seme iniziale della sequenza i numeri possibili sono: 1, 2, …, m-2, m-1 Es: a=5, m=7, x0=1 si genera la sequenza 1, 5, 4, 6, 2, 3, 1 DIIT - A. Leonardi 36 Generazione di sequenze pseudo-casuali 3/5 l’algoritmo è deterministico, e da quando viene generato il seme iniziale, la sequenza si ripete identica. la periodicità massima è m-1 m è il periodo della sequenza per ottenere un distribuzione tra 0 e 1 si divide per m-1 DIIT - A. Leonardi 37 Generazione di sequenze pseudo-casuali 4/5 Generazione di più sequenze indipendenti Es: M/M/1 occorre una sequenza per i tempi di interarrivo e una sequenza per i tempi di servizio indipendenti utilizzare due moltiplicatori differenti utilizzare due semi iniziali differenti utilizzare una sola sequenza e partizionarla in più sottosequenze DIIT - A. Leonardi 38 Generazione di sequenze pseudo-casuali 5/5 la problematica della generazione di numeri casuali si divide in due parti: generazione di numeri uniformemente distribuiti tra 0 e 1 generazione di sequenze casuali di numeri distribuiti in modo arbitrario DIIT - A. Leonardi 39 Esempio 1 Generazione di una variabile casuale con distribuzione uniforme in [a,b] F(x) 1 a x−a F ( x) = b−a b x−a y= b−a x x = (b − a ) y + a (*) generando y uniforme in [0,1] e calcolando la (*) si ottiene una istanza della v.a. uniforme in [a,b] 40 DIIT - A. Leonardi Esempio 2 generazione di una variabile gaussiana la funzione distribuzione non è invertibile in modo esplicito sommando ∞ v.a. distribuite unif.Ægaussiana per N≥12 v.a.uniformiÆgaussiana for i=1:12 x=rnd(); y+=x; end DIIT - A. Leonardi 41 Transitorio e regime durante una simulazione si possono osservare due fasi fase iniziale, durante la quale il sistema risente delle condizioni iniziali Æ transitorio fase in cui il sistema si stabilizza Æ regime di solito interessa calcolare gli indici di prestazione a regime DIIT - A. Leonardi 42 Transitorio e regime la durata del transitorio dipende dalle condizioni iniziali problemi: difficoltà nell’individuare un ‘buon’ stato iniziale difficoltà nel distinguere il funzionamento di regime da quello transitorio DIIT - A. Leonardi 43 Transitorio e regime metodi euristici per stimare la lunghezza del transitorio metodo del troncamento metodo della cancellazione dei dati iniziali sono basati sull’idea che la variabilità delle misure nei periodi di transitorio è più elevata che a regime DIIT - A. Leonardi 44 Transitorio e regime metodo del troncamento siano dati n campioni {x1 ,x2 ,…,xn} per ogni l=1,2, …, n si confronta xl+1 con il massimo e minimo dei campioni del sottoinsieme {xl+1 ,xl+2 ,…,xn} il più piccolo l per cui xl+1 non è né il minimo né il massimo di {xl+1 ,xl+2 ,…,xn} è la lunghezza del transitorio DIIT - A. Leonardi 45 Transitorio e regime xl l* transitorio regime DIIT - A. Leonardi 46 Transitorio e regime metodo della cancellazione dei dati iniziali siano dati n campioni {x1 ,x2 ,…,xn} sia x la media degli n campioni al crescere di l=1,2, …, n si calcola la media xl dei campioni {xl+1 ,xl+2 ,…,xn} xl − x si calcola Rl = x il valore di l in corrispondenza del ginocchio di Rl identifica la lunghezza del transitorio DIIT - A. Leonardi 47 Transitorio e regime xl x l* transitorio regime DIIT - A. Leonardi 48 Analisi e convalida dei risultati Costruito il modello e il software, occorre: decidere cosa misurare essendo le variabili di uscita aleatorie, decidere con quali parametri caratterizzare tali variabili (media, varianza) valutare l’accuratezza (precisione) della stima DIIT - A. Leonardi 49 Analisi e convalida dei risultati Supponiamo di voler misurare un indice di prestazione x. x è v.a. con media µ e varianza σ2 Obiettivo simulazione Æ stimare µ consideriamo n esperimenti, s.i. e ricaviamo n osservazioni: x1, x2, …, xn 1 n calcoliamo la media aritmetica: x = ∑ xi n i =1 DIIT - A. Leonardi 50 Analisi e convalida dei risultati L’intervallo di confidenza ci dice con quale probabilità µ cade in un intervallo attorno a x anche la media è una v.a. con: E[x ] = µ σ 2 (x) = σ2 n notiamo che all’aumentare di n (numero esperimenti) la varianza decresce, ovvero x diventa molto vicino a µ DIIT - A. Leonardi 51 Analisi e convalida dei risultati consideriamo ora la nuova v.a. x−µ z= σ/ n ha una distribuzione gaussiana con media 0 e varianza 1 (distribuzione normale) la distribuzione si trova tabulata sia uα un valore tale che P{- uα≤z≤ uα }=1 - α DIIT - A. Leonardi 52 Analisi e convalida dei risultati quindi: ovvero: x−µ P{−uα ≤ ≤ uα } = 1 − α σ/ n P{x − uα σ n ≤ µ ≤ x + uα σ n } = 1−α la costante (1-α) è di solito espressa in percentuale e si chiama livello di confidenza l’intervallo x ± uα σ si chiama intervallo di n confidenza DIIT - A. Leonardi 53 Analisi e convalida dei risultati di solito, si adotta un livello di confidenza pari al 95% α=0.05 uα=1.96 ciò significa che µ cade nell’intervallo suddetto con una probabilità del 95% siccome σ2 non è nota, viene sostituita da: 1 n 2 s = ( x − x ) ∑ i n − 1 i =1 2 (scarto quadratico medio) DIIT - A. Leonardi 54 Analisi e convalida dei risultati invece di z, consideriamo t: x−µ t= s/ n t è distribuita come t-student con n-1 gradi di libertà il nuovo intervallo di confidenza risulta: δ = tα s n per n grande (n>30) la possiamo approssimare alla distribuzione normale DIIT - A. Leonardi 55 Analisi e convalida dei risultati tα prende il nome di percentile tabella δ <ε ciclo while finchè la condizione x non è verificata ε è la precisione (es: 10-3) x −δ x x +δ DIIT - A. Leonardi 56 Analisi e convalida dei risultati Esempio: 9 esperimenti di simulazione indipendenti x1, x2, …, x9 1 9 x = ∑ xi = 65 9 i =1 1 9 s= ( xi − 65) 2 = 445 ∑ 9 − 1 i =1 DIIT - A. Leonardi 57 Analisi e convalida dei risultati calcoliamo gli intervalli di confidenza con livello di confidenza 0.9 (1-α=0.9) s s P{x − tα ≤ E[ x] ≤ x + tα } = 0.9 9 9 nel nostro caso l’intervallo di confidenza risulta pari a (78.08 - 51.92) δ controllo <ε x verificatoÆ stop non verificatoÆaltre simulazioni DIIT - A. Leonardi 58 Correlazione dei campioni nella realtà i campioni ottenuti durante l’esperimento di simulazione sono correlati es: sistema a coda FIFO il ritardo del k-esimo cliente è correlato con il ritardo osservato dal cliente (k+1)-esimo si potrebbe ricorrere a stimatori dell’autocorrelazione complessità eccessiva DIIT - A. Leonardi 59 Correlazione dei campioni metodi euristici prove ripetute metodo batch means metodo rigenerativo DIIT - A. Leonardi 60 Correlazione dei campioni metodo delle prove ripetute i campioni scorrelati sono ottenuti come valori osservati al termine di brevi simulazioni indipendenti, ottenuti con semi diversi del generatore di numeri casuali DIIT - A. Leonardi 61 Correlazione dei campioni metodo batch means si effettua una simulazione lunga e si divide in intervalli più brevi (batch) ogni intervallo contiene un numero n di osservazioni maggiore di quello osservato nel transitorio iniziale il vantaggio è che si elimina un solo transitorio iniziale non è necessario generare semi diversi DIIT - A. Leonardi 62 Correlazione dei campioni metodo rigenerativo si identificano alcuni stati del sistema per i quali il comportamento futuro non dipende dalla storia passata gli istanti di tempo in cui il sistema entra in questi stati sono detti di rigenerazione (il sistema si rigenera perché perde la correlazione con la storia passata) i campioni ricavati durante questi intervalli sono scorrelati insieme secondario: è costituito dalla medie dei campioni primari negli intervalli di rigenerazione è difficile trovare i punti di rigenerazione DIIT - A. Leonardi 63 Linguaggi per simulazione di sistemi ad eventi discreti tutti i moderni linguaggi di simulazione usano per l’avanzamento del tempo l’approccio dell’evento successivo. dopo aver fatto tutte le operazioni relative all’evento verificatosi all’istante attuale, incrementano il tempo al valore in cui si verificherà l’evento successivo. la simulazione salta i periodi di inattività. sistema di sincronizzazione tutte le strutture dati utilizzate per manipolare la lista degli eventi DIIT - A. Leonardi 64 Linguaggi per simulazione di sistemi ad eventi discreti Alcuni dei linguaggi più diffusi: SIMSCRIPT GPSS linguaggio basato sui diagrammi a blocchi facile da usare SIMULA estensione del FORTRAN è fornito di funzioni che gestiscono gli eventi estensione dell’ALGOL consente di realizzare complesse strutture di dati dinamiche NS-2 utilizzato da tutta la comunità scientifica C++ / Tcl codice sorgente free DIIT - A. Leonardi 65