0% found this document useful (0 votes)
10 views

Lecture 2

The document outlines a simulation model for managing a queueing system, detailing the arrival and departure routines, service time distributions, and findings from the simulation. It includes flowcharts, statistical data, and examples such as the Able-Baker carhop problem to illustrate the application of the model. Additionally, it presents GPSS and SIMSCRIPT II.5 implementations for simulating the queueing model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Lecture 2

The document outlines a simulation model for managing a queueing system, detailing the arrival and departure routines, service time distributions, and findings from the simulation. It includes flowcharts, statistical data, and examples such as the Able-Baker carhop problem to illustrate the application of the model. Additionally, it presents GPSS and SIMSCRIPT II.5 implementations for simulating the queueing model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

Management of the Simulated

Clock
 Fixed-time Increment

 Variable-time Increment

Introduction(Packages) 1
Flowchart for arrival routine, Arrival
event

queueing model
Schedule the next
arrival event

Yes Is No
the server
busy?

Add 1to the Set delay = 0


number in queue for this customer
and gather statistics

Write error Yes Is Add 1 to the


message and stop the queue number of
simulation Full? customers delayed
No
Store time of Make the
arrival of this server busy
customer

Schedule a
departure event
for this customer

Return
Flowchart for departure routine, Departure
event

queueing model
Yes Is No
the queue
empty?

Make the Subtract 1 from


server idle the number in
queue

Eliminate departure Compute delay of


event from customer entering service
consideration and gather statistics

Add 1 to the number


of customers delayed

Schedule a
departure event
for this customer

Move each customer


in queue (if any)
up one place

Return
Distribution of time between arrivals
Time between Cumulative Random digit
Arrivals(min.) Probability Probability Assignment

1 0.125 0.125 000-125


2 0.125 0.250 126-250
3 0.125 0.375 251-375
4 0.125 0.500 376-500
5 0.125 0.625 501-625
6 0.125 0.750 626-750
7 0.125 0.875 751-875
8 0.125 1.000 876-000
Introduction(Packages) 4
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) 5
Time-between-arrival Determination
Random 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 4
10 302 3 20 535 5
Introduction(Packages) 6
Service Times Generated
Service Service
Random Random
Customer Time Time
Digit Customer Digit
(Minutes) (Minutes)

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
Introduction(Packages) 7
Work Sheet
Customer Clock
Event Type
Number Time
Arrival 1 0
. . .
. . .
. . .
Findings from the Simulation
1. Average waiting time for a customer

Total time customers wait in queue(minute)


Total number of customers
56
 2.8(min)
20

Introduction(Packages) 9
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
13
 0.65
20

Introduction(Packages) 10
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)
18
 0.21
86
Thus, the probability of the server
being busy is the complement of 0.21,
or 0.79
Introduction(Packages) 11
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) 12
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) 13
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) 14
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) 15
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) 16
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) 17
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) 18
GPSS (Process-Oriented)
Diagram
GPSS Implementation
Logical Level
Level

PERMANENT GPSS Equipment Entities


-Created -Facilities, Storages,
Implicitly Queues, switches,...
ELEMENTS
-Entities and
Attributes

TEMPORARY
- created/ TRANSACTIONS Flowing
Destroyed -Attributes
Model Dynamically Through
Structure

BLOCKS
- Activated Connected
OPERATIONS NETWORK
by Entering to form
Transactions

Introduction(Packages) 19
GPSS Events
 Current-Event Chain:
Transaction with BDT <= C1
 Future-Event Chain:
Transaction with BDT > C1

Introduction(Packages) 20
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) 21
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) 22
GPSS Sample instructions
BUFFE STORAGE 2
GENERATE 3,,1,4
QUEUE WAIT
SEIZE MACH
DEPART WAIT
ADVANCE 4
ENTER BUFFE
RELEASE MACH
ADVANCE 9
LEAVE BUFFE
TERMINATE 1
START 4
Introduction(Packages) 23
GPSS (Process-Oriented)
Diagram
no1 no2 no3 no4
0 1 4 7 10 15 20 25 30

no1 no2 no3 no4


Queue WAIT

no1 no2 no3 no4 Facility


1 5 9 14 18 MACH

no2 no4
Storage
no1 27
BUFFE
no3
5 9 14 18 23

no1 no2 no3 no4

Introduction(Packages) 24
GPSS/H Block Diagram,
Queueing Model
N$LVEQ 1000
Create L
GENERATE Arriving (STOP) Test for the
Custome termination
RVEXPO(1,1.0) TEST
r of the run

QUEUE Enter the ADVANCE Delay for


SERVERQ Queue RVEXPO(2,0.5) Service

Seize
SEIZE the SER Release
SERVER VER the
Server RELEASE
(STOP) Server

Leave
LVEQ DEPART the
SERVERQ
Queue Customers
TERMINATE 1
Depart

Introduction(Packages) 25
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 service
10 STOP RELEASE SERVER Customers Depart
11 TERMINATE 1
12 *
13 * CONTROL STATEMENT
14 *
15 START 1000 Make 1 simulation run
16 END
Introduction(Packages) 26
GPSS/H standard output report,
Queueing Model
RELATIVE CLOCK: 1014.1565 ABSOLUTE CLOCK:1014.1565

BLOCK CURRENT TOTAL


1 1000
2 1000
3 1000
LVEQ 1000
5 1000
6 999
STOP 1000
8 1000

-- AVG-UTIL-DURING--
FACILITY TOTAL AVAIL UNAVL ENTRIES AVG CURRENT
TIME TIME TIME TIME/XACT STATUS
SERVER 0.516 1000 0.523 AVAIL

Introduction(Packages) 27
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

Introduction(Packages) 28
SIMSCRIPT II.5 Preamble,
1 PREAMBLE
Queueing Model
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 AND
10 NUM.DELAYS AS THE NUMBER OF DELAY.IN.QUEUE
11 ACCUMULATE AVG.NUMBER.IN.QUEUE AS THE
12 AVERAGE OF N.Q.SERVER
13 ACCUMULATE UTIL.SERVER AS THE AVERAGE OF
14 N.X.SERVER
15 END Introduction(Packages) 29
SIMSCRIPT II.5 Main program
Queueing 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 NOW
10
11 START SIMULATION
12
13 END

Introduction(Packages) 30
SIMSCRIPT II.5 Process routine
ARRIVAL.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
9
10 END

Introduction(Packages) 31
SIMSCRIPT II.5 Process routine
CUSTOMER
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 ALWAYS
10 WORK EXPONENTIAL.F (MEAN.SERVICE.TIME, 2)
11 MINUTES
12 RELINQUISH 1 SERVER(1)
13
14 END
Introduction(Packages) 32
SIMSCRIPT II.5 Process routine
1 PROCESS REPORT
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) 33
SIMSCRIPT II.5 Process routine
REPORT(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 STOP
30
31 END

Introduction(Packages) 34
SIMSCRIPT II.5 Output Report
Queueing 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) 35
SLAM II network for
single-server queue simulation
EXPON(4,5)

0
0. RNORM (3.2, 0.6)
1 1000

1 1

CREATE node QUEUE node ACTIVITY TERMINATE node

Introduction(Packages) 36
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) 37
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) 38
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) 39
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) 40
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) 41
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) 42
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) 43
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) 44
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

Introduction(Packages) 45

You might also like