Parte 4
Progettazione di una simulazione
Fasi di uno studio di simulazione
l’approccio a cascata
Analisi e validazione Problema
Progettazione e test
Esecuzione Deployment
Sistema
Modello concettuale Programma di
simulazione
Statistiche
Risultati
ANALISI
(i) Interpretazione corretta dei problemi e la loro descrizione per mezzo di un linguaggio comune
(ii) Descrizione del sistema in termini di processi, flussi decisionali e variabili di stato (iii) Identificazione di obiettivi, specifiche funzionali e misuratori di performance (iv) Raccolta di dati e individuazione delle distribuzioni di probabilità
(v) Formulazione di un modello logico/matematico
PROGETTAZIONE ESECUZIONE
Fasi di uno studio di simulazione
Analisi: descrizione del sistema e definizione del modello
bIl livello di dettaglio/aggregazione e i confini del sistema dipendono dai propositi dello studio
bLa definizione del modello prevede
; l’identificazione delle variabili di stato e dei valori che possono assumere
; l’identificazione degli eventi e delle transizioni di stato generate dagli eventi
; Un test di fitting sulle distribuzioni di probabilità utilizzate per generare i numeri casuali che realizzano gli scenari di simulazione
Analisi: dettaglio vs. sintesi
un modello troppo dettagliato
bè complesso e costoso da realizzare
brichiede lunghi tempi per la raccolta dei dati bfornisce informazioni difficili da interpretare un modello troppo sintetico
bnon contiene tutte le informazioni necessarie
bnon coglie i comportamenti del sistema che si vogliono
analizzare
Analisi: alcune regole pratiche
bPartire da un modello elementare e progressivamente arricchirlo, ma…
bla complessità del modello deve essere la minima necessaria per raggiungere gli scopi prefissati
bCoinvolgere l’utilizzatore finale nella costruzione del modello
bTenere conto di quali dati dovranno essere raccolti e di che onere computazionale sarà richiesto.
Prototipazione ciclica
ANALISI PROGETTAZIONE ESECUZIONE
(i) Scelta dell’ambiente e degli strumenti di sviluppo (ii) Realizzazione del software di simulazione
(iii) Verifica del software e validazione del modello
(i) Esecuzione run pilota e confronto dei risultati con misure sul sistema (se esistono) (ii) Analisi di sensitività (variazione dei risultati a seguito di piccole variazioni dell’input)
Fasi di uno studio di simulazione
Progettazione: strumenti di sviluppo
bLinguaggi general-purpose (C++, Fortran, Pascal, …)
;meno costosi e tipicamente più conosciuti e disponibili
;molto più flessibili
;i modelli richiedono meno tempo di calcolo perché realizzati ad-hoc
bLinguaggi (e ambienti) di simulazione generali (Modsim, Siman, Arena)
;meno flessibili ma con caratteristiche specifiche per la simulazione
;costrutti elementari di programmazione che permettono una modellazione naturale
;minori tempi di sviluppo
;si ottengono modelli in generale più facili da modificare
bSimulatori
;Sono pacchetti per la simulazione di specifici sistemi (call-center, centro di distribuzione, simulatori di volo) e permettono di definire una simulazione senza ricorrere ad attività di programmazione.
Progettazione: oggetti della simulazione
bEntità : componente del sistema che richiede una rappresentazione esplicita nel modello e del cui stato si mantiene informazione nel corso della simulazione.
; Permanenti / Temporanee
bAttributi : caratteristiche delle entità
bRisorse : Sono in genere elementi del sistema che sono richiesti per svolgere attività ma che non svolgono attività
bSet : insiemi di entità/risorse dello stesso tipo
Progettazione: operazioni
La dinamica di un sistema discreto può essere descritta attraverso eventi, attività, processi.
bUn evento è l'istante di tempo in cui si verifica un cambiamento dello stato del sistema (condizionati se coincidono sempre con altri eventi, primari altrimenti)
bUna attività è un’operazione che svolge un’entità che inizia o finisce sempre con un evento
bUn processo è una sequenza di eventi (e quindi di attività) che
descrive il ciclo di vita di una entità
modellazione per processi: esempio
processo dell’entità cliente in una coda con singolo servente:
1. Il cliente n entra nel sistema;
2. Creazione del processo relativo al cliente n + 1;
3. Il cliente n + 1 viene posto in stato di attesa fino al suo tempo di arrivo;
4. Il cliente n viene posto in stato di attesa fino a che non si trovi in testa alla coda ed il servente sia libero;
5. Il servente viene posto in stato di occupato;
6. Il cliente n viene tolto dalla coda;
7. Il tempo di servizio viene calcolato
8. Il cliente n viene posto in attesa fino a che il tempo di servizio non sia passato;
9. Il servente viene posto in stato di libero;
Progettazione: diagramma dei processi
bE’ un grafo orientato che descrive i processi e le interrelazioni fra le entità di un sistema.
bOgni entità è rappresentata dalla sequenza degli stati (attivi e passivi) che può assumere.
Stato passivo
Stato attivo
Esempio: Servizio piccoli prestiti
Si consideri una banca che offre un servizio di piccoli prestiti secondo la seguente procedura:
bIl cliente si rivolge all’ufficio apposito, dove un impiegato esamina la richiesta, e, se questa rispetta un certo numero di criteri prefissati, la accetta; altrimenti invia il cliente al funzionario responsabile
bIl funzionario riesamina la pratica, e quindi o accetta la richiesta
oppure la respinge definitivamente.
Esempio: Servizio piccoli prestiti
1a coda
Arriva Cliente
Esce
1° Esame
2° Esame Attesa
2a coda
Attesa
Non approvata approvata
approvata respinta
Progettazione: verifica del software e validazione del modello
bVerifica
; animazione
; confronto dell’output del modello con i dati del sistema
; debugging interattivo.
bValidazione
; test di fitting delle distribuzioni di probabilità utilizzate
; analisi di sensitività
; confronto dell’output del modello con i dati del sistema
; animazione
ANALISI PROGETTAZIONE ESECUZIONE
(i) progetto degli esperimenti (ii) esecuzione degli esperimenti (iii) analisi dell’output
(iv) animazione e documentazione
Fasi di uno studio di simulazione
Esecuzione: progetto degli esperimenti
bCondizioni iniziali
b Lunghezza del transitorio ( warmup period ).
Per valutare il comportamento del sistema a regime (in condizioni stazionarie) è necessario collezionare statistiche a partire dall’istante in cui termina il transitorio.
bDurata della simulazione o criterio di arresto
aumentare la durata della simulazione aumenta la precisione delle stime delle quantità di interesse.