Chapter 2

Fundamental Simulation Concepts

 

2.1 An Example

Consider the example on page 19 on your text.

 

2.1.1 The System

What are queues?

Waiting lines

 

What is the initial state of the system?

Full of parts of parts or empty?

 

When will the simulation start?

At time 0 or some other time?

 

What is the interarrival time?

Interarrival time - time between a part’s arrival and that of the next part

 

Will parts arrive every 2 seconds (constant time), 2 minutes (constant time), or according to some statistical distribution?

 

What is the Service Time?

Service time - time required to process the part on the machine

 

Will parts be served in 2 minutes (constant time) or some statistical distribution.

 

2.1.2 Goals of the Study

When starting a study, we must determine the measurements needed to make decisions.

We could collect information such as:

  1. Total production
  2. Average waiting time in queue
  3. Maximum time waiting in queue
  4. Time-average number of parts waiting in queue
  5. Maximum number of parts that were ever waiting in queue
  6. Average an maximum cycle time
  7. Utilization

 

In the end, we can collect a lot of information in a computer simulation. In most cases, it does not cost any more to collect more information than we need so we might as well collect it. We might discover something we were not looking for.

 

When collecting data, we always have to ask:

  1. "what decision are we making with this data"
  2. "what is the cost/benefit of collecting this information"

 

2.2 Analysis Options

2.2.1 Educated guessing

We could guess on the outcome based upon past experience. We do not have data, but lots of experience.

What is dangerous about this approach?

CISCO Example

 

2.2.2 Queuing Theory

What is Queuing Theory?

Mathematical models to determine optimum solutions.

 

What are problems associated with queuing theory?

Problems with queuing theory:

  1. Data is approximated, such as estimates of the mean values
  2. Simplifying assumptions required to make the formulas work often do not hold true, such as assuming that the interarrival time and service times are exponentially distributed.
  3. Formulas are for long-run performance - not good when we need information about a short run
  4. Formulas do not capture the natural variability in the system.

 

Queuing theory can provide:

  1. First-cut approximations to get an idea of where things stand
  2. Guidance about what kinds of simulations might be appropriate at the next step of the project

 

2.2.3 Mechanistic Simulation

What is mechanistic simulation?

The individual operations (arrivals, service by the machine, etc) occur as they would occur in reality - represented on the computer. (ARENA)

 

2.3 Pieces of a Simulation Model

2.3.1 Entities

What are entities?

Entities are typically parts or people that move through the process.

 

Entities:

  1. Change status as they move through the process
  2. Affect and are affected by other entities
  3. Affect performance measures

 

Entities are dynamic - they are created, move around the process, and are disposed

 

We can have several different types of entities in a simulation at one time, such different parts to be manufactured which require different processing times and routes.

 

We can have "fake" entities in the simulation to represent things like machine failures. There is less need for this feature now that simulation languages have become more sophisticated.

 

2.3.2 Attributes

What are attributes?

Attributes are characteristics of an entity that distinguish from other entities, such as its arrival time, due date, priority or color.

 

Attributes individualize entities.

 

Attributes describe entities.

 

For each entity we must assign attributes, change them as needed and used them as part of the simulation. Thus attributes are unique to each entity.

 

2.3.3 Variables (Global)

What is a variable?

A variable (or a global variable) is a piece of information that reflects some characteristic of the process, regardless of what or how many entities are present.

 

Examples:

Number in System (user created) - number of part (entities) in the system. When a part is created, the variable increases by 1. When a part is shipped, the variable decreases by 1.

 

Status of machine (ARENA created) - provides information about the current state of a machine (busy, idle, or down).

 

Two Types:

 

Variables are not tied to any specific entity, but pertain to the entire process.

 

They are accessible to all entities and may be changed by entities.

 

2.3.4 Resources

What are resources?

Resources - people, equipment, storage space, money, knowledge, raw material

 

In simulation, resources are "seized" and "released" by entities when they are available.

 

Availability (or what percent some resource is busy) is often something we want to know as modelers.

 

Resources are often modeled as a group of identical units. For example, you might want to model agents at an airline ticket counter as a resource with 5 identical units rather than five unique individuals.

 

It is better to think of a resource as being "given" to an entity rather than being assigned to an entity since an entity could need service from several resources. For example - a part might need a machine and a person to operate the machine, which requires 2 resources.

 

Not all resources are equal.

Some operators may be more efficient than others. Some machines may be more reliable than others. Some machines may run faster than others.

 

2.3.5 Queues

What is a queue?

A queue represents a place for parts or people to wait.

 

In many cases, a machine or resource is busy and the part/person must wait until it becomes available.

 

Queues are also referred to as buffers.

 

In Arena, queues are given names just like other entities in the process.

 

Queues have often a limited capacity.

 

What happens when the queue is full?

 

2.3.6 Statistical Accumulations

Arena tracks several statistics for you such as:

And many others…

 

We may have to direct Arena to track statistics that are unique to our situation

 

2.3.7 Events

What is an event?

An event is something that happens at an instant of simulated time that might change attributes, variables, or statistical accumulators.

 

Examples:

Arrival - a new part enters the system

Departure - A part finishes its service at the machine and leaves the system

The end - The simulation stops at time = 15 minutes

 

Events cause other actions to happen which are not defined as events, such as when a part is completed at one server, another part is taken from the queue without requiring a separate event.

 

To simulate a process, ARENA uses an event calendar to keep track of events that are supposed to happen in the future.

A record of the event is kept on the calendar.  This record contains the identification of the entity, the event time, and the type of event it will be.

 

2.3.8 Simulation Clock

What is the simulation clock?

A variable that holds the current value of time in the simulation.

 

The simulation clock does not take on all values and run continuously. It lurches from one event to the next without stopping for time between events that does matter.

Why does the clock operate with "lurches"?

Nothing happens between events, so there is no need to waste "real" time looking at simulated times that do not matter.

 

The simulation clock works closely with the event calendar: at initialization and after executing every event.

 

After an event is executed, it is taken off the event calendar and the simulation clock lurches forward to the time of the next event.

 

TNOW = the ARENA defined variable the keeps track of the simulation time

 

2.3.9 Starting and Stopping

Designate when you want the simulation to stop. You can do this with a specific time or number of parts to be produced.

 

2.4 Event-Driven Hand Simulation

Step through the example in your book

 

2.5 Event and Process-Oriented Simulation

Flowchart mindset but executed in event code

 

2.6 Randomness In Simulation

When we model a process, we are trying to represent reality.

 

The real world is somewhat random. The process we are modeling does not occur the same way every time.

 

To make our model more closely resemble reality, we need to include a measure of randomness.

 

To do this, we use probability distributions from which observations are generated.

 

With the probability distribution in place, we can run the model several times to see how the process varies.

 

2.7 Overview of a Simulation Study