La simulazione di eventi discreti

La simulazione di eventi discreti è la modellazione di un sistema dinamico in cui le variabili cambiano istantaneamente in momenti diversi del tempo.

Si parla di eventi discreti perché il sistema evolve col verificarsi degli eventi.

Quando si verifica un evento, lo stato del sistema può cambiare.

Esempio. Il numero di clienti in coda all'ufficio postale cambia quando si verificano due eventi: 1) un nuovo cliente arriva nell'ufficio postale 2) un cliente lascia lo sportello ed esce dall'ufficio postale. In questo caso il numero di clienti in coda è una variabile di stato del sistema. Quindi, è anche una variabile di stato nel modello di simulazione.

Generalmente i modelli di simulazione a eventi discreti considerano eventi che modificano lo stato del sistema.

Tuttavia, può capitare di dover simulare un modello considerando anche eventi discreti che non modificano lo stato del sistema.

Esempio. Il modello termina l'esecuzione della simulazione al verificarsi dell'evento discreto X. Questo evento non modifica lo stato del sistema.

    Come funziona un modello di simulazione a eventi discreti

    Un modello di simulazione a eventi discreti è composto dalle seguenti componenti

    • Stato del sistema (system state)
      Lo stato del sistema è definito dai valori delle variabili di stato in un determinato istante.
    • Orologio simulato (simulation clock)
      E' una variabile che indica il valore corrente del tempo simulato.
    • Lista degli eventi (event list)
      E' una lista con gli eventi successivi.
    • Routine di inizializzazione (initialization routine)
      E' un programma usato per inizializzare il modello di simulazione nell'istante iniziale. Azzera l'orologio della simulazione (t=0), la lista degli eventi e le variabili statistiche.
    • Routine di temporizzazione (timing routine)
      E' un programma che determina l'evento successivo e avanza l'orologio della simulazione all'istante in cui si verifica l'evento.
    • Routine di eventi (event routine)
      Ogni evento è associato a un programma che viene eseguito e aggiorna lo stato del sistema quando si verifica l'evento. Genera gli eventi successivi e li aggiunge alla lista degli eventi. Elabora variazioni casuali (random).
    • Programma principale (main program)
      Il programma principale richiama la routine di inizializzazione all'avvio della simulazione. In un'iterazione richiama la routine temporizzazione ed esegue la routine di evento. Il ciclo termina quando si verifica un particolare evento. Alla fine della simulazione genera i report alla fine della simulazione.

    le componenti del modello di simulazione

    Esistono due modi per far avanzare il tempo simulato (simulation clock) in un modello a eventi discreti.

    • Next-event time advance
      L'orologio del sistema salta al tempo tk in cui si verifica l'evento successivo ek. Pertanto, il tempo simulato non scorre in modo continuo. L'orologio del sistema si aggiorna solo quando cambia lo stato del sistema. In questo modo, il modello non elabora i periodi di inattività del sistema ossia i momenti in cui lo stato del sistema è immutato.
    • Fixed-increment time advance
      L'orologio del sistema cambia a intervalli di tempo regolari. In questo caso il modello fotografa il sistema anche quando lo stato del sistema non cambia.

    In genere si usa il primo approccio (next-event time advance).

    E così via

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    La teoria dei sistemi