Parte 3
Software di simulazione
Modelli di simulazione a eventi discreti
Nei modelli di simulazione a eventi discreti il sistema può cambiare stato solo in corrispondenza di un insieme numerabile di istanti di tempo che corrispondono al verificarsi di eventi.
L’istante corrente di simulazione è indicata dalla variabile simulation clock (orologio di simulazione). L’orologio può avanzare in 2 modi:
b a intervalli regolari (fixed increment time advance)
b solo quando un evento si verifica ( next-event time advance )
Definizione. Un Evento è una occorrenza che si verifica
istantaneamente e che può modificare lo stato del sistema.
Algoritmo di simulazione next-event time advance
start
Main
Report generator Initialization routine
-Orologio = 0 -Variabili di stato -Lista eventi
Event routine
-Aggiornamento stato -Aggiornamento statistiche -Generazione eventi futuri
Timing routine -Prossimo evento -avanzamento orologio
Library routine -generazione v.a.
Fine?
si
no
Esempio: sistema a singolo servente
• Tempi di interarrivo A
1, A
2, … v.a. con distribuzione F
A• Tempi di servizio S
1, S
2, … v.a. (indipendenti dagli A
i) con distribuzione F
Cliente in arrivo
Clienti in Coda (FIFO)
Cliente in servizio
Cliente in uscita Servente
Esempio: Stato ed eventi
• variabili di stato: numero di clienti in coda, stato del servente (libero/occupato) ⇒ modello discreto
• eventi: arrivo di un cliente, conclusione di un servizio t
i= tempo di arrivo del cliente i
A
i= t
i– t
i - 1S
i= tempo di servizio del cliente i A
1= 0.9
A
2= 2.1 A
3= 1.7 A
4= 3.1 A
5= 1.6
…
S
1= 2.9 S
2= 3.4 S
3= 2.7 S
4= 3.1 S
5= 2.6
…
Numeri casuali con distribuzione F
ANumeri casuali con
distribuzione F
SEsempio: Avanzamento del tempo simulato
t
i= tempo di arrivo del cliente i A
i= t
i– t
i -1S
i= tempo di servizio del cliente i D
i= ritardo in coda del cliente i c
i= t
i+ D
i+ S
itempo t
1= 0.9
0 t
2= 2.1 c
1= 3.8 t
3c
2e
1e
0e
2e
3e
4e
5A1 A2 A3
S2 S1