7 - Model Building
7 - Model Building
C H A P T E R
7 MODEL BUILDING
“Every theory [model] should be stated [built] as simply as possible, but not
simpler.”
—Albert Einstein
7.1 Introduction
In this chapter we look at how to translate a conceptual model of a system into a
simulation model. The focus is on elements common to both manufacturing and
service systems such as entity flow and resource allocation. Modeling issues
more specific to either manufacturing or service systems will be covered in later
chapters.
Modeling is more than knowing how to use a simulation software tool.
Learning to use modern, easy-to-use software is one of the least difficult aspects
of modeling. Indeed, current simulation software makes poor and inaccurate mod-
els easier to create than ever before. Unfortunately, software cannot make deci-
sions about how the elements of a particular system operate and how they should
interact with each other. This is the role of the modeler.
Modeling is considered an art or craft as much as a science. Knowing the
theory behind simulation and understanding the statistical issues are the science
part. But knowing how to effectively and efficiently represent a system using a
simulation tool is the artistic part of simulation. It takes a special knack to be able
to look at a system in the abstract and then creatively construct a representative
logical model using a simulation tool. If three different people were to model the
same system, chances are three different modeling approaches would be taken.
Modelers tend to use the techniques with which they are most familiar. So the best
way to develop good modeling skills is to look at lots of good examples and, most
of all, practice, practice, practice! Skilled simulation analysts are able to quickly
translate a process into a simulation model and begin conducting experiments.
171
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
terms of the same structural and operational elements that were described in
Chapter 6. This is essentially how models are defined using ProModel.
FIGURE 7.1
Relationship between
model complexity and
model utility (also
known as the Laffer
Complexity
curve).
Optimum level of
model complexity
Utility
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
7.3.1 Entities
Entities are the objects processed in the model that represent the inputs and out-
puts of the system. Entities in a system may have special characteristics such as
speed, size, condition, and so on. Entities follow one or more different routings in
a system and have processes performed on them. They may arrive from outside
the system or be created within the system. Usually, entities exit the system after
visiting a defined sequence of locations.
Simulation models often make extensive use of entity attributes. For exam-
ple, an entity may have an attribute called Condition that may have a value of 1
for defective or 0 for nondefective. The value of this attribute may determine
where the entity gets routed in the system. Attributes are also frequently used to
gather information during the course of the simulation. For example, a modeler
may define an attribute called ValueAddedTime to track the amount of value-
added time an entity spends in the system.
The statistics of interest that are generally collected for entities include time in
the system (flow time), quantity processed (output), value-added time, time spent
waiting to be serviced, and the average number of entities in the system.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
Entities to Include
When deciding what entities to include in a model, it is best to look at every kind
of entity that has a bearing on the problem being addressed. For example, if a
component part is assembled to a base item at an assembly station, and the station
is always stocked with the component part, it is probably unnecessary to model
the component part. In this case, what is essential to simulate is just the time delay
to perform the assembly. If, however, the component part may not always be
available due to delays, then it might be necessary to simulate the flow of compo-
nent parts as well as the base items. The rule is that if you can adequately capture
the dynamics of the system without including the entity, don’t include it.
Entity Aggregating
It is not uncommon for some manufacturing systems to have hundreds of part
types or for a service system to have hundreds of different customer types. Mod-
eling each one of these entity types individually would be a painstaking task that
would yield little, if any, benefit. A better approach is to treat entity types in the
aggregate whenever possible (see Figure 7.2). This works especially well when all
entities have the same processing sequence. Even if a slight difference in process-
ing exists, it often can be handled through use of attributes or by using probabili-
ties. If statistics by entity type are not required and differences in treatment can be
defined using attributes or probabilities, it makes sense to aggregate entity types
into a single generic entity and perhaps call it part or customer.
Entity Resolution
Each individual item or person in the system need not always be represented by a
corresponding model entity. Sometimes a group of items or people can be repre-
sented by a single entity (see Figure 7.3). For example, a single entity might be
used to represent a batch of parts processed as a single unit or a party of people
eating together in a restaurant. If a group of entities is processed as a group and
moved as a group, there is no need to model them individually. Activity times or
statistics that are a function of the size of the group can be handled using an
attribute that keeps track of the items represented by the single entity.
Type A
Type B
Type X
Type C
9 entities 1 entity
7.3.2 Locations
Locations are places in the system that entities visit for processing, waiting, or de-
cision making. A location might be a treatment room, workstation, check-in point,
queue, or storage area. Locations have a holding capacity and may have certain
times that they are available. They may also have special input and output such as
input based on highest priority or output based on first-in, first out (FIFO).
In simulation, we are often interested in the average contents of a location
such as the average number of customers in a queue or the average number of
parts in a storage rack. We might also be interested in how much time entities
spend at a particular location for processing. There are also location state statistics
that are of interest such as utilization, downtime, or idle time.
Locations to Include
Deciding what to model as a route location depends largely on what happens at
the location. If an entity merely passes through a location en route to another with-
out spending any time, it probably isn’t necessary to include the location. For ex-
ample, a water spray station through which parts pass without pausing probably
doesn’t need to be included in a model. In considering what to define as a location,
any point in the flow of an entity where one or more of the following actions take
place may be a candidate:
• Place where an entity is detained for a specified period of time while
undergoing an activity (such as fabrication, inspection, or cleaning).
• Place where an entity waits until some condition is satisfied (like the
availability of a resource or the accumulation of multiple entities).
• Place or point where some action takes place or logic gets executed, even
though no time is required (splitting or destroying an entity, sending a
signal, incrementing an attribute or variable).
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
Location Resolution
Depending on the level of resolution needed for the model, a location may be an
entire factory or service facility at one extreme, or individual positions on a desk or
workbench at the other. The combination of locations into a single location is done
differently depending on whether the locations are parallel or serial locations.
When combining parallel locations having identical processing times, the
resulting location should have a capacity equal to the combined capacities of the
individual locations; however, the activity time should equal that of only one of
the locations (see Figure 7.4). A situation where multiple locations might be com-
bined in this way is a parallel workstation. An example of a parallel workstation
is a work area where three machines perform the same operation. All three ma-
chines could be modeled as a single location with a capacity equal to three. Com-
bining locations can significantly reduce model size, especially when the number
of parallel units gets very large, such as a 20-station checkout area in a large shop-
ping center or a 100-seat dining area in a restaurant.
When combining serial locations, the resultant location should have a capac-
ity equal to the sum of the individual capacities and an activity time equal to the
sum of the activity times. An example of a combined serial sequence of locations
FIGURE 7.4
Example of combining
three parallel stations Capacity ⫽ 1
into a single station.
Operation 10 Operation 30
Capacity ⫽ 1
Operation 20
1 min. each
FIGURE 7.5
Example of combining three serial stations into a single station.
might be a synchronous transfer line that has multiple serial stations. All of them
could be represented as a single location with a capacity equal to the number of
stations (see Figure 7.5). Parts enter the location, spend an amount of time equal
to the sum of all the station times, and then exit the location. The behavior may
not be exactly the same as having individual stations, such as when the location
becomes blocked and up to three parts may be finished and waiting to move to
station 5. The modeler must decide if the representation is a good enough approx-
imation for the intended purpose of the simulation.
7.3.3 Resources
Resources are the agents used to process entities in the system. Resources may be
either static or dynamic depending on whether they are stationary (like a copy ma-
chine) or move about in the system (like an operator). Dynamic resources behave
much like entities in that they both move about in the system. Like entities, re-
sources may be either animate (living beings) or inanimate (a tool or machine). The
primary difference between entities and resources is that entities enter the system,
have a defined processing sequence, and, in most cases, finally leave the system.
Resources, however, usually don’t have a defined flow sequence and remain in the
system (except for off-duty times). Resources often respond to requests for their
use, whereas entities are usually the objects requiring the use of resources.
In simulation, we are interested in how resources are utilized, how many re-
sources are needed, and how entity processing is affected by resource availability.
The response time for acquiring a resource may also be of interest.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
Resources to Include
The decision as to whether a resource should be included in a model depends
largely on what impact it has on the behavior of the system. If the resource is
dedicated to a particular workstation, for example, there may be little benefit in in-
cluding it in the model since entities never have to wait for the resource to become
available before using it. You simply assign the processing time to the workstation.
If, on the other hand, the resource may not always be available (it experiences
downtime) or is a shared resource (multiple activities compete for the same
resource), it should probably be included. Once again, the consideration is how
much the resource is likely to affect system behavior.
Consumable Resources
Depending on the purpose of the simulation and degree of influence on system
behavior, it may be desirable to model consumable resources. Consumable
resources are used up during the simulation and may include
• Services such as electricity or compressed air.
• Supplies such as staples or tooling.
Consumable resources are usually modeled either as a function of time or as
a step function associated with some event such as the completion of an operation.
This can be done by defining a variable or attribute that changes value with time
or by event. A variable representing the consumption of packaging materials, for
example, might be based on the number of entities processed at a packaging
station.
Transport Resources
Transport resources are resources used to move entities within the system.
Examples of transport resources are lift trucks, elevators, cranes, buses, and air-
planes. These resources are dynamic and often are capable of carrying multiple
entities. Sometimes there are multiple pickup and drop-off points to deal with.
The transporter may even have a prescribed route it follows, similar to an entity
routing. A common example of this is a bus route.
In advanced manufacturing systems, the most complex element to model is
often the transport or material handling system. This is because of the complex
operation that is associated with these computer-controlled systems such as
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
7.3.4 Paths
Paths define the course of travel for entities and resources. Paths may be isolated,
or they may be connected to other paths to create a path network. In ProModel
simple paths are automatically created when a routing path is defined. A routing
path connecting two locations becomes the default path of travel if no explicitly
defined path or path network connects the locations.
Paths linked together to form path networks are common in manufacturing
and service systems. In manufacturing, aisles are connected to create travel ways
for lift trucks and other material handlers. An AGVS sometimes has complex path
networks that allow controlled traffic flow of the vehicles in the system. In service
systems, office complexes have hallways connecting other hallways that connect
to offices. Transportation systems use roadways, tracks, and so on that are often
interconnected.
When using path networks, there can sometimes be hundreds of routes to take
to get from one location to another. ProModel is able to automatically navigate en-
tities and resources along the shortest path sequence between two locations. Op-
tionally, you can explicitly define the path sequence to take to get from one point
to any other point in the network.
7.4.1 Routings
Routings define the sequence of flow for entities from location to location. When
entities complete their activity at a location, the routing defines where the entity
goes next and specifies the criterion for selecting from among multiple possible
locations.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
Frequently entities may be routed to more than one possible location. When
choosing from among multiple alternative locations, a rule or criterion must be
defined for making the selection. A few typical rules that might be used for
selecting the next location in a routing decision include
• Probabilistic—entities are routed to one of several locations according to
a frequency distribution.
• First available—entities go to the first available location in the order they
are listed.
• By turn—the selection rotates through the locations in the list.
• Most available capacity—entities select the location that has the most
available capacity.
• Until full—entities continue to go to a single location until it is full and
then switch to another location, where they continue to go until it is full,
and so on.
• Random—entities choose randomly from among a list of locations.
• User condition—entities choose from among a list of locations based on a
condition defined by the user.
Recirculation
Sometimes entities revisit or pass through the same location multiple times. The
best approach to modeling this situation is to use an entity attribute to keep track
of the number of passes through the location and determine the operation or rout-
ing accordingly. When using an entity attribute, the attribute is incremented either
on entry to or on exit from a location and tested before making the particular op-
eration or routing decision to see which pass the entity is currently on. Based on
the value of the attribute, a different operation or routing may be executed.
Unordered Routings
Certain systems may not require a specific sequence for visiting a set of locations
but allow activities to be performed in any order as long as they all eventually get
performed. An example is a document requiring signatures from several depart-
ments. The sequence in which the signatures are obtained may be unimportant as
long as all signatures are obtained.
In unordered routing situations, it is important to keep track of which
locations have or haven’t been visited. Entity attributes are usually the most prac-
tical way of tracking this information. An attribute may be defined for each possi-
ble location and then set to 1 whenever that location is visited. The routing is then
based on which of the defined attributes are still set to zero.
in terms of the time required, the resources used, and any other logic that impacts
system performance. For operations requiring more than a time and resource des-
ignation, detailed logic may need to be defined using if–then statements, variable
assignment statements, or some other type of statement (see Section 7.4.8, “Use
of Programming Logic”).
An entity operation is one of several different types of activities that take
place in a system. As with any other activity in the system, the decision to include
an entity operation in a model should be based on whether the operation impacts
entity flow in some way. For example, if a labeling activity is performed on enti-
ties in motion on a conveyor, the activity need not be modeled unless there are sit-
uations where the labeler experiences frequent interruptions.
Consolidation of Entities
Entities often undergo operations where they are consolidated or become either
physically or logically connected with other entities. Examples of entity consoli-
dation include batching and stacking. In such situations, entities are allowed to
simply accumulate until a specified quantity has been gathered, and then they are
grouped together into a single unit. Entity consolidation may be temporary, al-
lowing them to later be separated, or permanent, in which case the consolidated
entities no longer retain their individual identities. Figure 7.6 illustrates these two
types of consolidation.
Examples of consolidating multiple entities to a single entity include
• Accumulating multiple items to fill a container.
• Gathering people together into groups of five for a ride at an amusement park.
• Grouping items to load them into an oven for heating.
In ProModel, entities are consolidated permanently using the COMBINE com-
mand. Entities may be consolidated temporarily using the GROUP command.
Attachment of Entities
In addition to consolidating accumulated entities at a location, entities can also be
attached to a specific entity at a location. Examples of attaching entities might be
FIGURE 7.6
Consolidation of
entities into a single before after
entity. In (a) (a)
permanent
consolidation, batched
entities get destroyed.
In (b) temporary
consolidation, batched
entities are preserved before
(b) after
for later unbatching.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
FIGURE 7.7
Attachment of one or
more entities to
another entity. In (a)
permanent attachment, after
the attached entities
get destroyed. In (b) before
temporary attachment, ( a)
the attached entities
are preserved for later
detachment.
after
before
(b)
Dividing Entities
In some entity processes, a single entity is converted into two or more new enti-
ties. An example of entity splitting might be an item that is cut into smaller pieces
or a purchase order that has carbon copies removed for filing or sending to
accounting. Entities are divided in one of two ways: either the entity is split up
into two or more new entities and the original entity no longer exists; or additional
entities are merely created (cloned) from the original entity, which continues to
exist. These two methods are shown in Figure 7.8.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
FIGURE 7.8
Multiple entities
created from a single
before after
entity. Either (a) the (a)
entity splits into
multiple entities (the
original entity is
destroyed) or (b) the
entity creates one or
more entities (the before
original entity
continues). after
(b)
Examples of entities being split or creating new entities from a single entity
include
• A container or pallet load being broken down into the individual items
comprising the load.
• Driving in and leaving a car at an automotive service center.
• Separating a form from a multiform document.
• A customer placing an order that is processed while the customer waits.
• A length of bar stock being cut into smaller pieces.
In ProModel, entities are split using a SPLIT statement. New entities are created
from an existing entity using a CREATE statement. Alternatively, entities can be con-
veniently split or created using the routing options provided in ProModel.
Periodic Arrivals
Periodic arrivals occur more or less at the same interval each time. They may
occur in varying quantities, and the interval is often defined as a random variable.
Periodic arrivals are often used to model the output of an upstream process that
feeds into the system being simulated. For example, computer monitors might
arrive from an assembly line to be packaged at an interval that is normally
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
distributed with a mean of 1.6 minutes and a standard deviation of 0.2 minute. Ex-
amples of periodic arrivals include
• Parts arriving from an upstream operation that is not included in the model.
• Customers arriving to use a copy machine.
• Phone calls for customer service during a particular part of the day.
Periodic arrivals are defined in ProModel by using the arrivals table.
Scheduled Arrivals
Scheduled arrivals occur when entities arrive at specified times with possibly some
defined variation (that is, a percentage will arrive early or late). Scheduled arrivals
may occur in quantities greater than one such as a shuttle bus transporting guests at
a scheduled time. It is often desirable to be able to read in a schedule from an ex-
ternal file, especially when the number of scheduled arrivals is large and the sched-
ule may change from run to run. Examples of scheduled arrivals include
• Customer appointments to receive a professional service such as counseling.
• Patients scheduled for lab work.
• Production release times created through an MRP (material requirements
planning) system.
Scheduled arrivals sometime occur at intervals, such as appointments that occur
at 15-minute intervals with some variation. This may sound like a periodic arrival;
however, periodic arrivals are autocorrelated in that the absolute time of each ar-
rival is dependent on the time of the previous arrival. In scheduled arrival inter-
vals, each arrival occurs independently of the previous arrival. If one appointment
arrives early or late, it will not affect when the next appointment arrives.
ProModel provides a straightforward way for defining scheduled arrivals
using the arrivals table. A variation may be assigned to a scheduled arrival to sim-
ulate early or late arrivals for appointments.
Fluctuating Arrivals
Sometimes entities arrive at a rate that fluctuates with time. For example, the rate
at which customers arrive at a bank usually varies throughout the day with peak
and lull times. This pattern may be repeated each day (see Figure 7.9). Examples
of fluctuating arrivals include
• Customers arriving at a restaurant.
• Arriving flights at an international airport.
• Arriving phone calls for customer service.
In ProModel, fluctuating arrivals are specified by defining an arrival cycle
pattern for a time period that may be repeated as often as desired.
Event-Triggered Arrivals
In many situations, entities are introduced to the system by some internal trigger
such as the completion of an operation or the lowering of an inventory level to a
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
FIGURE 7.9
A daily cycle pattern 120
of arrivals.
100
Arrival quantity
80
60
40
20
9A.M. 10A.M. 11A.M.12 NOON 1P.M. 2P.M. 3P.M. 4P.M. 5P.M. 6P.M.
Hour of day
Use of Priorities
Locations and resources may be requested with a particular priority in ProModel.
Priorities range from 0 to 999, with higher values having higher priority. If no pri-
ority is specified, it is assumed to be 0. For simple prioritizing, you should use pri-
orities from 0 to 99. Priorities greater than 99 are for preempting entities and
downtimes currently in control of a location or resource. The command Get
Operator, 10 will attempt to get the resource called Operator with a priority of
10. If the Operator is available when requested, the priority has no significance. If,
however, the Operator is currently busy, this request having a priority of 10 will
get the Operator before any other waiting request with a lower priority.
Preemption
Sometimes it is desirable to have a resource or location respond immediately to a
task, interrupting the current activity it is doing. This ability to bump another
activity or entity that is using a location or resource is referred to as preemption.
For example, an emergency patient requesting a particular doctor may preempt a
patient receiving routine treatment by the doctor. Manufacturing and service or-
ganizations frequently have “hot” jobs that take priority over any routine job
being done. Preemption is achieved by specifying a preemptive priority (100
to 999) for entering the location or acquiring the resource.
Priority values in ProModel are divided into 10 levels (0 to 99, 100 to 199, . . . ,
900 to 999). Levels higher than 99 are used to preempt entities or downtimes of a
lower level. Multiple preemptive levels make it possible to preempt entities or
downtimes that are themselves preemptive.
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
times, one solution is to try to synchronize the arrivals with the work schedule.
This usually complicates the way arrivals are defined. Another solution, and usu-
ally an easier one, is to have the arrivals enter a preliminary location where they
test whether the facility is closed and, if so, exit the system. In ProModel, if a
location where entities are scheduled to arrive is unavailable at the time of an
arrival, the arriving entities are simply discarded.
mean of 2 minutes, the time between failures should be defined as xlast + E(10)
where xlast is the last repair time generated using E(2) minutes.
Downtime Resolution
Unfortunately, data are rarely available on equipment downtime. When they are
available, they are often recorded as overall downtime and seldom broken down
into number of times down and time between failures. Depending on the nature of
the downtime information and degree of resolution required for the simulation,
downtimes can be treated in the following ways:
• Ignore the downtime.
• Simply increase processing times to adjust for downtime.
• Use average values for mean time between failures (MTBF) and mean
time to repair (MTTR).
• Use statistical distributions for time between failures and time to repair.
Ignoring Downtime. There are several situations where it might make sense to
ignore downtimes in building a simulation model. Obviously, one situation is
where absolutely no data are unavailable on downtimes. If there is no knowledge
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
time. It also implies that during periods of high equipment utilization, the same
amount of downtime occurs as during low utilization periods. Equipment failures
should generally be based on operating time and not on elapsed time because
elapsed time includes operating time, idle time, and downtime. It should be left to
the simulation to determine how idle time and downtime affect the overall elapsed
time between failures.
To illustrate the difference this can make, let’s assume that the following
times were logged for a given operation:
In use 20
Down 5
Idle 15
Total time 40
A similar situation occurs in activity times that have more than one distribu-
tion. For example, when a machine goes down, 30 percent of the time it takes
Triangular(0.2, 1.5, 3) minutes to repair and 70 percent of the time it takes Trian-
gular(3, 7.5, 15) minutes to repair. The logic for the downtime definition might be
if rand() <= .30
then wait T(.2, 1.5, 3) min
else wait T(3, 7.5, 15) min
A .20 E(5)
B .50 E(8)
C .30 E(12)
Harrell−Ghosh−Bowden: I. Study Chapters 7. Model Building © The McGraw−Hill
Simulation Using Companies, 2004
ProModel, Second Edition
module. To do this within operation logic (or in any other logic), you would enter
something like the following, where Count is defined as a local variable:
int Count = 1
while Count < 11 do
{
NumOfBins[Count] = 4
Inc Count
}
The braces “{” and “}” are the ProModel notation (also used in C++ and Java)
for starting and ending a block of logic. In this case it is the block of statements to be
executed repeatedly by an object as long as the local variable Count is less than 11.
model. When faced with building a supermodel, it is always a good idea to parti-
tion the model into several submodels and tackle the problem on a smaller scale
first. Once each of the submodels has been built and validated, they can be merged
into a larger composite model. This composite model can be structured either as a
single monolithic model or as a hierarchical model in which the details of each
submodel are hidden unless explicitly opened for viewing. Several ways have
been described for merging individual submodels into a composite model
(Jayaraman and Agarwal 1996). Three of the most common ways that might be
considered for integrating submodels are
• Option 1: Integrate all of the submodels just as they have been built. This
approach preserves all of the detail and therefore accuracy of the individual
submodels. However, the resulting composite model may be enormous and
cause lengthy execution times. The composite model may be structured as
a flat model or, to reduce complexity, as a hierarchical model.
• Option 2: Use only the recorded output from one or more of the submodels.
By simulating and recording the time at which each entity exits the model
for a single submodel, these exit times can be used in place of the
submodel for determining the arrival times for the larger model. This
eliminates the need to include the overhead of the individual submodel in
the composite model. This technique, while drastically reducing the
complexity of the composite model, may not be possible if the interaction
with the submodel is two-way. For submodels representing subsystems
that simply feed into a larger system (in which case the subsystem operates
fairly independently of downstream activities), this technique is valid. An
example is an assembly facility in which fabricated components or even
subassemblies feed into a final assembly line. Basically, each feeder line is
viewed as a “black box” whose output is read from a file.
• Option 3: Represent the output of one or more of the submodels as
statistical distributions. This approach is the same as option 2, but instead
of using the recorded output times from the submodel in the composite
model, a statistical distribution is fit to the output times and used to
generate the input to the composite model. This technique eliminates the
need for using data files that, depending on the submodel, may be quite
large. Theoretically, it should also be more accurate because the true
underlying distribution is used instead of just a sample unless there are
discontinuities in the output. Multiple sample streams can also be
generated for running multiple replications.
One is to include cost factors in the model itself and dynamically update cost col-
lection variables during the simulation. ProModel includes a cost module for as-
signing costs to different factors in the simulation such as entity cost, waiting cost,
and operation cost. The alternative approach is to run a cost analysis after the sim-
ulation, applying cost factors to collected cost drivers such as resource utilization
or time spent in storage. The first method is best when it is difficult to summarize
cost drivers. For example, the cost per unit of production may be based on the
types of resources used and the time for using each type. This may be a lot of in-
formation for each entity to carry using attributes. It is much easier to simply up-
date the entity’s cost attribute dynamically whenever a particular resource has
been used. Dynamic cost tracking suffers, however, from requiring cost factors to
be considered during the modeling stage rather than the analysis stage. For some
models, it may be difficult to dynamically track costs during a simulation, espe-
cially when relationships become very complex.
The preferred way to analyze costs, whenever possible, is to do a postsimula-
tion analysis and to treat cost modeling as a follow-on activity to system model-
ing rather than as a concurrent activity (see Lenz and Neitzel 1995). There are
several advantages to separating the logic model from the cost model. First, the
model is not encumbered with tracking information that does not directly affect
how the model operates. Second, and perhaps more importantly, post analysis of
costs gives more flexibility for doing “what-if” scenarios with the cost model. For
example, different cost scenarios can be run based on varying labor rates in a
matter of seconds when applied to simulation output data that are immediately
available. If modeled during the simulation, a separate simulation would have to
be run applying each labor rate.
7.6 Summary
Model building is a process that takes a conceptual model and converts it to a sim-
ulation model. This requires a knowledge of the modeling paradigm of the partic-
ular simulation software being used and a familiarity with the different modeling
constructs that are provided in the software. Building a model involves knowing
what elements to include in the model and how to best express those elements in
the model. The principle of parsimony should always be followed, which results
in the most minimal model possible that achieves the simulation objectives.
Finally, the keys to successful modeling are seeing lots of examples and practice,
practice, practice!
18. What is the problem with modeling downtimes in terms of mean time
between failures (MTBF) and mean time to repair (MTTR)?
19. Why should unplanned downtimes or failures be defined as a function
of usage time rather than total elapsed time on the clock?
20. In modeling repair times, how should the time spent waiting for a
repairperson be modeled?
21. What is preemption? What activities or events might preempt other
activities in a simulation?
22. A boring machine experiences downtimes every five hours
(exponentially distributed). It also requires routine preventive
maintenance (PM) after every eight hours (fixed) of operation. If a
downtime occurs within two hours of the next scheduled PM, the PM
is performed as part of the repair time (no added time is needed) and,
after completing the repair coupled with the PM, the next PM is set
for eight hours away. Conceptually, how would you model this
situation?
23. A real estate agent schedules six customers (potential buyers) each day,
one every 1.5 hours, starting at 8 A.M. Customers are expected to arrive
for their appointments at the scheduled times. However, past experience
shows that customer arrival times are normally distributed with a mean
equal to the scheduled time and a standard deviation of five minutes.
The time the agent spends with each customer is normally distributed
with a mean of 1.4 hours and a standard deviation of .2 hours. Develop a
simulation model to calculate the expected waiting time for customers.
References
Jayaraman, Arun, and Arun Agarwal. “Simulating an Engine Plant.” Manufacturing Engi-
neering, November 1996, pp. 60–68.
Law, A. M. “Introduction to Simulation: A Powerful Tool for Analyzing Complex Manu-
facturing Systems.” Industrial Engineering, 1986, 18(5):57–58.
Lenz, John, and Ray Neitzel. “Cost Modeling: An Effective Means to Compare Alterna-
tives.” Industrial Engineering, January 1995, pp. 18–20.
Shannon, Robert E. “Introduction to the Art and Science of Simulation.” In Proceedings of
the 1998 Winter Simulation Conference, ed. D. J. Medeiros, E. F. Watson, J. S. Carson,
and M. S. Manivannan. Piscataway, NJ: Institute of Electrical and Electronics
Engineers, 1998.
Thompson, Michael B. “Expanding Simulation beyond Planning and Design.” Industrial
Engineering, October 1994, pp. 64–66.