SIMULATION TECHNIQUES
Introduction What is digital simulation? – Design a model for a real or proposed system – Execute the model on a computer – Analyze the execution output Purpose of digital simulation – Evaluate the behavior of the system under different sets of conditions by using the models to carry out groups of experiments
Advantage of digital simulation – Cost reduction and time saving: draw inference about new systems without actually building them and evaluate changes in existing systems without actually disturbing them. – The only tool that will allow system interactions to be analyzed for complex systems. – Permits managers to visualize the operation of a new or existing system under a variety of conditions.
Objective of the course – Digital simulation modeling using SIMAN/ARENA – System Applications of digital simulation – Performance analysis of manufacturing and service systems and processes
What is a system? A collection of elements that cooperate to accomplish some stated objectives. – Examples: l Bank tellers + customer queues l Supermarket cashiers + customer queues l Hospital emergency room + patients l Machines + parts l Cities + Highways l Telephones + connection networks l Materials + handling equipment
What is a model? A collection of symbols and ideas that approximately represent the functional relationship of the elements in a system. Examples: l Queuing models: queues, servers, interarrival times, service times, distributions,... l Network models: nodes, links, traveling times, capacities,...
l Discrete simulation: State of system changes only at “discrete event” times. Examples: Customers arrive at a bank branch; parts moving in a production systems; trucks travel on a highway network; … l Continuous simulation: State of system represented by algebraic or differential equations with variables that change continuously over time. Examples: Nuclear reactions; chemical processes; ocean waves, etc. l Mixed simulation: The system has discrete elements as well as continue elements. Examples: Metal moulding and casting, ecosystems, etc. l Dynamic simulation: The system status changes over time. l Stochastic simulation: Models operate with random inputs. Types of Simulation
What simulation can do for you: – Provide estimates of the statistics of system performance – Evaluate the effects of system condition changes What simulation cannot do for you: – It cannot optimize the system’s performance; it can only describe the system behavior under the given conditions – It cannot provide accurate simulation results if the data and the model are not accurate
Modeling strategy – Start with simple models and evolve to complex ones – Focus on important issues and screen out unimportant issues
People Involved in a Simulation Project Simulation project team System design team Data/information sources Implementation team Contractors Decision maker/management Establish Responsibility Project manager Representatives from each major groups Project milestones and checkpoints
Stages of Simulation Modeling and Analysis – Identify Problem – State Objectives – Collect/Prepare Data – Formulate Model – Verify/Validate Model – Modify/Refine Model (Repeat the previous two steps if necessary) – Simulation Experiment Design – Simulation Execution – Output Analysis and Interpretation of Results – Conclusions and Implementation
A Simple Processing System Arriving Blank Parts Departing Finished Parts Machine (Server) Queue (FIFO) Part in Service 4567 General intent: Estimate expected production Waiting time in queue, queue length, proportion of time machine is busy Time units Can use different units in different places … must declare Be careful to check the units when specifying inputs Declare base time units for internal calculations, outputs Be reasonable (interpretation, roundoff error)
Model Specifics l Initially (time 0) empty and idle l Base time units: minutes l Input data (assume given for now …), in minutes: Part NumberArrival TimeInterarrival TimeService Time l Stop when 20 minutes of (simulated) time have passed
Output Performance Measures l Total production of parts over the run (P) l Average waiting time of parts in queue: l Maximum waiting time of parts in queue: N = no. of parts completing queue wait WQ i = waiting time in queue of ith part Know: WQ 1 = 0 (why?) N > 1 (why?)
Output Performance Measures l Time-average number of parts in queue: l Maximum number of parts in queue: l Average and maximum total time in system of parts (a.k.a. cycle time): Q(t) = number of parts in queue at time t TS i = time in system of part i
Output Performance Measures Output Performance Measures l Utilization of the machine (proportion of time busy) l Many others possible (information overload?)
Simulation by Hand: Setup
Simulation by Hand: t = 0.00, Initialize
Simulation by Hand: t = 0.00, Arrival of Part 1 1
Simulation by Hand: t = 1.73, Arrival of Part 2 12
Simulation by Hand: t = 2.90, Departure of Part 1 2
Simulation by Hand: t = 3.08, Arrival of Part 3 23
Simulation by Hand: t = 3.79, Arrival of Part 4 234
Simulation by Hand: t = 4.41, Arrival of Part
Simulation by Hand: t = 4.66, Departure of Part 2 345
Simulation by Hand: t = 8.05, Departure of Part 3 45
Simulation by Hand: t = 12.57, Departure of Part 4 5
Simulation by Hand: t = 17.03, Departure of Part 5
Simulation by Hand: t = 18.69, Arrival of Part 6 6
Simulation by Hand: t = 19.39, Arrival of Part 7 67
Simulation by Hand: t = 20.00, The End 67
Simulation by Hand: Finishing Up l Average waiting time in queue: l Time-average number in queue: l Utilization of drill press:
Comparing Alternatives l Usually, simulation is used for more than just a single model “configuration” l Often want to compare alternatives, select or search for the best (via some criterion) l Simple processing system: What would happen if the arrival rate were to double? –Cut interarrival times in half –Rerun the model for double-time arrivals –Make five replications
Results: Original vs. Double-Time Arrivals l Original – circles l Double-time – triangles l Replication 1 – filled in l Replications 2-5 – hollow l Note variability l Danger of making decisions based on one (first) replication l Hard to see if there are really differences l Need: Statistical analysis of simulation output data
SIMAN SIMULATION LANGUAGE – The Model Frame: Describes the logical flow of events within the system. The program should have the extension MOD (i.e., filename.MOD). Statements in the MODEL file are called BLOCKS. – The Experiment Frame: Specifies the experimental conditions for executing the model. The program should have the extension EXP (i.e., filename.EXP). Statements in the EXPERIMENT file are called ELEMENTS. A complete SIMAN model consists of a MODEL frame and an EXPERIMENT frame.
SIMAN RUNTIME PROCEDURE TEXT NAME.MOD TEXT NAME.EXP NAME.M NAME.E NAME.P NAME.OUT MODELEXPMT LINKER SIMAN
BASIC SIMAN MODELING – ENTITIES: Items that flow through a system, such as customers, parts, trucks, etc. – QUEUES: Waiting areas where the movement of entities is temporarily suspended. – RESOURCES: System components that may be allocated to entities, such as machines, workers, bank tellers, etc. – ATTRIBUTES: Represent values associated with individual entities, such as job type, arrival times, etc. – GLOBAL VARIABLES: Represent values that describe the state of the system, such as number of job in the system, number of machines available, shift number, etc.
Example 1: The single Machine Problem A single-Machine job shop processes two distinct products (or part types). Type 1 parts arrive every 10 minutes and require 4 minutes to process on the machine. Type 2 parts begin to arrive at time 5 and continue arriving every 6 minutes thereafter. Each type 2 part requires 3 minutes to process. Determine the number of parts of each type that are processed in one 8-hour shift. MachineBuffer Out Type 1 arrivals Type 2 arrivals
MODELING STRATEGY l Individual parts are entities l JobType and ProcessTime are attributes l Buffer is a queue l Machine is a resource l Time units are in minutes
FLOW LOGIC – CREATE arriving jobs – ASSIGN values to ProcessTime and JobType – QUEUE the jobs for the machine in the Buffer – SEIZE the machine – DELAY by ProcessTime – RELEASE the machine – COUNT the JobType completed – DISPOSE of the finished jobs
THE EXPERIMENT FILE: SM.EXP BEGIN; ;Single machine job shop PROJECT, Single Machine, CIS 441; ATTRIBUTES: 1, JobType: 2, ProcessTime; RESOURCES:1, Machine, capacity(1); QUEUES:1, Buffer; COUNTERS:1, Type 1 Job Count: 2, Type 2 Job Count; REPLICATE, 1, 0, 480; END;
THE SIMULATION RESULTS: SM.OUT Project: Single Machine Analyst:CIS 441 Simulation run ended at time: COUNTERS IdentifierCountLimit Type 1 Job Count48Infinite Type 2 Job Count79Infinite
Example 2: Modified SM Problem Modify the single machine model such that the time between arrivals is exponentially distributed with means of 10 minutes and 6 minutes for job types 1 and 2 respectively. The processing times are uniformly distributed between 2 and 6 minutes for part type 1 and between 1.5 and 4.5 minutes for part type 2. Collect statistics on the machine utilization, number of jobs waiting, job flowtime, and time between exits.
THE EXPERIMENT FILE: SM2.EXP BEGIN; ;Modified single machine job shop PROJECT, Single Machine, CIS 441; ATTRIBUTES: JobType: ProcessTime: ArrTime; RESOURCES:Machine; QUEUES:Buffer; COUNTERS:Type 1 Job Count: Type 2 Job Count; TALLIES:Flowtime: ExitPeriod; DSTATS:NQ(Buffer), Queue Length: NR(Machine), Machine Utilization; REPLICATE, 1, 0, 480; END;
THE SIMULATION RESULTS: SM2.OUT Project: Single Machine Analyst:CIS 441 Simulation run ended at time: TALLY VARIABLES Identifier AverageVariation Minimum Maximum Observations Flowtime ExitPeriod DISCRETE CHANGE VARIABLES Identifier Average Variation Minimum Maximum Final Value Queue Length Machine Utilization COUNTERS IdentifierCountLimit Type 1 Job Count 43Infinite Type 2 Job Count 73Infinite
HW #1 1.Reading Chapters 1 and Consider a manufacturing system comprising two different machines and a single operator who is shared between the two machines. Parts arrive with an exponentially distributed interarrival time with a mean of 3 minutes. The arriving parts are one of two types. Sixty percent of the arriving parts are type 1and are processed on machine 1. These parts require the operator for a one-minute setup operation. The remaining 40 percent are part type 2 and are processed on machine 2. These parts require the operator for a 1.5-minute setup operation. The service times (excluding the setup time) are normally distributed with a mean of 4.5 minutes and a standard deviation of 1 minute for type 1 parts and a mean of 7.5 minutes and a standard deviation of 1.5 minutes for type 2 parts. Two different priority schemes have been proposed for allocating the operator between the two types of waiting jobs. The first scheme is to assign priority to the type 1 jobs. Under this proposal, a job type 2 setup will only be performed if there is no type 1 setups waiting to be performed. The second proposed scheme is to alternate the priority between the two job types. Simulate each of these systems, using SIMAN language, for a 80-hour period; and collect statistics on the machine and operator utilization, the average number of parts waiting for each machine, and the average flow time for all parts.