introduction(packages)1 management of the simulated clock lfixed-time increment lvariable-time...
TRANSCRIPT
Introduction(Packages) 1
Management of the Simulated Clock
Fixed-time Increment
Variable-time Increment
Flowchart for arrival routine,queueing model
Arrivalevent
Set delay = 0for this customer
and gather statistics
Isthe server
busy?
Schedule the nextarrival event
Add 1 to thenumber of
customers delayed
Make theserver busy
Schedule adeparture event
for this customer
Add 1to thenumber in queue
Write errormessage and stop
simulation
Store time ofarrival of this
customer
Isthe queue
Full?
Return
NoYes
Yes
No
Departureevent
Subtract 1 fromthe number in
queue
Isthe queueempty?
Compute delay ofcustomer entering service
and gather statistics
Add 1 to the number of customers delayed
Schedule adeparture event
for this customer
Make theserver idle
Move each customerin queue (if any)
up one place
Eliminate departure event from
consideration
Return
NoYes
Flowchart for departure routine,queueing model
Introduction(Packages) 4
Distribution of time between arrivals
Time between Cumulative Random digitArrivals(min.) Probability Probability Assignment
12345678
0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125
0.125 0.2500.3750.5000.6250.7500.8751.000
000-125126-250251-375376-500501-625626-750751-875876-000
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
Introduction(Packages) 6
Time-between-arrival DeterminationRandom Time btwn 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 410 302 3 20 535 5
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 210 38 3 20 50 3
CustomerRandom
Digit
ServiceTime
(Minutes)Customer
RandomDigit
ServiceTime
(Minutes)
Event Type
Work Sheet
ClockTime
CustomerNumber
Arrival 1 0
.
.
.
.
.
.
.
.
.
Introduction(Packages) 9
Findings from the Simulation
(min)8.220
56
1. Average waiting time for a customer
Total time customers wait in queue(minute)Total number of customers
Introduction(Packages) 10
Findings from the Simulation(cont)
2. Prob. that a customer has to wait in a queue
Number of customers who waitTotal number of customers
65.020
13
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)
21.086
18
Thus, the probability of the server being busy is the complement of 0.21, or 0.79
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.
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
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.
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
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
Introduction(Packages) 17
The Able-Baker carhop problem(Continued)
l Over the 62-minute period Able is busy 90% of the time.
2 Baker was busy only 69% of the time. The seniority rule keeps Baker less busy.
3 Nine 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.
Introduction(Packages) 18
The Able-Baker carhop problem(Continued)
4 Those 9 who did have to wait only waited an average of 1.22 minutes, which is quite low.
5 In 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.
Introduction(Packages) 19
GPSS (Process-Oriented) Diagram
PERMANENT-CreatedImplicitly
GPSS Equipment Entities-Facilities, Storages,Queues, switches,...
ELEMENTS-Entities and
Attributes
TEMPORARY- created/Destroyed
Dynamically
TRANSACTIONS-Attributes
ModelStructure
OPERATIONS
BLOCKS- Activatedby Entering
Transactions
NETWORK
Logical LevelGPSS Implementation
Level
FlowingThrough
Connectedto form
Introduction(Packages) 20
GPSS Events
Current-Event Chain: Transaction with BDT <= C1
Future-Event Chain:Transaction with BDT > C1
Introduction(Packages) 21
GPSS Events(continued)Note
Events must be executed chronologically, so chains are maintained in ascending order
Current-Event Chain performs an additional tasks(i.e. maintains by priority)
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.
Introduction(Packages) 23
GPSS Sample instructionsBUFFE STORAGE 2
GENERATE 3,,1,4QUEUE WAITSEIZE MACHDEPART WAITADVANCE 4ENTER BUFFERELEASE MACHADVANCE 9LEAVE BUFFETERMINATE 1START 4
Introduction(Packages) 24
GPSS (Process-Oriented) Diagram
no1 no2 no3 no4
Queue WAIT
no1 no2 no3 no4
1 5 9 14
no1
no2
no4
no4
FacilityMACH
StorageBUFFE
18
5 9 14 18 23
27
no1 no2 no3 no4
0
no1 no2 no3
no3
1 4 7 10 15 2520 30
Introduction(Packages) 25
GPSS/H Block Diagram, Queueing Model
GENERATERVEXPO(1,1.0)
QUEUE
SEIZE
DEPART
ADVANCERVEXPO(2,0.5)
RELEASE
TERMINATE
SERVERQ
SERVERQ
SERVER
SERVER
1
LVEQ
CreateArriving
Customer
Enter theQueue
Seizethe
Server
Leavethe
Queue
Test for theterminationof the run
Delay forService
CustomersDepart
Releasethe
Server(STOP)
N$LVEQL
TEST
(STOP)
1000
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 QUEUE SERVERQ Enter the Queue 6 SEIZE SERVER Seize the Server 7 LVEQ DEPART SERVERQ Leave the Queue 8 TEST L N$LVEQ,1000,STOP Test for Termination 9 ADVANCE RVEXPO(2,0.5) Delay for service10 STOP RELEASE SERVER Customers Depart11 TERMINATE 112 *13 * CONTROL STATEMENT14 *15 START 1000 Make 1 simulation run16 END
Introduction(Packages) 27
GPSS/H standard output report, Queueing Model
RELATIVE CLOCK: 1014.1565 ABSOLUTE CLOCK:1014.1565
BLOCK CURRENT TOTAL1 10002 10003 1000LVEQ 10005 10006 999STOP 10008 1000
-- AVG-UTIL-DURING--FACILITY TOTAL AVAIL UNAVL ENTRIES AVG CURRENT TIME TIME TIME TIME/XACT STATUSSERVER 0.516 1000 0.523 AVAIL
Introduction(Packages) 28
GPSS/H standard output report, Queueing Model(Continued)
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT CONTENTS CONTENTS ENTRIES ENTRIES ZEROSSERVERQ 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
Introduction(Packages) 29
SIMSCRIPT II.5 Preamble,Queueing Model
1 PREAMBLE 2 PROCESSES INCLUDE ARRIVAL.GENERATOR, 3 CUSTOMER, AND REPORT 4 RESOURCES INCLUDE SERVER 5 DEFINE DELAY.IN.QUEUE,
MEAN.INTERARRIVAL.TIME, 6 AND MEAN.SERVICE.TIME AS REAL VARIABLES 7 DEFINE TOT.DELAYS AS AN INTEGER VARIABLE 8 DEFINE MINUTES TO MEAN UNITS 9 TALLY AVG.DELAY.IN.QUEUE AS THE AVERAGE AND10 NUM.DELAYS AS THE NUMBER OF DELAY.IN.QUEUE11 ACCUMULATE AVG.NUMBER.IN.QUEUE AS THE12 AVERAGE OF N.Q.SERVER13 ACCUMULATE UTIL.SERVER AS THE AVERAGE OF14 N.X.SERVER15 END
Introduction(Packages) 30
SIMSCRIPT II.5 Main programQueueing Model
1 MAIN 2 3 READ MEAN.INTERARRIVAL.TIME, 4 MEAN.SERVICE.TIME, AND TOT.DELAYS 5 6 CREATE EVERY SERVER(1) 7 LET U.SERVER(1) = 1 8 9 ACTIVATE AN ARRIVAL.GENERATOR NOW1011 START SIMULATION1213 END
Introduction(Packages) 31
SIMSCRIPT II.5 Process routineARRIVAL.GENERATOR
1 PROCESS 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 8 LOOP 910 END
Introduction(Packages) 32
SIMSCRIPT II.5 Process routineCUSTOMER
1 PROCESS CUSTOMER 2 3 DEFINE TIME.OF.ARRIVAL AS A REAL VARIABLE 4 LET TIME.OF.ARRIVAL = TIME.V 5 REQUEST 1 SERVER(1) 6 LET DELAY.IN.QUEUE = TIME.V - TIME.OF.ARRIVAL 7 IF NUM.DELAYS = TOT.DELAYS 8 ACTIVATE A REPORT NOW 9 ALWAYS10 WORK EXPONENTIAL.F (MEAN.SERVICE.TIME, 2)11 MINUTES12 RELINQUISH 1 SERVER(1)1314 END
Introduction(Packages) 33
SIMSCRIPT II.5 Process routineREPORT
1 PROCESS 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 *****
Introduction(Packages) 34
SIMSCRIPT II.5 Process routineREPORT(Continued)
19 PRINT 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 *.**
29 STOP3031 END
Introduction(Packages) 35
SIMSCRIPT II.5 Output ReportQueueing Model
SIMULATION OF THE M/M/1 QUEUE
MEAN INTERARRIVAL TIME 1.00
MEAN SERVICE TIME .50
NUMBER OF CUSTOMERS 1000
AVERAGE DELAY IN QUEUE .43
AVERAGE NUMBER IN QUEUE .43
SERVER UTILIZATION .50
Introduction(Packages) 36
SLAM II network forsingle-server queue simulation
1000
1 1
0.
EXPON(4,5)
CREATE node QUEUE node ACTIVITY TERMINATE node
1
0RNORM (3.2, 0.6)
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
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"
#define SVTM 1.0 /*mean of service time distribution */
#define IATM 2.0 /*mean of inter-arrival time distribution */
#define NARS 5000 /*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*/
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*/
}
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*/
}
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);
}
Introduction(Packages) 42
CSIM Results(1)Tue Dec 1 09:25:18 1987 CSIM 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
Introduction(Packages) 43
CSIM Results(2)Table 1
Table Name: resp tms
mean 1.989 min 0.000
variance 3.813 max 14.273
Number of entries 5000
QTable 2
QTable Name: num in sys
Mean queue length 0.991 Max queue length 13
Mean time in queue 1.989 Number of entries 5000
Introduction(Packages) 44
CSIM Results(3)Queue Table Histogram
Length % of Elapsed Time Cumulative Count Mean 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
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