Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction(Packages)1 Management of the Simulated Clock lFixed-time Increment lVariable-time Increment.

Similar presentations


Presentation on theme: "Introduction(Packages)1 Management of the Simulated Clock lFixed-time Increment lVariable-time Increment."— Presentation transcript:

1 Introduction(Packages)1 Management of the Simulated Clock lFixed-time Increment lVariable-time Increment

2 Flowchart for arrival routine, queueing model Arrival event Set delay = 0 for this customer and gather statistics Is the server busy? Schedule the next arrival event Add 1 to the number of customers delayed Make the server busy Schedule a departure event for this customer Add 1to the number in queue Write error message and stop simulation Store time of arrival of this customer Is the queue Full? Return NoYes No

3 Departure event Subtract 1 from the number in queue Is the queue empty? Compute delay of customer entering service and gather statistics Add 1 to the number of customers delayed Schedule a departure event for this customer Make the server idle Move each customer in queue (if any) up one place Eliminate departure event from consideration Return NoYes Flowchart for departure routine, queueing model

4 Introduction(Packages)4 Distribution of time between arrivals Time between Cumulative Random digit Arrivals(min.) Probability Probability Assignment 1234567812345678 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 000-125 126-250 251-375 376-500 501-625 626-750 751-875 876-000

5 Introduction(Packages)5 Service Time Distribution Service Time Cumulative Random digit (Minutes) Probability Probability Assignment 1 0.10 0.10 01 - 10 2 0.20 0.30 11 - 30 3 0.30 0.60 31 - 60 4 0.25 0.85 61- 85 5 0.10 0.95 86 - 95 6 0.05 1.00 96 - 00

6 Introduction(Packages)6 Time-between-arrival Determination Random Time btwn Digit Arrivals Digit Arrivals Customer (Minutes) Customer (Minutes) 1 _ _ 11 109 1 2 913 8 12 093 1 3 727 6 13 607 5 4 015 1 14 738 6 5 948 8 15 359 3 6 309 3 16 888 8 7 922 8 17 106 1 8 753 7 18 212 2 9 235 2 19 493 4 10 302 3 20 535 5

7 Introduction(Packages)7 Service Times Generated 1 84 4 11 32 3 2 10 1 12 94 5 3 74 4 13 79 4 4 53 3 14 05 1 5 17 2 15 79 5 6 79 4 16 84 4 7 91 5 17 52 3 8 67 4 18 55 3 9 89 5 19 30 2 10 38 3 20 50 3 Customer Random Digit Service Time (Minutes) Customer Random Digit Service Time (Minutes)

8 Event Type Work Sheet Clock Time Customer Number Arrival 1 0..................

9 Introduction(Packages)9 Findings from the Simulation 1. Average waiting time for a customer Total time customers wait in queue(minute) Total number of customers

10 Introduction(Packages)10 Findings from the Simulation (cont) 2. Prob. that a customer has to wait in a queue Number of customers who wait Total number of customers

11 Introduction(Packages)11 Findings from the Simulation (cont) 3. Proportion of idle time of the server Total idle time of server(minute) Total run time of simulation(minute) Thus, the probability of the server being busy is the complement of 0.21, or 0.79

12 Introduction(Packages)12 The Able-Baker carhop problem The purpose of this example is to indicate the simulation procedure when there is more than one channel. Consider a drive-in restaurant where carhops take orders and bring food to the car. Cars arrive in the manner shown in the following table.

13 Introduction(Packages)13 The Able-Baker carhop problem (Interarrival distribution of cars) Time between Random Arrivals Cumulative Digit (Minutes) Probability Probability Assignment 1 0.25 0.25 01-25 2 0.40 0.65 26-65 3 0.20 0.85 66-85 4 0.15 1.00 86-00

14 Introduction(Packages)14 The Able-Baker carhop problem (continued) There are two car hops -- Able and Baker. Able is better able to do the job, and works somewhat faster than Baker. The distribution of service times of Able and Baker is following.

15 Introduction(Packages)15 The Able-Baker carhop problem (Service Distribution of Able) Service Random Time Cumulative Digit (Minutes) Probability Probability Assignment 2 0.30 0.30 01-30 3 0.28 0.58 31-58 4 0.25 0.83 59-83 5 0.17 1.00 84-00

16 Introduction(Packages)16 The Able-Baker carhop problem (Service Distribution of Baker) Service Random Time Cumulative Digit (Minutes) Probability Probability Assignment 3 0.35 0.35 01-35 4 0.25 0.60 36-60 5 0.20 0.80 61-80 6 0.20 1.00 81-00

