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.