Drs. Trani and Rakha General Applications Introduction to...

116
Virginia Polytechnic Institute and State University 1 of 116 Introduction to MATLAB General Applications Drs. Trani and Rakha Civil and Environmental Engineering Virginia Polytechnic Institute and State University Spring 2000

Transcript of Drs. Trani and Rakha General Applications Introduction to...

Page 1: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

1 of 116

Introduction to MATLAB

General Applications

Drs. Trani and Rakha

Civil and Environmental EngineeringVirginia Polytechnic Institute and State University

Spring 2000

Page 2: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

2 of 116

Sample Applications

The following examples constitute typical applications of Matlab scripts and functions used in Transportation Engineering.

The following examples are covered:

Deterministic queueing model

Stochastic queueing model

Simulation model of an M/M/1 system

Page 3: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

3 of 116

Deterministic Queues

Deterministic Queues are analogous to a continuous flow of entities passing over a point over time. As Morlok [Morlok, 1976] points out this type of analysis is usually carried out when the number of entities to be simulated is large as this will ensure a better match between the resulting cumulative stepped line representing the state of the system and the continuous approximation line

The figure below depicts graphically a deterministic queue characterized by a region where demand exceeds supply for a period of time

Page 4: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

4 of 116

Deterministic Queues (Continuous)

Demand

Supply

Rates

Cumulative Flow

Cumulative Supply

CumulativeDemand

Supply Deficit

Time

Lt

Wt

tin tout

Page 5: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

5 of 116

Deterministic Queues (Discrete Case)

Demand (λ)

Supply (µ)

Rates

Cumulative Flow

Cumulative Supply

CumulativeDemand

Supply Deficit

Time∆t

Page 6: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

6 of 116

Deterministic Queues (Parameters)

a) The queue length, , (i.e., state of the system) corresponds to the maximum ordinate distance between the cumulative demand and supply curves

b) The waiting time, , denoted by the horizontal distance between the two cumulative curves in the diagram is the individual waiting time of an entity arriving to the queue at time

c) The total delay is the area under bounded by these two curves

d) The average delay time is the quotient of the total delay and the number of entities processed

Lt

W t

tin

Page 7: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

7 of 116

Deterministic Queues

e) The average queue length is the quotient of the total delay and the time span of the delay (i.e., the time difference between the end and start of the delay)

Assumptions

Demand and supply curves are derived derived from known flow rate functions (

λ

and

µ

) which of course are functions of time.

The diagrams shown represent a simplified scenario arising in many practical situations such as those encountered in traffic engineering (i.e., bottleneck analysis).

Page 8: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

8 of 116

Remarks About Deterministic Queues

Introducing some time variations in the system we can easily grasp the benefit of the simulation

Most of the queueing processes at transportation terminals are non-steady thus analytic models seldom apply

Data typically exist on passenger behaviors over time that can be used to feed these deterministic, non-steady models

The capacity function is perhaps the most difficult to quantify because human performance is affected by the state of the system (i.e., queue length among others)

Page 9: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

9 of 116

Example: Deterministic Queueing Model of the Immigration Area at an Airport

Let us define a demand function that varies with time representing the typical cycles of operation observed at airport terminals. This demand function, is:

• Deterministic• Observed or predicted• A function of time (a table function)

Suppose the capacity of the system, , is also known and deterministic as shown in the following Matlab code

λ t( )

µ t( )

Page 10: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

10 of 116

Continuous Simulation Example (Rates)

0 0.5 1 1.5 2 2.5 3

400

600

800

1000

1200

1400

1600

Time (minutes)

Dem

and

or C

paci

ty (

Ent

ities

/tim

e)

TextEnd

Demand - λ(t)

Supply - µ(t)

Page 11: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

11 of 116

Plots of Integrals of and λ t( ) µ t( )

0 0.5 1 1.5 2 2.5 30

20

40

60

80

100

Time

Ent

ities

in Q

ueue

TextEnd

0 0.5 1 1.5 2 2.5 30

20

40

60

80

100

Time

Tot

al D

elay

(E

ntiti

es-t

ime)

TextEnd

Page 12: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

12 of 116

Matlab Source Code for Deterministic Queueing Model (main file)

% Deterministic queueing simulation% T. Trani (Rev. Mar 99)global demand capacity time

% Enter demand function as an array of values over time

% general demand - capacity relationships%

demand = [1500 1000 1200 500 500 500];capacity = [1200 1200 1000 1000 1200 1200];time = [0.00 1.00 1.500 1.75 2.00 3.00];

% Compute min and maximum values for proper scaling in plotsmintime = min(time);maxtime = max(time);

Page 13: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

13 of 116

maxd = max(demand);maxc = max(capacity);mind = min(demand);minc = min(capacity);scale = round(.2 *(maxc+maxd)/2)minplot = min(minc,mind) - scale;maxplot = max(maxc,maxd) + scale;

