simulation implementation
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 PresentationTRANSCRIPT
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