Simulation Software 1



Similar documents
Chapter 3 Simulation Software. Simulation Modeling and Analysis Chapter 3 Simulation Software Slide 1 of 13

Arena Tutorial 1. Installation STUDENT 2. Overall Features of Arena

1: B asic S imu lati on Modeling

INTRODUCTION TO MODELING AND SIMULATION. Anu Maria

Discrete-Event Simulation

Chapter 8 Detailed Modeling

HSR HOCHSCHULE FÜR TECHNIK RA PPERSW I L

Jump-Start Tutorial For ProcessModel

Simulation Software: Practical guidelines for approaching the selection process

System Simulation - Modeling and Analysis

KNOWLEDGE-BASED MODELING OF DISCRETE-EVENT SIMULATION SYSTEMS. Henk de Swaan Arons

Arena 9.0 Basic Modules based on Arena Online Help

AS-D1 SIMULATION: A KEY TO CALL CENTER MANAGEMENT. Rupesh Chokshi Project Manager

Systems Modelling and Simulation (Lab session 3)

THE EXTEND SIMULATION ENVIRONMENT. David Krahl. Imagine That, Inc Via Del Oro, Suite 230 San Jose, CA 95119, U.S.A.

CHAPTER 3 CALL CENTER QUEUING MODEL WITH LOGNORMAL SERVICE TIME DISTRIBUTION

Introduction. Continue to Step 1: Creating a Process Simulator Model. Goal: 40 units/week of new component. Process Simulator Tutorial

Load Balancing and Switch Scheduling

Network Design Performance Evaluation, and Simulation #6

SYSTEMS ANALYSIS AND MODELING OF INTEGRATED WORLD SYSTEMS - Vol. I - Simulation Software - Yu. I. Brodsky

Waiting Times Chapter 7

HSR HOCHSCHULE FÜR TECHNIK RA PPERSW I L

Chapter 2. Simulation Examples 2.1. Prof. Dr. Mesut Güneş Ch. 2 Simulation Examples

I. M. Ibrahim Faculty of Computer and Mathematical Sciences Universiti Teknologi MARA Seri Iskandar, Perak MALAYSIA

Modeling Stochastic Inventory Policy with Simulation

A CRITICAL EVALUATION AND COMPARISON OF FOUR MANUFACTURING SIMULATION SOFTWARES

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

Stage 5 Information and Software Technology

Modeling Basic Operations and Inputs

The problem with waiting time

Justifying Simulation. Why use simulation? Accurate Depiction of Reality. Insightful system evaluations

Chapter 3 General Principles in Simulation

I/O Management. General Computer Architecture. Goals for I/O. Levels of I/O. Naming. I/O Management. COMP755 Advanced Operating Systems 1

Malay A. Dalal Madhav Erraguntla Perakath Benjamin. Knowledge Based Systems, Inc. (KBSI) College Station, TX 77840, U.S.A.

Simulation Tools Evaluation using Theoretical Manufacturing Model

Simulation of DNS(Domain Name System) Using SimLib

There are a number of factors that increase the risk of performance problems in complex computer and software systems, such as e-commerce systems.

AUTOMATIC CREATION OF SIMULATION MODELS FOR FLOW ASSEMBLY LINES

Axiomatic design of software systems

STATISTICAL DATA ANALYSIS COURSE VIA THE MATLAB WEB SERVER

TEACHING SIMULATION WITH SPREADSHEETS

Cisco Unified CallConnector Operator

Quantitative Analysis of Cloud-based Streaming Services

Computer Science, Informatik 4 Communication and Distributed Systems. Simulation. Discrete-Event System Simulation. Dr.

A Comparison of Dynamic Load Balancing Algorithms

Delivery Fleet Optimization with GIS Functionality Webinar

Supplement to Call Centers with Delay Information: Models and Insights

2WB05 Simulation Lecture 8: Generating random variables

Stochastic Processes and Queueing Theory used in Cloud Computer Performance Simulations

Modeling Detailed Operations

- 1 - intelligence. showing the layout, and products moving around on the screen during simulation

IST 301. Class Exercise: Simulating Business Processes

Computer Literacy. Hardware & Software Classification