po = [0 0]; % intial number of passengersto = mintime;tf = maxtime;tspan = [to tf];

% where:% to is the initial time to solve this equation% tf is the final time% tspan is the time span to solve the simulation

Page 14: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

14 of 116

[t,p] = ode23('fqueue_2',tspan,po);

% Compute statistics

Ltmax = max(p(:,1));tdelay = max(p(:,2));a_demand = mean(demand);a_capacity = mean(capacity);

clc disp([blanks(5),'Deterministic Queueing Model ']) disp(' ') disp(' ') disp([blanks(5),' Average arrival rate (entities/time) = ', num2str(a_demand)]) disp([blanks(5),' Average capacity (entities/time) = ', num2str(a_capacity)]) disp([blanks(5),' Simulation Period (time units) = ', num2str(maxtime)])

Page 15: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

15 of 116

disp(' ') disp(' ') disp([blanks(5),' Total delay (entities-time) = ', num2str(tdelay)]) disp([blanks(5),' Max queue length (entities) = ', num2str(Ltmax)]) disp(' ')

pause

% Plot the demand and supply functions

plot(time,demand,'b',time,capacity,'k')xlabel('Time (minutes)')ylabel('Demand or Cpacity (Entities/time)')axis([mintime maxtime minplot maxplot])grid

pause% Plot the results of the numerical integration procedure

Page 16: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

16 of 116

subplot(2,1,1)plot(t,p(:,1),'b')xlabel('Time')ylabel('Entities in Queue')grid

subplot(2,1,2)plot(t,p(:,2),'k')xlabel('Time')ylabel('Total Delay (Entities-time)')grid

Page 17: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

17 of 116

Matlab Source Code for Deterministic Queueing Model (function file)

% Function file to integrate numerically a differential equation % describing a deterministic queueing system

function pprime = fqueue_2(t,p)global demand capacity time

% Define the rate equationsdemand_table = interp1(time,demand,t);capacity_table = interp1(time,capacity,t);

if (demand_table < capacity_table) & (p > 0) pprime(1) = demand_table - capacity_table; % rate of change in state variableelseif demand_table > capacity_table pprime(1) = demand_table - capacity_table; % rate of change in state variable

Page 18: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

18 of 116

else pprime(1) = 0.0; % avoids accumulation of entitiesend

pprime(2) = p(1); % integrates the delay curve over timepprime = pprime';

Page 19: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

19 of 116

Output of Deterministic Queueing Model

Deterministic Queueing Model Average arrival rate (entities/time) = 866.6667 Average capacity (entities/time) = 1133.3333 Simulation Period (time units) = 3 Total delay (entities-time) = 94.8925 Max queue length (entities) = 89.6247

Page 20: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

20 of 116

Stochastic Queueing Systems Nomenclature

The idea behind the stochastic queueing process is to analyze steady-state conditions. Lets define some notation applicable for steady-state conditions,

N = No. of customers in queueing system

P

n

= Prob. of exactly n customers are in queueing system

L = Expected no. of customers in queueing system

L

q

= Queue length (expected)

W = Waiting time in system (includes service time)

W

q

= Waiting time in queue

Page 21: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

21 of 116

Stochastic Queueing Systems

There are some basic relationships that have beed derived in standard textbooks in operations research [Hillier and Lieberman, 1991]. Some of these more basic relationships are:

L =

λ

W

Lq =

λ

Wq

Page 22: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University

22 of 116

Multiple Server

Infinite source (constant and )

Assumptions:

a) Probability between arrivals is negative exponential with parameter

b) Probability between service completions is negative exponential with parameter

c) Only one arrival or service occurs at a given time

λ µ

λ n

µn

Page 23: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 23 of 116

Multiple Server - Infinite Source (constant , )

utilization factor of the facility

idle probability

probability of n entities in the system

λ µ

ρ λ sµ⁄=

P0 1 λ µ⁄( )n

n!-----------------

λ µ⁄( )s

s!----------------- 1

1 λ sµ⁄( )–---------------------------

+n 0=

s 1–

⁄=

Pn

λ µ⁄( )n

n!-----------------P0

λ µ⁄( )n

s!sn s–-----------------P0

=

0 n s≤ ≤

n s≥

Page 24: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 24 of 116

expected number of entities in system

expected number of entities in queue

average waiting time in queue

average waiting time in system

Finally the probability distribution of waiting times is,

LρP0

λµ---

s

s! 1 ρ–( )2----------------------- λ

µ---+=

Lq

ρP0

λµ---

s

s! 1 ρ–( )2-----------------------=

W qLq

λ-----=

WLλ--- W q

1λ---+= =

Page 25: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 25 of 116

if then use

P W t>( ) e µt– 1

P0

λµ---

s

