Tecniche di Simulazione: Introduzione N. Del Buono:
2 Che cosa è la simulazione La SIMULAZIONE dovrebbe essere considerata una forma di COGNIZIONE (COGNIZIONE qualunque azione o processo per acquisire conoscenza) Esistono tre diversi metodi per estrarre conoscenza : Sperimentazione Analisi Simulazione
Che cosa è la simulazione: un esempio Esempio: consideriamo una stazione di servizio con un solo addetto e calcoliamo il tempo medio speso da un automobile nella stazione di servizio. Tre diverse possibilità per rispondere al quesito posto! 1. Esperimento: misurare il tempo che ogni auto spende nella stazione, contare il numero di auto alla fine sommare tutti i tempi e dividere per il numero di automobili 3
4 Che cosa è la simulazione: un esempio 2. Analisi: usare la Teoria delle Code per calcolare il tempo medio speso nel sistema. (Assunzioni: (i) scelta del modello di code semplificazione del sistema reale (ii) scelta dei parametri quantitativi intensità di arrivo- numero di auto per unità di tempo- intensità di servizio-numero di auto servite per unità di tempo).
5 Che cosa è la simulazione: un esempio 2. Simulazione: Scrivere un modello di simulazione che generi in modo random gli arrivi delle auto e la durata del servizio Attenzione: sequenziare tutte le attività in modo che ci sia una corrispondenza 1-1 con il sistema reale! Da programmare: osservazioni, accumulo delle statistiche, valutazione
Che cosa è la simulazione: vantaggi e svantaggi Ciascuno dei tre metodi considerati possiede alcuni vantaggi e svantaggi I tre metodi possono essere confrontati solo in particolari casi e considerando diversi criteri Possiamo comunque effettuare alcune osservazioni. 6
Che cosa è la simulazione: vantaggi e svantaggi Esperimento: metodo più accurato da preferire quando è fattibile. Svantaggi - Possibile pericolosità - Troppo costoso - Impossibile da effettuare se il sistema da investigare non è disponibile 7
Che cosa è la simulazione: vantaggi e svantaggi Analisi: (più matematico) basata su forti assunzioni che generalmente non sono soddisfatte dai sistemi reali Svantaggi - Difficoltà di stesura del modello analitico - Disponibilità dei parametri 8
Che cosa è la simulazione: vantaggi e svantaggi Simulazione: metodo sperimentale. La sperimentazione è effettuata con un modello di simulazione invece che con il sistema reale. Punto chiave della simulazione: costruzione del modello. Svantaggi Creazione di un modello efficiente e implementazione al calcolatore (scelta del linguaggio general purpose o simulation oriented!) 9
Che cosa è la simulazione: vantaggi e svantaggi Limitata conoscenza del sistema da simulare (necessario conoscere alcuni parametri qualitativi (nell esempio intervalli di tempo per gli arrivi e per il servizio) La simulazione è più flessibile dei metodi analitici linguaggi di simulazione sono dotati di routine per la generazione di numeri random con assegnata distribuzione Time consuming 10
11 Quando scegliere la simulazione: regola generale 1. Scegliere l esperimento quando è possibile. 2. Altrimenti cercare un metodo analitico appropriato 3. Usare la simulazione come ultima risorsa. La simulazione contribuisce alla creazione di modelli in cui particolari aspetti vengono analizzati per la prima volta. Può rivelare errori o ambiguità nel modello considerato Può evitare costosi updating di un sistema esistente
12 Simulazione Continua I linguaggi si simulazione continua sono stati sviluppati alla fine degli anni 50 per simulatori di Computer Analogici. La simulazione su computer analogici si basa sulla creazione di sistema elettronico analogico il cui comportamento è descritto dallo stesso modello matematico (equazioni differenziali) che viene utilizzato per investigare il sistema reale.
13 La simulazione su computer analogici Il sistema elettronico è creato interconnettendo dei blocchi standard basati su amplificatori operazionali modificati per agire come integratori, addendi e altre unità funzionali L utente agisce sul sistema elettronico applicato opportuni input e misurando poi il voltaggio a determinati punti di output. Il cambio di voltaggio rappresenta una funzione del tempo che coincide con la funzione che descrive le variazioni nel sistema originale (la cui natura fisica può essere del tutto differente)
14 La simulazione su computer analogici OGGI Problema principale dei computer analogici è l implementazione analogica di alcune operazioni (es. moltiplicazione, generazione di ritardo, ecc) I computer digitali effettuano queste operazioni in modo semplice quindi OGGI la simulazione continua si effettua su di essi. Comunque i computer analogici effettuano l integrazione meglio di quelli digitali (che usano metodi numerici imprecisi e lenti) Uso di computer ibridi
Linguaggi per la simulazione continua Linguaggi per la simulazione continua vengono classificati in: Block oriented simulation languages Expression oriented continuous languages 15
Simulazione Continua: Block oriented simulation languages Basati sulla metodologia dei computer analogici Il sistema deve essere espresso come un diagramma a blocchi che definisce le interconnessioni tra le unità funzionali e i loro parametri qualitativi "Programmare" significa inserire le interconnessioni dei blocchi e la loro descrizione L utente aggiunge istruzioni e/o direttive che controllano la simulazione Se il sistema è descritto da equazioni differenziali deve essere convertito in un diagramma a blocchi Esempi di blcchi: integrators, limiters, delays, constant values adders holders gain (coefficienti) 16
17 Simulazione Continua: Expression oriented continuous languages Basati sulla stesura di espressioni (equazioni) che rappresentano il modello simulato Il sistema deve essere da un insieme di equazioni L utente aggiunge statements e/o direttive per controllare la simulazione Controllare la simulazione selezionare il metodo di integrazione, il passo di integrazione, le variabili da osservare, l intervallo per raccogliere i dati, durata della simulazione ecc.
Simulazione Discreta La simulazione discreta si occupa dei sistemi le cui dinamiche (secondo il livello di astrazione adottato ) possono essere considerate come una sequenza di eventi in istanti discreti di tempo I linguaggi per la simulazione discreta controllo della giusta sequenza delle attività del modello. Si possono classificare in: Flowchart oriented languages Activity oriented languages Event oriented languages Process oriented languages 18
19 Simulazione Discreta: Flowchart oriented languages Linguaggi GPSS (General Purpose Simulation System) L utente deve osservare la dinamica del sistema come un flusso attraverso un diagramma a blocchi delle cosiddette Transactions Le Transactions sono generate seguendo un percorso attraverso la rete dei blocchi e poi distrutte all uscita. In ciascun blocco le transactions possono essere ritardate, processate o passate ad altri blocchi I blocchi sono rappresentati come istruzioni che effettuano delle attività del modello
Simulazione Discreta: activities oriented languages Non sono basati sulla stesura esplicita delle attività del sistema Descrizione delle condizioni che causano ciascuna attività (schedulazione se la condizione è quella che un certo istante sia raggiunto) L algoritmo che controlla la simulazione incrementa ripetutamente la variabile temporale e verifica le condizioni di tutte le attività Svantaggi: valutare tutte le condizioni ad ogni passo ( time consuming ) Vantaggi: concettualmente semplice, implementazione in un linguaggio generale ad alto livello 20
Simulazione Discreta: event oriented languages Basati sulla schedulazione e cancellazione degli eventi futuri Approccio generale La dinamica del sistema da simulare è una sequenza di eventi relativamente indipendenti. Ogni evento può schedulare e/o cancellare un altro evento Presenza di una routine ( event notice ) che tiene traccia degli eventi schedulati (l event notice contiene il tempo, il tipo di evento altri user data) Presenza di un calendario degli eventi ( calendar ) che ordina ogni event notice a seconda del tempo di schedulazione 21
Simulazione Discreta: event oriented languages Dopo il completamento di una event routine il sistema rimuove l event notice con il tempo più basso dal calendario degli eventi aggiorna il modello sistema (variabile temporale) e esegue la routine corrispondente. Il processo viene ripetuto fino a che il calendario si svuota o il programma si arresta per altri motivi Esempio di linguaggio SIMSCRIPT 22
23 Simulazione Discreta: process oriented languages Basati sulla non indipendenza degli eventi Un evento è visto come una consequenza di eventi precedenti (cioè e sempre possibile definire una sequenza di eventi ( detti processi ) che può essere riguardata come entità di un modello di simulazione ad un livello di gerarchia più alto I processo hanno una dimensione I sistemi basati su processi astratti sono molto vicini ai sistemi reali fatti di diversi oggetti che esistono ed agiscono in parallelo interferendo l un l altro Esempi MODSIM, SIMSCRIPT II.5, SIMULA la classe SIMULATION.