324 A Simulation Overview
simulation in that appendix cannot be generalized to a multi-server system; whereas,
if we use a future event’s list, it can be generalized to a multi-server system.
Our system is a relatively easy system to represent since it is necessary to only
keep track of the number of customers (entities) in the system. For example, if four
customers are present, then the service facility is occupied and the queue contains
three customers. The simulation will represented by a table, where each row of the
table represents the state of the system at the specified clock time. There is one
arrival stream so to initialize the system we generate the first arrival which has a
value of 0 according to the system description.
We also observe that there are two relevant events in the queueing system;
namely, an arrival (to be denoted by A) to the system and a departure (to be de-
noted by D) from the server. When an entity is placed on the future event’s list, it
will be represented by an ordered pair giving its event type and the time at which
it will be removed from the list. Thus, the simulation is initialized by setting the
clock time to 0, setting the number of customers in the system to 0, and placing one
entity in the future event’s list which is represented as {(A, 0.0)} where entries to
the future event’s list are ordered with the first component being the event that will
be executed when the entity is removed from the future event’s list and the time of
that the entity is to be removed.
The first step of the simulation is to remove the entity from the future event’s list
and “advance” the clock time to 0.0. Since this entity represents an arrival to the sys-
tem, the next arriving entity is immediately generated. Since the inter-arrival times
are exponentially distributed, the arrival time is obtained by generating a random
number, taking the natural log of that number, and multiplying it by 15 minutes (see
the second row of Table A.1), and adding the generated inter-arrival time to the cur-
rent clock time. This future arrival is then placed on the future event’s list. For this
example, our random number was 0.628 which generated a value of 6.978 repre-
senting the next arrival to the queueing system. Returning to time zero (our current
clock time), we add one to the system and then generate a service time since the
arriving entity will enter the server. We generate 0.416 as the random number which
yields a service time of 10.525 which completes the simulation at time zero. The
table describing these steps is shown in Table A.2. After finishing the description
Table A.2 Results at clock time = 0.0 yielding a future event’s list {(A,6.978),(D, 10.525)}
Clock Event Random Next # in Random Next
Time Type Number Arrival System Number Departure
0.000 A 0.628 6.978 1 0.416 10.525
of the system with clock time 0, the next entity to become active is pulled from the
future event’s list and the clock time is advanced according to the next event’s future
time. Since the next event is an arrival again, another entity is created and the time
of its arrival is immediately generated and placed on the future event’s list. Notice
that the future event’s list is arranged so that the event’s are listed in increasing order
of their future event’s time. Because the entity that arrives at time 6.978 finds the