s! 1 ρ–( )--------------------- 1 e µt s 1– λ µ⁄–( )––

s 1– λ µ⁄–--------------------------------

+=

s 1– λ µ⁄– 0=

1 e µt s 1– λ µ⁄–( )––s 1– λ µ⁄–

-------------------------------- µt=

Page 26: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 26 of 116

Example A2: Level of Service at Security Checkpoints

The airport shown in the next figures has two security checkpoints for all passengers boarding aircraft. Each security check point has two x-ray machines. A survey reveals that on the average a passenger takes 45 seconds to go through the system (negative exponential distribution service time).

The arrival rate is known to be random (this equates to a Poisson distribution) with a mean arrival rate of one passenger every 25 seconds.

In the design year (2010) the demand for services is expected to grow by 60% compared to that today.

Page 27: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 27 of 116

Relevant Operational Questions

a) What is the current utilization of the queueing system (i.e., two x-ray machines)?

b) What should be the number of x-ray machines for the design year of this terminal (year 2010) if the maximum tolerable waiting time in the queue is 2 minutes?

c) What is the expected number of passengers at the checkpoint area on a typical day in the design year (year 2010)?

d) What is the new utilization of the future facility?

e) What is the probability that more than 4 passengers wait for service in the design year?

Page 28: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 28 of 116

Airport Terminal Layout

Page 29: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 29 of 116

Security Check Point Layout

Queueing System Service Facility

Page 30: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 30 of 116

Security Check Point Solutions

a) Utilization of the facility, ρ. Note that this is a multiple server case with infinite source.

ρ = λ / (sµ) = 140/(2*80) = 0.90

Other queueing parameters are found using the steady-state equations for a multi-server queueing system with infinite population are: Idle probability = 0.052632 Expected No. of customers in queue (Lq) = 7.6737 Expected No. of customers in system (L) = 9.4737 Average Waiting Time in Queue = 192 s Average Waiting Time in System = 237 s

Page 31: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 31 of 116

b) The solution to this part is done by trail and error (unless you have access to design charts used in queueing models. As a first trial lets assume that the number of x-ray machines is 3 (s=3).

Finding Po,

Po = .0097 or less than 1% of the time the facility is idle

Find the waiting time in the queue,

Wq = 332 s

Since this waiting time violates the desired two minute maximum it is suggested that we try a higher number of x-ray machines to expedite service (at the expense of

P0λ µ⁄( )2

n!-----------------

λ µ⁄( )s

s!----------------- 1

1 λ sµ⁄( )–---------------------------

+n 0=

s 1–

∑=

Page 32: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 32 of 116

cost). The following figure illustrates the sensitivity of Po and Lq as the number of servers is increased.

Note that four x-ray machines are needed to provide the desired average waiting time, Wq.

Page 33: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 33 of 116

Sensitivity of Po with S

Note the quick variations in Po as S increases.

3 4 5 6 7 80

0.01

0.02

0.03

0.04

0.05

0.06

S - No. of Servers

Po

- Id

le P

roba

bilit

y

TextEnd

Page 34: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 34 of 116

Sensitivity of L with S

3 4 5 6 7 80

5

10

15

20

25

S - No. of Servers

L -

Cus

tom

ers

in S

yste

m

TextEnd

Page 35: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 35 of 116

Sensitivity of Lq with S

3 4 5 6 7 80

5

10

15

20

25

S - No. of Servers

Lq -

Cus

tom

ers

in Q

ueue

TextEnd

Page 36: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 36 of 116

Sensitivity of Wq with S

This analysis demonstrates that 4 x-ray machines are needed to satisfy the 2-minute operational design constraint.

3 4 5 6 7 80

0.02

0.04

0.06

0.08

0.1

0.12

S - No. of Servers

Wq

- W

aitin

g T

ime

in th

e Q

ueue

(hr

)

TextEnd

Waiting time constraint

Page 37: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 37 of 116

Sensitivity of W with S

Note how fast the waiting time function decreases with S

3 4 5 6 7 80

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

S - No. of Servers

W -

Tim

e in

the

Sys

tem

(hr

)

TextEnd

Page 38: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 38 of 116

Security Check Point Results

c) The expected number of passengers in the system is (with S = 4),

L = 4.04 passengers in the system on the average design year day.

d) The utilization of the improved facility (i.e., four x-ray machines) is

ρ = λ / (sµ) = 230/ (4*80) = 0.72

LρP0

λµ---

s

s! 1 ρ–( )2----------------------- λ

µ---+=

Page 39: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 39 of 116

e) The probability that more than four passengers wait for service is just the probability that more than eight passengers are in the queueing system, since four are being served and more than four wait.

where,

if

if

P n 8>( ) 1 Pn

n 0=

8

∑–=

Pn

λ µ⁄( )n

n!-----------------P0= n s≤

Pn

λ µ⁄( )n