LECTURE - 1 INTRODUCTION TO QUEUING SYSTEM

Basic Queuing Relationships

MEDMODEL - HEALTHCARE SIMULATION SOFTWARE. Steve H. Denney

File System & Device Drive. Overview of Mass Storage Structure. Moving head Disk Mechanism. HDD Pictures 11/13/2014. CS341: Operating System

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

NEW MODELS FOR PRODUCTION SIMULATION AND VALIDATION USING ARENA SOFTWARE

SIMULATION SOFTWARE AND NUMERICAL ISSUES. Alexander L. Pugh Massachusetts Institute of Technology, Cambridge, USA

TAYLOR II MANUFACTURING SIMULATION SOFTWARE

QoS-Aware Storage Virtualization for Cloud File Systems. Christoph Kleineweber (Speaker) Alexander Reinefeld Thorsten Schütt. Zuse Institute Berlin

IC 1101 Basic Electronic Practice for Electronics and Information Engineering

Remote Desktop Services

Why Taking This Course? Course Introduction, Descriptive Statistics and Data Visualization. Learning Goals. GENOME 560, Spring 2012

Process simulation. Enn Õunapuu

UPSentry Smart User s Manual. Shutdown Management Software. for Mac OS X 10.2

Report Paper: MatLab/Database Connectivity

Chapter 11 I/O Management and Disk Scheduling

PCHS ALGEBRA PLACEMENT TEST

User s Guide. Publication ARENA-UM001B-EN-P - October 2005 Supercedes Publication ARENA-UM001A-EN-P

Citrix EdgeSight for Load Testing User s Guide. Citrx EdgeSight for Load Testing 2.7

USING OPNET TO SIMULATE THE COMPUTER SYSTEM THAT GIVES SUPPORT TO AN ON-LINE UNIVERSITY INTRANET

Appendix 2.1 Tabular and Graphical Methods Using Excel

