Parte 4 Progettazione di una simulazione

Transcript

Parte 4 Progettazione di una simulazione
Parte 4
Progettazione di una simulazione
1
Fasi di uno studio di simulazione
l’approccio a cascata
Problema
Sistema
Analisi e validazione
Modello
concettuale
Progettazione e test
Programma di
simulazione
Esecuzione
Statistiche
Deployment
Risultati
2
Fasi di uno studio di simulazione
ANALISI
PROGETTAZIONE
ESECUZIONE
(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
(vi) Discussione con esperti sulla validità del modello e delle sorgenti aleatorie
(vii) Pianificazione del processo di sviluppo e della sperimentazione in termini di
tempi, costi e risorse utilizzate
3
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
4
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
5
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
6
Fasi di uno studio di simulazione
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)
7
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.
; Sono abbastanza facili da imparare ma poco flessibili
8
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
Se un elemento debba essere considerato una entità oppure una risorsa
è in genere una scelta che compie chi costruisce il modello
9
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à
10
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;
10. Il cliente n esce dal sistema.
11
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
12
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.
13
Esempio: Servizio piccoli prestiti
1a coda
Arriva
Cliente
1° Esame
Attesa
approvata
Non approvata
Esce
respinta
approvata
Attesa
2a coda
2° Esame
14
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
; Turing Test
; validazione sul campo
15
Fasi di uno studio di simulazione
ANALISI
PROGETTAZIONE
(i)
progetto degli esperimenti
(ii)
esecuzione degli esperimenti
(iii)
analisi dell’output
(iv)
animazione e documentazione
ESECUZIONE
16
Esecuzione: progetto degli esperimenti
bCondizioni iniziali
bLunghezza 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.
bNumero di repliche
il risultato di ogni simulazione è una v.a.: più alto è il numero di repliche
(i.e. la numerosità del campione) più accurata è la stima dei valori attesi.
17
Esecuzione: Analisi dei risultati
bL’output di una simulazione fornisce stime statistiche delle
misure di prestazione del sistema. Ad ogni misura viene associato
un intervallo di confidenza, cioè un intervallo di valori entro il
quale la misura ricade con “elevata” probabilità
18