Uploaded by Wajid Kolachi

Multiteller Bank jockeying(Wajid Ali KF16SW17)

advertisement
Name: Wajid Kolachi
Roll Number: KF16SW17
Date: 19-07-2020
MULTITELLER BANK WITH JOCKEYING
What is mulltiteller bank with jockeying?
This is going to be a multi-queue/multi-server simulation, where members of one queue can “jump” to
another queue under certain conditions.
Teller access in a bank used to be managed this way, although the current tendency appears to be to
have a single customer queue being served by multiple tellers.
To simulate a multi teller bank where the customers are allowed to jockey(move) from one queue to
another queue.
Problem statement
• The bank opens its doors at 9 A.M. and closes its doors at 5 P.M., but operates until all customers still
in the bank are served. Customer interarrival times are IID and exponential with mean 1 minute and
services are IID and exponential with mean 4.5 minutes.
• Each teller has a separate queue. An arriving customer joins the shortest queue, choosing the leftmost
shortest queue if there is a tie. Let ni be the number of customers in front of teller i. If the completion of
service at teller i causes nj > ni + 1 for some other teller j, then the customer from the tail of queue j
jockeys to the tail of queue i. If there are two or more such customers, the one from the closest leftmost
queue joins.
Each teller has a separate queue. An arriving customer joins the shortest queue, choosing the
leftmost shortest queue in case of tie.
Let ni be the total number of customers in front of teller i (including customers in queue as well
as the customer in service, if any) at a particular instant. If the completion of a customer’s service at
teller i causes nj > ni+ 1 for some other teller j, then the customer from the tail of queue j jockeys to the
tail of queue i. (If there are two or more such customers, the one from the closest, leftmost queue
jockeys.) If teller i is idle, the jockeying customer begins service at teller i; see Fig. 2.25.
The bank’s management is concerned with operating costs as well as the quality of service
currently being provided to customers, and is thinking of changing the number of tellers. For each of the
cases n 5 4, 5, 6, and 7 tellers, we use simlib to simulate the bank and estimate the expected timeaverage total number of customers in queue, the expected average delay in queue, and the expected
maximum delay in queue. In all cases we assume that no customers are present when the bank opens.
The events for this model are:
Event type
1
2
3
Event description
Arrival of a customer to the bank
Departure of a customer upon completion of his
or her service
Bank closes its doors at 5 p.m.
An event graph for this model is given in Fig. 2.26, except that the end- simulation event has been
replaced by the close-doors event. Even though these two events fi t into the event diagram in the same
way, the action they must take is quite different. This model requires 2n 1 1 lists of records, where n is
the number of tellers for a particular simulation run. Lists 1 through n contain the records of the
customers waiting in the respective queues. Lists n 1 1 through 2n are used to indicate
List
1 through n
n 1 1 through 2n,
tellers
25, event list
Attribute 1
, Time of arrival to —
— queues
-
Attribute 2
-
Attribute 3
-
-
-
Event time
Event type
Teller number if event
Type =2
Here again we are using separate lists for the servers in the model; in this case the only reason for doing
so is to represent the busy/idle status of the servers, since no meaningful information is stored in the
attributes of the records in these lists, and we are not asking for server utilization statistics. Note also
that we are taking advantage of the opportunity to store more than just the event time and type in the
records in the event list.
We also want to get the time-average total number of customers in queue, which is computed as
follows. If we let Qi(t) be the number of customers in queue i at time t, for i 5 1, 2, . . . , n, then
Q(t) =∑ni=1Qit (t)
(1)
is the total number of customers in all the queues at time t. Thus, what we want to compute is
Q(t) =⌠T0Qit (t)/T
(2)
where T is the time the simulation ends (as determined by the stopping rule described above). However,
if we substitute Eq. (1) into Eq. (2) and use linearity of integrals, we get
q=q1+q2+q3+………………..qn
where
qi=⌠T0Qit (t)/T
is simply the time-average number of customers in queue i. All this really says is that the average of the
sum of the individual queue lengths is the sum of their average lengths. Thus, we can use fi lest (applied
to the lists for the individual queues) at the end of the simulation to obtain the q ˆi’s, and then just add
them together to get q ˆ. To be sure, q ˆ could be obtained directly by defining a times’ variable
corresponding to Q(t), incrementing it upon each arrival, and decrementing it with the commencement
of each service; but we have to keep the queue lists anyway, so the above approach is preferred.
(Problem 2.4 considers an extension of this model where we want to know the maximum total number
of customers in the queues as well as the above statistics; the question addressed there concerns
whether the maximum of the total is equal to the total of the maxima.)
There are two types of random variables in this model: interarrival times and service times. We use the
following stream assignments:
Flowchart for arrival function, bank model.
Flowchart for departure function, bank model
Flowchart for function jockey, bank model.
Download