Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
81 views

Simulation: Based On Law & Kelton, Simulation Modeling & Analysis, Mcgraw-Hill

Simulation models allow testing designs when systems are too complex to analyze, helps verify analysis, and produces fast results. Discrete event simulation models systems as they change states at discrete points in time via events, while continuous simulation models continuous state changes over time. Components of a discrete event simulation include the system state, simulation clock, event list, statistical counters, initialization, timing and event routines, and a main program to control the simulation flow.

Uploaded by

Ria Singh
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
81 views

Simulation: Based On Law & Kelton, Simulation Modeling & Analysis, Mcgraw-Hill

Simulation models allow testing designs when systems are too complex to analyze, helps verify analysis, and produces fast results. Discrete event simulation models systems as they change states at discrete points in time via events, while continuous simulation models continuous state changes over time. Components of a discrete event simulation include the system state, simulation clock, event list, statistical counters, initialization, timing and event routines, and a main program to control the simulation flow.

Uploaded by

Ria Singh
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Simulation

Based on Law & Kelton, Simulation Modeling & Analysis, McGraw-Hill

?Why Simulation
Test design when cannot analyze
System too complex Can analyze only for certain cases (Poisson arrivals, very large N, etc.)

Verify analysis Fast production of results

Simulation types
Static vs. dynamic Deterministic vs. stochastic Continuous vs. discrete
Simulation model system model

Discrete Event System


Discrete system
The system state can change only in a countable number of points in time! Event = an instantaneous change in state.

Example: a queueing system


System state: Number of customer At each time number of customer can only change by an integer

Continuous Simulation
Simulating the flight of a rocket in the air
System state: rocket position and weight State changes continuously in time (according to a partial differential equation)

Components of a discrete-event simulation model


System state: the collection of state variables necessary to describe the system at a particular time. Simulation clock: a variable giving the current value of simulated time Event list: a list containing the next time when each type of event will occur. Statistical counters: variables used for storing statistical information about system performance
How many moments?