17 Introduction(Packages)17 The Able-Baker carhop problem (Continued) lOver the 62-minute period Able is busy 90% of the time. 2Baker was busy only 69% of the time. The seniority rule keeps Baker less busy. 3Nine of 26 or about 35% of the arrivals had to wait. The average waiting time for all customers was only about 0.42 minute, or 25 seconds, which is very small.

18 Introduction(Packages)18 The Able-Baker carhop problem (Continued) 4Those 9 who did have to wait only waited an average of 1.22 minutes, which is quite low. 5In summary, this system seems well balanced. One server cannot handle all the dinners, and three servers would probably be too many. Adding an additional server would surely reduce the waiting time to nearly zero. However, the cost of waiting would have to be quite high to justify an additional worker.

19 Introduction(Packages)19 GPSS (Process-Oriented) Diagram

20 Introduction(Packages)20 GPSS Events lCurrent-Event Chain: Transaction with BDT <= C1 lFuture-Event Chain: Transaction with BDT > C1

21 Introduction(Packages)21 GPSS Events(continued) lNote Events must be executed chronologically, so chains are maintained in ascending order Current-Event Chain performs an additional tasks(i.e. maintains by priority)

22 Introduction(Packages)22 GPSS Execution Trace The system. Four transactions enter the system at intervals of 3 time units, starting at time unit 1. They try to seize facility MACH for 4 time units and then try to enter storage BUFFE (with capacity 2) before releasing MACH. After 9 time units in BUFFE, they leave storage and terminate. In this model the number of transactions must be limited because it has been devised to cause catastrophic congestion.

23 Introduction(Packages)23 GPSS Sample instructions BUFFESTORAGE2 GENERATE3,,1,4 QUEUEWAIT SEIZEMACH DEPARTWAIT ADVANCE4 ENTERBUFFE RELEASEMACH ADVANCE9 LEAVEBUFFE TERMINATE1 START4

24 Introduction(Packages)24 GPSS (Process-Oriented) Diagram

25 Introduction(Packages)25 GPSS/H Block Diagram, Queueing Model

26 Introduction(Packages)26 GPSS/H - Queueing Model 1 * SIMULATION OF THE M/M/1 QUEUE 2 * 3 SIMULATE 4 GENERATE RVEXPO(1,1,0) Create Arriving Customer 5 QUEUESERVERQ Enter the Queue 6 SEIZE SERVER Seize the Server 7 LVEQ DEPARTSERVERQ Leave the Queue 8 TEST LN$LVEQ,1000,STOP Test for Termination 9 ADVANCERVEXPO(2,0.5) Delay for service 10STOP RELEASESERVER Customers Depart 11 TERMINATE 1 12 * 13 * CONTROL STATEMENT 14 * 15 START1000 Make 1 simulation run 16 END

27 Introduction(Packages)27 GPSS/H standard output report, Queueing Model RELATIVE CLOCK: 1014.1565 ABSOLUTE CLOCK:1014.1565 BLOCK CURRENTTOTAL 11000 21000 31000 LVEQ1000 51000 6 999 STOP1000 81000 -- AVG-UTIL-DURING-- FACILITY TOTAL AVAIL UNAVL ENTRIES AVG CURRENT TIME TIME TIME TIME/XACT STATUS SERVER 0.516 1000 0.523 AVAIL

28 Introduction(Packages)28 GPSS/H standard output report, Queueing Model(Continued) QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT CONTENTS CONTENTS ENTRIES ENTRIES ZEROS SERVERQ 8 0.605 1000 454 45.4 QUEUE AVERAGE $AVERAGE QTABLE CURRENT TIME/UNIT TIME/UNIT NUMBER CONTENTS SERVERQ 0.614 1.124 0 RANDOM ANTITHETIC INITIAL CURRENT SAMPLE CHI-SQUARE STREAM VARIATES POS. POS. COUNT UNIFORMITY 1 OFF 100000 101001 1001 0.71 2 OFF 200000 200999 999 0.69

