Discrete-event simulation: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: volume, pages. Add: isbn, issue. Formatted dashes. | Use this bot. Report bugs. | Suggested by Superegz | Category:Stochastic simulation | #UCB_Category 3/22
Drgwag (talk | contribs)
I have improved the "Example" section. I've dropped the sentence "An agent-based framework for performance modeling...", since an agent-based framework is not an example of DES.
Line 7:
 
== Example ==
A common exercise in learning how to build discrete-event simulations is to model a [[Queueing theory|queuequeueing system]], such as customers arriving at a bank teller to be served by a tellerclerk. In this example, the system entitiesobjects are '''Customer-queue''Customer' and '''Tellers'''. The system events are '''Customer-Arrival''' and '''Customer-Departure''Teller'. (The event of '''Teller-Begins-Service''', can be part ofwhile the logic of the arrival and departure events.) The system states, which are changed by these events, are '''Number-of-Customers-in-the-Queue''Customer-Arrival' (an integer from 0 to n) and '''Teller-Status', '' (busy or idle). The [[random variable]]s that need to be characterized to model this system [[stochastic]]ally are '''CustomerService-Interarrival-TimeStart''''' and '''Teller-''Service-TimeEnd'''''. An agent-based framework for performance modelingEach of anthese optimisticevents parallelcomes discretewith eventits simulatorown isdynamics anotherdefined exampleby forthe a discretefollowing event simulation.<ref>{{cite journal |author1=Aditya Kurve |author2=Khashayar Kotobi |author3=George Kesidis |title=An agent-based framework for performance modeling of an optimistic parallel discrete event simulator | doi=10.1186/2194-3206-1-12 |volume=1 |journal=Complex Adaptive Systems Modeling |pages=12|year=2013 |doi-access=freeroutines: }}</ref>
 
# When a ''Customer-Arrival'' event occurs, the state variable ''queue-length'' is incremented by 1, and if the state variable ''teller-status'' has the value "available", a ''Service-Start'' follow-up event is scheduled to happen without any delay, such that the newly arrived customer will be served immediately.
# When a ''Service-Start'' event occurs, the state variable ''teller-status'' is set to "busy" and a ''Service-End'' follow-up event is scheduled with a delay (obtained from sampling a ''service-time'' random variable).
# When a ''Service-End'' event occurs, the state variable ''queue-length'' is decremented by 1 (representing the customer's departure). If the state variable ''queue-length'' is still greater than zero, a ''Service-Start'' follow-up event is scheduled to happen without any delay. Otherwise, the state variable ''teller-status'' is set to "available".
 
The [[random variable]]s that need to be characterized to model this system [[stochastic]]ally are the ''interarrival-time'' for recurrent ''Customer-Arrival'' events and the ''service-time'' for the delays of ''Service-End'' events.
 
==Components==