Simulation Implementation

Preview:

DESCRIPTION

Simulation Implementation. Using high-level languages. Implementation of a Single- Server Queuing System. Two Main Entities SERVER: Busy= 0/1 QUEUE: Qsize= # Two Critical Events – for customers Arrival Complete Service (Depart) How do these entities interact? Initialization? - PowerPoint PPT Presentation

Citation preview

1

Simulation Implementation

Using high-level languages

2

Implementation of a Single- Server Queuing System

Two Main EntitiesSERVER: Busy= 0/1QUEUE: Qsize= #

Two Critical Events – for customersArrivalComplete Service (Depart)

How do these entities interact?Initialization?How are each of the variables affected?How should simulation terminate?

3

Snapshot or System Image

State of the system at a given time

State variablesQueue

Future Events List (FEL)

4

Generating Future Events

Bootstrapping: a method for generating an arrival stream on an “as you go” basis

As opposed to generating all events at oncea.k.a. on-the-fly

5

Generating Future EventsProcess1. Generate initial arrival; when it is

removed from FEL generate new interarrival time - add to clock for arrival time- place next arrival on FEL

2. When item is placed in service, generate service time - add to clock – place completion event on FEL

6

DATA StructuresFuture Events List (FEL)Queue (1 or more)What information is required for each one?What information is not required but might be convenient?When and how are insertions & deletions made?When are various units of information generated (calculated)?

7

QueueStandard FIFO

Customer identificationTime entered queue

Arrival timeType of service being requested (if more than one)

8

Future Events List

Array implementationEach row represents a specific eventCustomer ID (identification number)

Time of occurrenceSearch for smallest time to get the “next event”

9

Future Events List

Linked List ordered by time of occurrence

Event TypeTime of OccurrenceIdentification of customer

10

Generating Arrivals Initialize at a fixed time or time zeroOne for each type of arrival Subsequent arrivals are generated as arrival is removedRemove arrival- generate IAT- add to current time (clock) - put on FELAt any time, there should only be one arrival of any given type

11

Generating Departures Complete Service

Generated when customer enters the service that will cause the departureNot necessarily upon arrival, not if enter queue, only when enter serviceEnter service (from queue or from arrival) - generate service time - add to current time (clock) - put on FEL

12

Generating Events

Terminate EventOnly one: placed on FEL at initialization

Snapshot Event (Status Report)Initialize 1st oneRemove from FEL- add time unit - return to FEL

13

What? Me Simulate?

Paper by Dr. Halverson

14

Generation of Events

Initialization of FELOne arrival (of each type)SnapshotStop event

Generation of ArrivalWhen removed from FEL, generate next arrival

15

MAINInitialize FEL, statistical variables, clockRemove next-event from FELWhile not stop-event

Clock = next-event.timeCase next-event of

Arrival: produce next arrival call ARRIVE

Departure: call DEPARTSnapshop: call SNAPSHOT

Remove next-event from FEL

Stop-simulation: call STATS; call OUTPUT

16

ARRIVE

If server_status = busyThen call ENTER-QUEUEElse call ENTER-SERVICE

17

DEPART

If queue = emptyThen server_status= freeElse call

REMOVE-FROM-QUEUE

18

ENTER-SERVICE

server_status = busyGenerate departure eventUpdate service stats

19

ENTER-QUEUE

Add customer to queueUpdate queue statistics

20

REMOVE-FROM-QUEUE

Update queue and statisticsCall ENTER-SERVICE

21

STATS

Compute final averages, totals, etc.

IAT, Service time, UtilizationQueue length, max, min, averageNumber arrivals, departuresWait time, Time in system

SNAPSHOT

Generate next Snapshot event, place in FELPrint State variablesPrint QueuePrint FEL

22

23

OUTPUT

Print results

PROJECT #1

Must follow the guidelines presented in class for the form of your program. Must use object oriented approachPrint out of Code due in 1 week

24

Recommended