Critical Path Analysis & PERT Charts (taken from

DISCRETE EVENT SIMULATION COURSE INSTRUCTOR DR. J. BOOKBINDER PROJECT REPORT. Simulation Study of an Inbound Call Center SACHIN JAYASWAL

Proposed Pricing Model for Cloud Computing

Veri cation and Validation of Simulation Models

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Smart Queue Scheduling for QoS Spring 2001 Final Report

File Manager base component

How To Balance In A Distributed System

Discrete-Event Simulation

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Minimize Wait Time and Improve the Waiting Experience

2 Simulation Examples

Transcription:

Simulation Software 1

Introduction The features that should be programmed in simulation are: Generating random numbers from the uniform distribution Generating random variates from any distribution Advancing simulation time Determining the next event and passing control to the appropriate block of code Adding records to, or deleting records from, a list Collecting output statistics and reporting them Detecting error conditions These common features are programmed using general-purpose languages like FORTRAN, C or C++ to develop simulation packages. 2

How to simulate a system with a computer code? Planning the study Description of the system Definitions of the performance measures Algorithm Flowchart: Process in the system, collection of statistics to estimate the performance measures, reporting Algorithm that corresponds to the flowchart Computer code (Matlab, Java, ) Data structures (sequential vs linked allocation: in book) Random number generation Coding the algorithm

Simulating a Multi-Teller Bank The bank opens its doors at 9 A.M. and closes its doors at 5 P.M., but operates until all customers still in the bank are served. Customer interarrival times are IID and exponential with mean 1 minute and services are IID and exponential with mean 4.5 minutes. Each teller has a separate queue. An arriving customer joins the shortest queue, choosing the leftmost shortest queue if there is a tie. Let n i be the number of customers in front of teller i. If the completion of service at teller i causes n j > n i + 1 for some other teller j, then the customer from the tail of queue j jockeys to the tail of queue i. If there are two or more such customers, the one from the closest leftmost queue joins.

Multiteller Bank with Jockeying 5

Events and state transitions 6

Events and state transitions: arrival to a non-empty system 7

Events and state transitions: arrival to an empty system 8

Events and state transitions: departure from a non-empty system, followed by jockeying 9

Performance measures Expected number in each queue Expected waiting time of a customer Expected utilization of each server 10

Flowchart Events? a separate flowchart for each event Customer arrival Customer departure Jockeying How to combine them? main flowchart 11

Arrival Flowchart Function arrive Schedule the next arrival event Yes Set a delay of 0 for this customer Is a teller idle? No Find the number of the leftmost shortest queue (shortest_q) Make the teller busy Schedule the departure of this customer Place the customer at the end of queue number shortest_q i.e., increase the # in the queue by 1 Record the arrival time of this customer Return

Departure Flowchart Yes Function depart Is the queue for this teller empty? No Make this teller idle Remove the first customer from this queue Compute this customer s delay and gather statistics Schedule the departure event for this customer Call function Jockey Return

Jockeying Flowchart Remove this customer from the tail of his or her current queue Yes Function jockey Is there a customer to jockey? No Yes Is the teller who just completed service now busy? No Compute this customer s delay and gather statistics Place the jockeying customer at the tail of the queue of the teller who just completed service Make this teller busy Schedule the departure event for the jockeying customer Return

Flowchart Combining Departure and Jockeying Yes Function depart Is the queue for this teller empty? No Yes Is there a customer to jockey? No Remove the first customer from this queue Compute this customer s delay and gather statistics Remove this customer from the tail of his or her current queue Compute this customer s delay and gather statistics Make this teller busy Schedule the departure event for the jockeying customer Make this teller idle Yes Place the jockeying customer at the tail of this queue Schedule the departure event for this customer Is there a customer to jockey? No Return

Main flowchart Start Initialization Yes Is current_time < finish_time No Find the next event Update current_time: current_time+time_till_next Report Call the function corresponding to the event Stop

Common mistakes in the flowcharts Schedule next departure only if you make the server busy with the next customer. Collect the statistics: How many customers were waiting between the previous event and the departure now? The waiting time of the customer who just started service? 17

How to think to draw a flowchart: Process Departure function is called, when the minimum of the event times (in this case, time-to-departure and time-toarrival) corresponds to a departure. So we know that a customer is leaving the system, which means that the server serving that customer is now idle and has to look for a customer if there is any in the system. Is there any customer to serve for this server? Check: The server s queue Other queues Once the server s state is determined, check for jockeying 18

How to think to draw a flowchart: Process Which event will happen next? Events: Arrival Potentially departure from queue i, i=1,2,,5 End of simulation 19

How to think to draw a flowchart: Information gathering What do you need to know about the queues? The number of customers in each queue: State variable: (n 1 (t),n 2 (t),..n 5 (t)), where n i (t) denotes the total number of customers in queue i (including the customer in service). Server state? What do we need to know about customers? For each customer: The queue that he/she is waiting for (denote by cust_queue) His/her position in the cust_queue His/her arrival time 20

How to modify the states? Let (n 1 (t),n 2 (t),..n 5 (t)) be our state variable where n i (t) denotes the total number of customers in queue i (including the customer in service). Arrival event: If there is at least one n i (t - ) =0. Let j be the smallest index of the queue that is empty, then n j (t)=n j (t - )+1 Else Findargmin j ((n 1 (t),n 2 (t),..n 5 (t)) Let j be the smallest index of the queue has the smallest number of customers, then n j (t)=n j (t - )+1 21

How to gather statistics Define the variables: Cum_delay Cum_queue Cum_busy At each event epoch, update these variables 22

How to think to draw a flowchart: Information gathering For example: Cum_queue Inter-arrival times: A 1 = 0.4, A 2 = 1.2, A 3 = 0.5, A 4 = 1.7, A 5 = 0.2, A 6 = 1.6, A 7 = 0.2, A 8 = 1.4, A 9 = 1.9 Processing times: S 1 = 2.0, S 2 = 0.7, S 3 = 0.4, S 4 = 1.1, S 5 = 3.7, S 6 = 0.6 At each event epoch, update these variables t Events Next Event 0 {I 1 } I 1 (0.4) 0 0 N 1 (t) Cum_queue 1 0.4 {I 2, C 1 } I 2 (1.6) 1 0+0 0.4=0 1.6 {I 3, C 1, C 2 } I 3 (2.1) 1 0+0*(1.6-0.4)=0 2.1 {I 3, C 1, C 2, C 3 } C2 (2.3) 1 0+1*(2.1-1.6)=0.5 t 0 N ( d 1 ) 23

Output Report for Multite ller Bank 24

Output Report for Multiteller Bank 25

Comparison of Simulation Packages with Programming Languages Advantages of simulation packages They automatically provide most of the features, requiring less programming time and cost. They provide a natural framework for simulation modeling. Models are easier to modify and maintain. They provide better error detection because potential errors are checked for automatically. 26

Comparison of Simulation Packages with Programming Languages Advantages of general purpose languages Most modelers already know a language, but this is often not the case with a simulation package. A simulation model efficiently written in a language may require less execution time. Programming languages may allow greater programming flexibility. Software cost is generally lower, but total project cost may not be. 27

Classification of Simulation Software Earlier times: A combination of general purpose language and simulation concepts such as Simscript, Siman, or SLAM Recently: Simulation software packages Easy-to-use User friendly graphical model building approach involving use of modules and icons selected by the user on screen Entities represented by icons with a wide range of animation capabilities. 28

Classification of Simulation Software General-purpose versus application-oriented simulation packages A general-purpose simulation package can be used for any application, but might have special features for certain ones (like manufacturing, communications, or business process reengineering). An application-oriented simulation package is designed to be used for a certain class of application (like manufacturing, healthcare, or call centers). 29

Classification of Simulation Software Modeling approach Event-scheduling approach is based on simulating over time by executing the events selected from the event list in increasing order of their time. Process approach is based on simulating the time-ordered sequence of processes experienced by a single entity as it flows through the system. 30

Process Approach 31

Prototype customerprocess routine for a singleserver queueing system 32

Common Modeling Elements Simulation packages typically include entities, attributes, resources and queues as part of their modeling framework. 33

Desirable Software Features 1. General capabilities Modeling flexibility, Ease of use, Hierarchical modeling, Debugging aids, Fast model execution speed, etc. 2. Hardware and software requirement Computer platforms (PC s, UNIX workstations, Apple s), RAM requirement, Operating system requirement (Windows, UNIX, Mac OS) 3. Animation and dynamic graphics Concurrent and post-processed animation, Vector based and pixel based graphics, Two and three dimensional animation, Dynamic graphics and statistics 34

Desirable Software Features 4. Statistical capabilities Good random number generation, Theoretical discrete and continuous distributions, Empirical distributions, Independent replications or runs, Performance estimation, Confidence interval determination, Warmup period, Optimization via simulation 5. Customer support and documentation Public and customized training Technical support Good documentation 6. Output reports and graphics Standart and customized reports Descriptive statistics (histograms, time plots, bar chart, pie chart, etc.) 35

General-Purpose Simulation Packages Arena This is the package we will be using in this course. Modeling is done using modules arranged into a number of templates: Basic Process template has modules used in many models for modeling arrivals (create), services (process) and departures (dispose). Advanced Process template contains modules to perform very specific logical functions such as choosing a queue when several are available or coordinating the advancement of multiple entities in different areas Advanced Transfer template contains modules (like conveyors and transporters) that are used to describe the transfer of entities from one part of the system to another. 36

Arena A model is constructed by dragging and dropping modules into the model window, connecting them to indicate the flow of entities through the simulated system, and then detailing the modules using dialog boxes of Arena s built-in spreadsheet. 37

Arena 38

Arena 39

Arena 40

Arena 41

Arena 42

Other General-Purpose Simulation Packages Extend AweSim GPSS/H Micro Saint MODSIM III SES/workbench SIMPLE++ SIMUL8 SLX Taylor Enterprise Dynamics 43

Application-Oriented Simulation Packages Manufacturing: AutoMod, AutoSched AP, Extend + Manufacturing, Arena Packaging Edition, ProModel, QUEST, Taylor Enterprise Dynamics, WITNESS Communication Networks: COMNET, IT DecisionGuru, OPNET Modeler Process Reengineering and Services: Arena Business Edition, Extend + BPR, ProcessModel, ServiceModel, SIMPROCESS Heath Care: MedModel Call Centers: Arena Call Center Edition Animation: Proof Animation 44