s!sn s–-----------------P0= n s>

Page 40: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 40 of 116

from where, Pn > 8 is 0.0879.

Note that this probability is low and therefore the facility seems properly designed to handle the majority of the expected traffic within the two-minute waiting time constraint.

Page 41: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 41 of 116

PDF of Customers in System (L)

The PDF below illustrates the stochastic process resulting from poisson arrivals and neg. exponential service times

0 2 4 6 8 10 12 14 16 18 200

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Number of entities

Pro

babi

lity

TextEnd

Page 42: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 42 of 116

Matlab Computer Code

% Multi-server queue equations with infinite population

% Sc = Number of servers% Lambda = arrival rate% Mu = Service rate per server% Rho = utilization factor% Po = Idle probability% L = Expected no of entities in the system% Lq = Expected no of entities in the queue% nlast - last probability to be computed

% Initial conditions

S=5; Lambda=3; Mu = 4/3;

Page 43: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 43 of 116

nlast = 10; % last probability value computed Rho=Lambda/(S*Mu);

% Find Po Po_inverse=0; sum_den=0;

for i=0:S-1 % for the first term in the denominator (den_1) den_1=(Lambda/Mu)^i/fct(i); sum_den=sum_den+den_1; end

den_2=(Lambda/Mu)^S/(fct(S)*(1-Rho)); % for the second part of den (den_2) Po_inverse=sum_den+den_2; Po=1/Po_inverse

Page 44: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 44 of 116

% Find probabilities (Pn)

Pn(1) = Po; % Initializes the first element of Pn column vector to be Pon(1) = 0; % Vector to keep track of number of entities in system

% loop to compute probabilities of n entities in the system

for j=1:1:nlast n(j+1) = j; if (j) <= S Pn(j+1) = (Lambda/Mu)^j/fct(j) * Po; else Pn(j+1) = (Lambda/Mu)^j/(fct(S) * Sc^(j-S)) * Po; endend

% Queue measures of effectiveness

Lq=(Lambda/Mu)^S*Rho*Po/(fct(S)*(1-Rho)^2)

Page 45: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 45 of 116

L=Lq+Lambda/Mu Wq=Lq/Lambda W = L/Lambda plot(n,Pn) xlabel('Number of entities') ylabel('probability')

Page 46: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 46 of 116

A Discrete Event Simulation Model

This example illustrates how Matlab functions can be used to model an M/M/1 queuing process using an explicit discrete event simulation model

Two modeling approaches of discrete event simulation are generally implemented in large-scale airport/airspace simulations:

a) Event-scheduling simulationEstimation of state variables at times when each event occurs

b) Process or activity-based simulationDescription of processes (i.e., time-ordered sequences of events) to model activities “experienced” by each entity throughout the simulation

Page 47: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 47 of 116

Elements of a Simulation Model (Kelton et al.)

Entities: dynamic objects that are created and destroyed as the simulation moves forward in time

Attributes: characteristics of entities used to differentiate behavior in the simulation process (i.e.,transfer vs. terminating passengers)

Global Variables: provide general parameters of a simulation model (i.e., simulation stopping criteria)

Resources: elements that are occupied in the simulation by entities for a finite period of time (i.e., ticket counter occupied by a passenger)

Page 48: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 48 of 116

Elements of a Simulation Model (continuation)

Queues: representation of physical waiting spaces in the simulation model (i.e., uniqueue before a security check point)

Accumulators: variables that keep track of simulation performance measures (i.e., queue length, level of service, etc.)

Events: important milestones in the simulation process (i.e., arrivals, departures, simulation initiation and completion). Events can be:

- External (user inputs)

- Internal (the result of entity process conflicts)

Page 49: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 49 of 116

Structure of a D.E. Simulation (Law and Kelton)

Initialize Main Timing

EventsR.V. Gen .

Reportyes no

Runway andAirspace States

ArrivalsDepartures

Calls othermodules

Loop structure Trackstime

Generates

variatesrandom

Generatesstatistics

Isentity

last one?

Page 50: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 50 of 116

Sample Discrete Event Simulation

Suppose that we have four processes as shown below

Entity Arrival Time Interarrival Time Service Time

1 1.4 2.6 2.1

2 4.0 0.9 3.5

3 4.9 1.8 2.8

4 6.7 0.0 2.9

E1E2

E3

E4

Time0 1 2 3 4 5 6 7 8 9 10

Nominal Arrival Time Nominal Departure Time

Page 51: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 51 of 116

Verbal Description of Events

Assume First-In-First-Out events apply:

• Entity 1 enters the system and departs without delay

• Entity 2 enters the system and departs without delay

• Entity 3 arrives 0.9 time units after Entity 2 and is delayed 2.6 time units before service (at 7.5 time units)

• Entity 4 arrives at 6.7 time units while Entity 2 is being serviced and Entity 3 waits in the queue