29 Introduction(Packages)29 SIMSCRIPT II.5 Preamble, Queueing Model 1PREAMBLE 2PROCESSES INCLUDE ARRIVAL.GENERATOR, 3 CUSTOMER, AND REPORT 4 RESOURCES INCLUDE SERVER 5DEFINE DELAY.IN.QUEUE, MEAN.INTERARRIVAL.TIME, 6 AND MEAN.SERVICE.TIME AS REAL VARIABLES 7DEFINE TOT.DELAYS AS AN INTEGER VARIABLE 8DEFINE MINUTES TO MEAN UNITS 9TALLY AVG.DELAY.IN.QUEUE AS THE AVERAGE AND 10 NUM.DELAYS AS THE NUMBER OF DELAY.IN.QUEUE 11ACCUMULATE AVG.NUMBER.IN.QUEUE AS THE 12 AVERAGE OF N.Q.SERVER 13ACCUMULATE UTIL.SERVER AS THE AVERAGE OF 14 N.X.SERVER 15END

30 Introduction(Packages)30 SIMSCRIPT II.5 Main program Queueing Model 1MAIN 2 3 READ MEAN.INTERARRIVAL.TIME, 4 MEAN.SERVICE.TIME, AND TOT.DELAYS 5 6 CREATE EVERY SERVER(1) 7LET U.SERVER(1) = 1 8 9ACTIVATE AN ARRIVAL.GENERATOR NOW 10 11START SIMULATION 12 13END

31 Introduction(Packages)31 SIMSCRIPT II.5 Process routine ARRIVAL.GENERATOR 1PROCESS ARRIVAL.GENERATOR 2 3 WHILE TIME.V >= 0.0 4 DO 5 WAIT EXPONENTIAL.F(MEAN.INTERARRIVAL.TIME, 6 1) MINUTES 7 ACTIVATE A CUSTOMER NOW 8LOOP 9 10 END

32 Introduction(Packages)32 SIMSCRIPT II.5 Process routine CUSTOMER 1PROCESS CUSTOMER 2 3DEFINE TIME.OF.ARRIVAL AS A REAL VARIABLE 4 LET TIME.OF.ARRIVAL = TIME.V 5REQUEST 1 SERVER(1) 6LET DELAY.IN.QUEUE = TIME.V - TIME.OF.ARRIVAL 7 IF NUM.DELAYS = TOT.DELAYS 8 ACTIVATE A REPORT NOW 9ALWAYS 10WORK EXPONENTIAL.F (MEAN.SERVICE.TIME, 2) 11 MINUTES 12RELINQUISH 1 SERVER(1) 13 14 END

33 Introduction(Packages)33 SIMSCRIPT II.5 Process routine REPORT 1PROCESS REPORT 2 3 PRINT 5 LINES THUS SIMULATION OF THE M/M/1 QUEUE 9 PRINT 8 LINES WITH MEAN.INTERARRIVAL.TIME, 10 SERVICE.TIME, AND TOT.DELAYS THUS MEAN INTERARRIVAL TIME**.** MEAN SERVICE TIME**.** NUMBER OF CUSTOMERS*****

34 Introduction(Packages)34 SIMSCRIPT II.5 Process routine REPORT(Continued) 19PRINT 8 LINES WITH AVG.DELAY.IN.QUEUE, 20 AVG.NUMBER.IN.QUEUE(1), ANDUTIL.SERVER(1) 21 THUS AVERAGE DELAY IN QUEUE***.** AVERAGE NUMBER IN QUEUE***.** SERVER UTILIZATION *.** 29STOP 30 31END

35 Introduction(Packages)35 SIMSCRIPT II.5 Output Report Queueing Model SIMULATION OF THE M/M/1 QUEUE MEAN INTERARRIVAL TIME1.00 MEAN SERVICE TIME.50 NUMBER OF CUSTOMERS1000 AVERAGE DELAY IN QUEUE.43 AVERAGE NUMBER IN QUEUE.43 SERVER UTILIZATION.50

36 Introduction(Packages)36 SLAM II network for single-server queue simulation

37 Introduction(Packages)37 SLAM II Model of Single-Server Queue GEN, BANKS CARSON, NELSON SINGLE SERVER QUEUE EXAMPLE, 1/20/95 LIMITS,1,0,30; MODEL CAN USE 1 FILE, MAX NO. OF SIMULTANEOUS ENTRIES 30 NETWORK; BEGINNING OF MODEL CREATE, EXPON(4.5)CUSTOMERS ARRIVE AT CHECKOUT QUEUE(1);CUSTOMERS WAIT FOR SERVICE IN QUEUE FILE ONE (1) ACTIVITY(1)/1,RNORM(3.2,.6);CHECKOUT SERVICE TIME IS N(3.2,0.6) TERMINATE, 1000;SIMULATE UNTIL 1000 CUSTOMERS ARE CHECKED OUT ENDNETWORK;END OF MODEL END OF SIMULATION