Components of a discrete-event )simulation model (2


Initialization routine: a subprogram to initialize the simulation model at time 0. Timing routine: a subprogram that determines the next event from the event list and then advances the simulation clock to the time when the event is to occur. Event routine: A subprogram that updates the system state when a particular type of event occurs (one routine per event).

Components of a discrete-event )simulation model (3


Library routine: A set of subprograms used to generate random observations from probability distributions that were determined as part of the simulation model. Report generator: A subprogram that computes estimates (from the statistical counter) of the desired performance measures when simulation ends.

Components of a discrete-event )simulation model (4


Main program: a subprogram that invokes the timing routine to determine the next event and then transfers control to the corresponding event routine to update the system state. May also check for termination and invoke the report generator.

Flow control
Init Determine next event Event 1 Event n no

?Done report

Example

a single server queuing system


System to be simulated
Ai Interarrival times are I.I.D. Si Service time are I.I.D. FIFO service Work preserving

Initial state
Empty and idle First arrival after Ai time units from time 0

Termination after n customers left queue.

Performance measures
d(n) = expected average delay in queue.
Customer point of view

q(n) = expected time-average number of customers in queue.


System point of view Note: average over time which is continuous!! u(n) = proportion of time server is busy

.No. of customers in queue


(Q(t 4
3 2 1 0

.No. of customers in queue


(Q(t 4
3 2 1 0

)Performance measures (2
Averages are not always enough. Register max/min values. Register the entire pdf
histograms

Initialization
Set simulation time to 0. Set initial state:
Server idle Queue empty Last event time

Init event list


Generate 1st arrival

Zero stat counters


Total delay and number delayed Area under Q(t) and B(t).

1st Event: customer arrival


After init finished the arrival event is selected and time is advanced to this event Change server from idle to busy Add 0 to total delay, increment No of delayed. Generate two events:
This customer departure Next arrival (generate as you go)

Add 0 to the area under Q(t). Add 0 to the area under B(t).

2nd Event: customer arrival


Arrival event is selected and time is advanced to this event Server busy => put customer in queue with arrival time Set No. in queue to 1. Generate next-arrival events (dont mess with dep.) Add 0 to the area under Q(t). Add (t2-t1) to the area under B(t).

Remarks
While handling an event time is standing But, order of operation is still important:
First update area under Q(t) then update No. in queue

Two events at the same time


Order may change simulation result!

Determining Events
In complex systems events sequence may not be trivial. Use of event graph to aim us is designing the events

Event Graph
States are bulbs, connected with arrows Bold arrow: event may occur after nonzero time. Thin arrow: event may occur immediately.

arrival

-depar ture

Alternative Event Graph


arrival Enter service -depar ture

This design is correct as well! One more event => more complexity Simplification rule:
If an event node has incoming arcs that are all thin and smooth, it can be eliminated.

A strongly connected component that has no incoming arcs from other nodes must be initialized.

Take care
GIGO = garbage in garbage out
Realistic scenarios (arrival process, service time) Full cover of system behavior

Statistical confidence What to model


Not enough details => hurts accuracy Too many details => slows simulation

Attempt to verify correctness


Simulate cases you can analyze

Random Generator
Make sure you can regenerate your random sequence, or debugging is hell. For long simulations, use 32 bit pseudo random generator. 16 bit is too short!

Statistical Confidence
Better a few short runs than one long one. However, make sure run time is long enough to make end conditions negligible. Given a set of IID random variables we can calculate the confidence interval.

Confidence Interval
X1, X2, Xn are IID random variables with finite mean and finite variance 2>0.
Z n = ( X (n ) )

/n
2

Fn(z)=P(Zn z) is Dist. Func. of Zn

By central limit theorem Fn(z)(z) (the std. Normal r.v.) For sufficiently large n, approx. 100(1-) percent confidence interval for is given by
X ( n ) z1 / 2 S 2 ( n ) / n

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5-

:Area -1

3-

z1 / 2

z1 / 2

Confidence Interval for Small n


For small number of observations, we need to correct the coefficient of the interval width

X ( n ) tn 1,1 / 2 S ( n ) / n
2

The smaller n the larger tn-1,1-/2 is. tn-1,1-/2 is taken from a table.

Confidence Interval
In general all plots has to have a confidence interval on every mark Exception: high confidence (mark size)

A good pseudo random generator


float myrand() { b32 = (314159269*b32 + 453860245); if (b32<0) b32 = -b32; return(0.00000000046566128730 * b32); }

Generating Non-Uniform Distributions


F(x), the PDF, of any distribution is a function to [0,1], => use the inverse Since U is U(0,1) and transform , F(x) 1 0 Generate U~U(0,1) P ( U y ) = y Return X=F-1(U) P(Xx) = P(F-1(U) x)=P(U F(x))=F(x)

Generating the Exponential distribution


1 e x / F ( x) = 0 if x 0 otherwise

F 1 (u ) = ln(1 u )
Note we can use - ln(u).

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0

20

40

60

80

100

120

140

160

180

200

Simulating complex systems


Systems often have many identical components
A queueing system with multiple queues A switch with multiple ports running a distributed algorithm

Must keep state for each component


Array of structures in C, multiple instances of the basic object (C++)

Keep the connectivity (when applicable)

Wet Exercise No. 1


Assume a 100MHz output port. The port is fed from four input ports each with its own queue. For this exercise we neglect all other traffic. Packets arrive at the input ports with inter packet space that is Exponentially distributed with parameter (such that the total load is 20:20:120 percent). Packet length is distributed according to Internet mix. Scheduling between Qs: smooth deficit round robin, quota=3000. Every 250mS we send two back-to-back packets to measure the link capacity e.g., according to the method in
http://www.cc.gatech.edu/fac/Constantinos.Dovrolis/Papers/ton_dispersion.pdf

Run each simulation for 25 Sec.


Hand-ins:
Code transcript Histogram of the one-way inter packet delay for the packet pairs. Plot a graph of the capacity estimation as a function of the load and measurement packet size (use 3-5 sizes).

Remarks
Code has to work anywhere (not just at home), especially in TAU. Make it portable. Oral exams through the semester. Send code to shavitt@eng.tau.ac.il
Specify development env. (Unix/Visual C/..) One tar/zip file with makefile etc. Header: EX1 PCN: stu-name

You might also like