• Entity 4 waits until 10.3 time units to be serviced

• Entity 3 departs at 10.3 time units

• Entity 4 departs the system at 13.2 time units

Page 52: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 52 of 116

Queue Utilization and Queue Length Interpretation

The following diagrams represent times when the system is in use and the queue length observed

Queue Utilization

Queue Length

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

L(t)

1

2

Note: In many textbooks L(t) is denoted as Q(t)

Time

Time

B(t)

4.9

6.7 7.5

10.3

Page 53: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 53 of 116

Simulation Parameters

Assume a single resource (server) provides service to these entities. Let,

be the delay for the th entity entering a system

is the number of entities processed during the

simulation time

is the time-average number of entities in the queue

is the instantaneous queue length

is a busy function such that,

Di i

NT

L

Q t( ) L t( )=

B t( )

Page 54: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 54 of 116

=

A statistic to compute the average delay of entities processed by the system is,

(1)

Similarly, the time-average number of entities in the

queue is computed by integrating over time (0,T)

B t( ) 1 if system is busy

0 if system is idle

D

Dii 1=

N

∑N

-------------------=

L t( )

Page 55: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 55 of 116

(2)

Finally, the utilization of the system can be deduced from

direct observation of the busy function, and its integral over time (0,T),

(3)

These metrics constitute the foundations on how a simulation model can be effectively used to predict levels

L L t( ) td0

T

∫ T⁄=

B t( )

ρ B t( ) td0

T

∫ T⁄=

Page 56: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 56 of 116

of service inside airport terminals and practically everywhere where a waiting line forms.

Page 57: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 57 of 116

Computations for Hand Calculation Example

Looking back at the previous example we compute the queueing parameters using equations 10-12. Use 16 time units as the simulation life-span.

time units

entities

D 0 0 2.6 3.6+ + +( ) 4⁄ 1.55= =

L L t( ) td0

16

∫ T⁄ L t( )∆t 16⁄i 1=

16

∑≈=

L 6.7 4.9–( ) 1 7.5 6.7–( )+× 2 10.3 7.5–( )+× 1×

16------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.525= =

Page 58: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 58 of 116

And the utilization factor is,

From these statistics we conclude the following,

• The use of the single server system is quite good (about 70% of the time the server is busy)

• Simulation is an intensive book keeping activity that is obviously suited to computers

• Simple formulae can be used to obtain vital statistics of the system modeled

ρ B t( ) td0

T

∫ T⁄ B t( )∆t 16⁄i 1=

16

∑ 0.706= = =

Page 59: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 59 of 116

A More Formal Simulation Process

• A more formal simulation process (other than hand calculations) is introduced here

• The example and nomenclature used here correspond to that used by Law and Kelton (1991)

• A simple single server queueing process is first explained and then an example is presented

• Results of the simulation process are compared with analytic results derived from a stochastic queueing model

Page 60: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 60 of 116

Simulation Blocks

Initialization: initializes counters (to keep statistics) and global variables

Main: controls other routines and acts as director. Performs calls to others

Timing: keeps the simulation clock up-to-date

Report: writes and plots summary statistics of the simulation model

Event: tracks and schedules events in the simulation

Generator: generates random variates needed in the simulation

Page 61: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 61 of 116

Sample Single Server Queue Simulation

INIT.m Main(Simque.m) TIMING.m

EVENT.m R.V. Gen.

REPORT.m Dec.yes no

Page 62: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 62 of 116

M/M/1 Queue Simulation

% For simulation model of a single server queue% Adapted from Law and Kelton (1991)% Programmers: H. Baik and A. Trani (1997)

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

% Input Parameters

Page 63: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 63 of 116

% mean_interarrival = mean time between arrivals% mean_service = mean service time% mean_delays_required = total no. of customers to be

processed

% area_server_status = % num_events = type of events % Q_LIMIT = maximum number of storage locations for

queue% num_custs_delayed = customers served at time t

Q_LIMIT=200;mean_interarrival=1.0;mean_service=0.5;mean_delays_required=100;area_server_status=0;

Page 64: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 64 of 116

num_events=2

INIT; % calls initialization routine

% run the simulation while more delays are still required

while(num_custs_delayed < mean_delays_required) TIMING; % determine the next event UPDATE; % update time-average statistical

accumulators

if (next_event_type==1) ARRIVE;% branch to arrival routine (function) elseif (next_event_type==2) DEPART;% branch to departure routine (function)

Page 65: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 65 of 116

endend

REPORT;% call report generator function

Page 66: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 66 of 116

INIT - Initialization Routine

function INIT

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

time=0.0; % clock server_status=0; %idle num_in_q=0; % initial queue length

Page 67: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 67 of 116