38 Introduction(Packages)38 CSIM Sample Code(1) /* simulate an M/M/1 queue (an open queue with exponential service times and interarrival intervals) */ #include "lib/csim.h" #defineSVTM1.0/*mean of service time distribution */ #define IATM2.0/*mean of inter-arrival time distribution */ #define NARS5000/*number of arrivals to be simulated*/ FACILITY f;/*pointer for facility */ EVENT done;/*pointer for counter */ TABLE tbl;/*pointer for table */ QTABLE qtbl;/*pointer for qhistogram */ int cnt;/*number of active tasks*/

39 Introduction(Packages)39 CSIM Sample Code(2) sim()/*1st process - named sim */ { int i; set_model_name("M/M/1 Queue"); create("sim");/*required create statement*/ f = facility("facility");/*declare facility*/ done = event("done");/*declare event*/ tbl = table("resp tms");/*declare table */ qtbl = qhistogram("num in sys", 10);/*declare qhistogram*/ cnt = NARS;/*initialize cnt*/ for(i = 1; i <= NARS; i++) { hold(expntl(IATM));/* hold interarrival*/ cust();/*initiate process cust*/ } wait(done);/*wait until all done*/ report();/*print report*/ theory();/*print theoretical res*/ }

40 Introduction(Packages)40 CSIM Sample Code(3) cust()/*process customer*/ { float t1; create("cust");/*required create statement*/ t1 = clock;/*time of request */ note_entry(qtbl);/*note arrival */ reserve(f);/*reserve facility f*/ hold(expntl(SVTM));/*hold service time*/ release(f);/*release facility f*/ record(clock-t1, tbl);/*record response time*/ note_exit(qtbl);/*note departure */ cnt--;/*decrement cnt*/ if(cnt == 0) set(done);/*if last arrival, signal*/ }

41 Introduction(Packages)41 CSIM Sample Code(4) theory()/*print theoretical results*/ { float rho, nbar, rtime, tput; printf("\n\n\n\t\t\tM/M/1 Theoretical Results\n"); tput = 1.0/IATM; rho = tput*SVTM; nbar = rho/(1.0 - rho); rtime = SVTM/(1.0 - rho); printf("\n\n"); printf("\t\tInter-arrival time = %10.3f\n",IATM); printf("\t\tService time = %10.3f\n",SVTM); printf("\t\tUtilization = %10.3f\n",rho); printf("\t\tThroughput rate = %10.3f\n",tput); printf("\t\tMn nbr at queue = %10.3f\n",nbar); printf("\t\tMn queue length = %10.3f\n",nbar-rho); printf("\t\tResponse time = %10.3f\n",rtime); printf("\t\tTime in queue = %10.3f\n",rtime - SVTM); }

42 Introduction(Packages)42 CSIM Results(1) Tue Dec 1 09:25:18 1987CSIM Simulation Report Version 12 Model: M/M/1 Queue Time: 10041.661 Interval: 10041.661 CPU Time: 32.183 (seconds) Facility Usage Statistics +----------------------+---------------means----------------+---counts----+ facility srv disp serv_tm util tput qlen resp cmp pre facility 0.992 0.494 0.5 0.991 1.989 5000 0

43 Introduction(Packages)43 CSIM Results(2) Table 1 Table Name: resp tms mean 1.989min 0.000 variance 3.813max 14.273 Number of entries 5000 QTable 2 QTable Name: num in sys Mean queue length 0.991Max queue length 13 Mean time in queue 1.989Number of entries 5000

44 Introduction(Packages)44 CSIM Results(3) Queue Table Histogram Length% of Elapsed TimeCumulativeCountMean Time 0 0.506 0.506 2516 2.020 1 0.242 0.748 3694 0.657 2 0.123 0.871 1845 0.671 3 0.067 0.938 1014 0.659 4 0.035 0.972 510 0.686 5 0.015 0.988 234 0.652 6 0.007 0.995 99 0.700 7 0.002 0.997 40 0.627 8 0.001 0.998 21 0.469 9 0.001 0.999 13 0.823 10 0.000 0.999 6 0.519 over 0.001 1.000 8 0.807

45 Introduction(Packages)45 CSIM Results(4) M/M/1 Theoretical Results Inter-arrival time = 2.000 Service time = 1.000 Utilization = 0.500 Throughput rate = 0.500 Mn nbr at queue = 1.000 Mn queue length = 0.500 Response time = 2.000 Time in queue = 1.000


Download ppt "Introduction(Packages)1 Management of the Simulated Clock lFixed-time Increment lVariable-time Increment."

Similar presentations


Ads by Google