time_last_event=0.0; % time of the most recent event num_custs_delayed=0;% no. of customers delayed total_of_delays=0.0;% total delay to customersFunction INIT - Initialization Routine area_num_in_q=0.0; area_serve_status=0.0;

time_next_event(1) = time+expon(mean_interarrival) time_next_event(2) = 1.0*exp(30) %disp(['init'])

Page 68: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 68 of 116

ARRIVE - Arrival Routine

function ARRIVE

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

time_next_event(1) = time + expon(mean_interarrival); % next arrival time

%time

Page 69: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 69 of 116

%check to see whether server is busy if(server_status == 1) % server is busy num_in_q = num_in_q + 1 ; % increase the no. of

customers in queue if(num_in_q > Q_LIMIT) disp(['num_in_q = ', num2str(num_in_q)]); disp(['Overflow of the array of time_arrival at

',num2str(time)]); pause end time_arrival(num_in_q) = time; else %server is idle

Page 70: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 70 of 116

delay = 0.0; totoal_of_delays = total_of_delays + delay;

num_custs_delayed = num_custs_delayed + 1; server_status = 1;

time_next_event(2) = time + expon(mean_service); end

Page 71: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 71 of 116

DEPART - Departure Routine

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

if(num_in_q == 0) % queue is empty. Make the server idle and eliminate

the departure event from considerarion server_status = 0; %idle

Page 72: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 72 of 116

time_next_event(2) = 1.0*exp(30);

else % queue is not empty, so decrease the no. of customers in

queue num_in_q = num_in_q - 1;

delay = time - time_arrival(1); total_of_delays = total_of_delays + delay;

num_custs_delays = num_custs_delays + 1; time_next_event(2) = time + expon(mean_service); % move each customer's arrival time in queue up one

place

Page 73: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 73 of 116

for i = 1:num_in_q time_arrival(i)=time_arrival(i+1); end end

Page 74: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 74 of 116

EXPON - Estimates Neg. Exponential Random Variates

function e=EXPON(mean) u = rand(1); e = - mean * log(u);

% uses the inverse transformation method to generate negative exponential random numbers

Page 75: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 75 of 116

TIMING - Timing Routine

function TIMING

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

min_time_next_event=1.0*exp(29); next_event_type=3; % determine the event type of the next event to occur

Page 76: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 76 of 116

for i=1:num_events if(time_next_event(i)<min_time_next_event) min_time_next_event = time_next_event(i); next_event_type = i; end; end

if(next_event_type == 3) disp(['Event List Empty at Time ',num2str(time)]); end

time=min_time_next_event;

Page 77: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 77 of 116

UPDATE - Updates Queue Statistics

function UPDATE%Update area accumulated for time-average statistics

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

time_since_last_event = time - time_last_event; time_last_event = time;

Page 78: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 78 of 116

area_num_in_q = area_num_in_q + num_in_q * time_since_last_event;

area_server_status = area_server_status + server_status * time_since_last_event;

Page 79: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 79 of 116

REPORT - Report Generation Routine

function REPORT

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

Page 80: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 80 of 116

disp(['Average Delay in Queue : ',num2str(total_of_delays/num_custs_delayed),'

minutes']) ; disp(['Average number in Queue :

',num2str(area_num_in_q/time)]) disp(['Service Utilization :

',num2str(area_server_status/time)]); disp(['Time Simulation Ended : ',num2str(time)]);

Page 81: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 81 of 116

M/M/1 Simulation Example

Kansai Airport in Osaka Bay has a small port facility to serve large intermodal cargo shipments.

PortFacility

Page 82: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 82 of 116

M/M/1 Simulation Example (cont.)

Suppose that only one berth facility is currently available to serve large ships.

Initial conditions of the problem:

a) Port facility is open 24 hours per day

b) A ship arrives every 22 hours (on the average - Poisson distribution)

c) A ship is loaded/unloaded in 12 hours (average - negative exponential distribution) by a single 12-ton crane

The idea is to find the operational parameters of the facility using the M/M/1 simulation model developed.

Page 83: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 83 of 116

M/M/1 Queue Simulation Results

The following results have been obtained using the single server queue simulator

Let:

be the expected number of ships in the queue

be the expected waiting time in the queue

be the final simulation time (days) to process 500 ships

be the utilization of the service facility (i.e., crane)

Lq

W q

T final

ρ

Page 84: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 84 of 116

M/M/1 Queue Simulation Results

Performing 30 iterations of the simulation model yields the following results:

Mean = 0.6885 ships in the queue

0 5 10 15 20 25 300.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1.1

1.2

1.3

Iteration Number

Ent

ities

in Q

ueue

TextEnd

Mean

Lq

Page 85: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 85 of 116

M/M/1 Queue Simulation Results

Histogram for .

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.30

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Entities in Queue

No.

of O

bser

vatio

ns

TextEnd

Lq

Page 86: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 86 of 116

M/M/1 Queue Simulation Results

Results for waiting time in the queue, :

Mean = 15.04 hours in the queue

0 5 10 15 20 25 308

10

12

14

16

18

20

22

24

Iteration Number

Wai

ting

Tim

e in

Que

ue

TextEnd

Mean

W q

W q

Page 87: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 87 of 116

M/M/1 Queue Simulation Results

Results for waiting time in the queue, :

8 10 12 14 16 18 20 22 240

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Waiting Time in Queue

No.

of O

bser

vatio

ns

TextEnd

W q

Page 88: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 88 of 116

M/M/1 Queue Simulation Results

Results for crane utilization, :

Mean = 0.5492

0 5 10 15 20 25 300.46

0.48

0.5

0.52

0.54

0.56

0.58

0.6

0.62

Iteration Number

Sys

tem

Util

izat

ion

TextEnd

Mean

ρ

ρ

Page 89: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 89 of 116

Results for M/M/1 Queue

Histogram of crane utilization (note the central tendency)

0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.620

1

2

3

4

5

6

7

Utilization

No.

of O

bser

vatio

ns

TextEnd

Page 90: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 90 of 116

M/M/1 Queue Comparison of Results

Note: 500 replications and 30 trials (average values shown)

Parameter Simulation Results Analytic Solution

= Utilization 0.5492 0.5455

= No. of Ships 0.6885 ships 0.6545 ships

= Waiting Time 15.04 hours 15.04 hours

ρ

Lq

W q

Page 91: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 91 of 116

Model M/Normal/1 Queue

INIT.m Main(Simque.m) TIMING.m

EVENT.m R.V. Gen .

REPORT.m Dec.yes no

Normal R.Variates

Page 92: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 92 of 116

Matlab Model (M/Normal/1 Queue Simulation)

% For simulation model of a single server queue% Adapted from Law and Kelton (1991)

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

% Input Parameters

Page 93: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 93 of 116

% mean_interarrival = mean time between arrivals% mean_service = mean service time% mean_delays_required = total no. of customers to be

processed

Page 94: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 94 of 116

Matlab Model (M/Normal/1 Queue Simulation)

% area_server_status = % num_events = type of events % Q_LIMIT = maximum number of storage locations for

queue% num_custs_delayed = customers served at time t

Q_LIMIT=200;mean_interarrival=22;mean_service=12;% mean service timesstd_mean_service = 2;% standard deviation of service

timesmean_delays_required=500;area_server_status=0;

Page 95: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 95 of 116

num_events=2

INIT; % calls initialization routine

Page 96: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 96 of 116

SIMQUE_n.m File (Normal RV File)

% run the simulation while more delays are still required

while(num_custs_delayed < mean_delays_required)

TIMING; % determine the next event UPDATE; % update time-average statistical

accumulators

if (next_event_type==1) ARRIVE;% branch to arrival routine (function) elseif (next_event_type==2) DEPART_n;% branch to departure routine (new

function) endend

Page 97: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 97 of 116

REPORT_n; % call the report generator function

Page 98: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 98 of 116

Normally Distributed Random Variates

Only affects the DEPART function (called DEPART_n) here on:function DEPART_n

global Q_LIMIT mean_interarrival mean_service mean_delays_required

global next_event_type num_custs_delayed num_delays_required...

num_events num_in_q server_statusglobal area_num_in_q area_server_status

mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays ... std_interarrival dep std_mean_service

Page 99: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 99 of 116

if(num_in_q == 0) % queue is empty. so make the server idle and eliminate

the departure event from the considerarion server_status = 0; %idle time_next_event(2) = 1.0*exp(30);

else % queue is not empty, so decrement the no. of

customers in queue num_in_q = num_in_q - 1;

delay = time - time_arrival(1); total_of_delays = total_of_delays + delay;

Page 100: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 100 of 116

num_custs_delayed = num_custs_delayed + 1;

time_next_event(2) = time + normal(mean_service,std_mean_service) ;

dep (num_custs_delayed + 1) = normal(mean_service,std_mean_service);

% move each customer's arrival time in queue up one

place for i = 1:num_in_q time_arrival(i)=time_arrival(i+1); end end

Page 101: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 101 of 116

Normally Distributed Random Variates

New function to estimate normal random variatesfunction e=NORMAL(mean,std)

k = randn(1); % generates one normally distributes R.V.

e = mean + k*std; % scales k to the desired mean and standard deviation values

Page 102: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 102 of 116

Physical Interpretationf(x) f(x’)

µ = 0

σ=1

µ2 = 45

σ= 15

µ2 = 45 + x * 15

x x’

x = RANDN (1,100)

1

Page 103: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 103 of 116

M/Normal/1 Queue Simulation Results

The following results have been obtained using the single server queue simulator

Let:

= the expected number of ships in the queue

= the expected waiting time in the queue

= final simulation time (days) to process n entities

= the utilization of the service facility

Lq

W q

T final

ρ

Page 104: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 104 of 116

Queue Simulation Results

Performing 30 iterations of the new simulation file yields the following results (normally distributed service times):

Mean = 0.4782 ships in the queue

0 5 10 15 20 25 300.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Iteration Number

Ent

ities

in Q

ueue

TextEnd

Mean

Lq

Page 105: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 105 of 116

M/Normal/1 Queue Simulation

Histogram for with normally distributed service time.

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

8

Entities in Queue

No.

of O

bser

vatio

ns

TextEnd

Lq

Page 106: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 106 of 116

M/Normal/1 Queue Simulation

Results for waiting time in the queue, :

Mean = 10.45 hours in the queue

0 5 10 15 20 25 306

7

8

9

10

11

12

13

14

15

16

Iteration Number

Wai

ting

Tim

e in

Que

ue

TextEnd

Mean

W q

W q

Page 107: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 107 of 116

M/Normal/1 Queue Simulation

Waiting time in the queue ( ), with normally distributed service times (12,2 hours).

W q

6 7 8 9 10 11 12 13 14 15 160

1

2

3

4

5

6

Waiting Time in Queue

No.

of O

bser

vatio

ns

TextEnd

Page 108: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 108 of 116

M/Normal/1 Queue Simulation

Results for system utilization, :

Mean = 0.5402

0 5 10 15 20 25 30

0.46

0.48

0.5

0.52

0.54

0.56

0.58

0.6

Iteration Number

Sys

tem

Util

izat

ion

TextEnd

Mean

ρ

ρ

Page 109: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 109 of 116

M/Normal/1 Results

The following results illustrates the central tendency of the utilization

0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.60

2

4

6

8

10

12

Utilization

No.

of O

bser

vatio

ns

TextEnd

Page 110: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 110 of 116

Queue Simulation Comparison

Note: 500 replications and 30 trials (average values shown)

ParameterNeg. ExponentialDistribution(β = 12 hours)

Normally Distributed Service Times(µ=12, σ=2 hours)

= Utilization 0.5492 0.5402

= No. of Ships 0.6585 ships 0.4786 ships

= Waiting Time 15.04 hours 10.45 hours

ρ

Lq

W q

Page 111: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 111 of 116

Sensitivity of System to Demand Changes

The demand function can be changed with simple modifications to the arrival rate function (mean_interarrival). Look at Input File (simque_n.m)

Q_LIMIT=200;

mean_interarrival = 22;mean_service=12; % mean service timesstd_mean_service = 2; % standard deviation of service timesmean_delays_required=500;

Suppose mean_interarrival is increased from 13 to 36 hours. The following results illustrate the variations to delay times.

Page 112: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 112 of 116

Sensitivity to Demand ChangesD

elay

s in

Que

ue (

hour

s)

Arrival Rate (ships/day)1.80.90.3 0.6 1.2 1.5

60.0

40.0

30.0

20.0

10.0

50.0

Page 113: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 113 of 116

Sensitivity to Demand ChangesSh

ips

in Q

ueue

(sh

ips)

Arrival Rate (ships/day)

5.0

3.0

2.0

1.0

0.0

4.0

1.80.90.3 0.6 1.2 1.5

Page 114: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 114 of 116

Sample Source Code (Matlab)

% For simulation model of a single server queue

global Q_LIMIT mean_interarrival mean_service mean_delays_required global next_event_type num_custs_delayed num_delays_required... num_events num_in_q server_statusglobal area_num_in_q area_server_status mean_interarrival... mean_service time time_arrival... time_last_event time_next_event total_of_delays

% Input Parameters

% mean_interarrival = mean time between arrivals% mean_service = mean service time% mean_delays_required = total no. of customers to be processed

Page 115: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 115 of 116

Matlab Model (M/M/1 Queue Simulation)

% area_server_status = % num_events = type of events % Q_LIMIT = maximum number of storage locations for queue% num_custs_delayed = customers served at time t

Q_LIMIT=200; % queue limit in the simulationmean_interarrival=22/24;mean_service=12/24;mean_delays_required=500; % total number of vehicles simulatedarea_server_status=0;num_events=2

INIT; % calls initialization routine

% run the simulation while more delays are still required

Page 116: Drs. Trani and Rakha General Applications Introduction to ...128.173.204.63/courses/matlab/matlab_applications.pdf · Introduction to MATLAB General Applications Drs. Trani and Rakha

Virginia Polytechnic Institute and State University 116 of 116

while(num_custs_delayed < mean_delays_required) TIMING; % determine the next event UPDATE; % update time-average statistical accumulators

if (next_event_type==1) ARRIVE; % branch to arrival routine (function) elseif (next_event_type==2) DEPART; % branch to departure routine (function) endend

REPORT; % call report generator function