You are on page 1of 133

Release 6

SIMPROCESS
Tutorial Manual
Introductory and Advanced Tutorials
Copyright © 2002-2018 CACI, INC.-FEDERAL.

All rights reserved. No part of this publication may be reproduced by any means without written
permission from CACI.

The information in document is believed to be accurate in all respects. However, CACI cannot assume
the responsibility for any consequences resulting from the use thereof. The information contained
herein is subject to change. Revisions to this publication or new editions of it may be issued to
incorporate such change.

SIMPROCESS is a registered trademark of CACI, INC.-FEDERAL.


Table of Contents
Organization of the SIMPROCESS Documentation ....................................................................................... 3
Getting Started Manual ........................................................................................................................ 3
Tutorial Manual..................................................................................................................................... 3
Reference Manual ................................................................................................................................. 3
User’s Manual ....................................................................................................................................... 3
Metadata Manual ................................................................................................................................. 4
OrgModel Manual ................................................................................................................................. 4
Chapter 1: Introductory Tutorial ................................................................................................................... 5
Mapping the Process................................................................................................................................. 6
Defining the Activities and Work Flow.................................................................................................... 10
Defining the Resources and Their Usage ................................................................................................ 19
Simulating the Model .............................................................................................................................. 21
Defining the Statistics Collection ........................................................................................................ 21
Defining the Run Settings.................................................................................................................... 21
Running the Simulation ....................................................................................................................... 22
Analyzing the Performance Measures .................................................................................................... 24
Displaying the Standard Report .......................................................................................................... 24
Evaluating Alternatives ........................................................................................................................... 26
The To-Be Process Description ........................................................................................................... 26
Simulate the To-Be Alternative ........................................................................................................... 28
Analyze the Results of the To-Be Alternative ..................................................................................... 28
Comparing Alternatives ...................................................................................................................... 29
Chapter 2: Advanced Tutorial ..................................................................................................................... 30
Building the Model Flow ......................................................................................................................... 32
Purchase Television Process ............................................................................................................... 35
Purchase Blu-Ray Process ................................................................................................................... 36
Purchase Television and Blu-Ray ........................................................................................................ 37
Replenish TV and Blu-Ray Inventory ................................................................................................... 37
Define Branch Connectors .................................................................................................................. 38
Save Model.......................................................................................................................................... 39
SIMPROCESS Tutorial Manual
Page 1
Adding Entity Types ................................................................................................................................ 40
Define Entity Types ............................................................................................................................. 40
Schedule Entity Instance Generation .................................................................................................. 41
Schedule Verification .......................................................................................................................... 45
Adding Resources and Shifts ................................................................................................................... 48
Defining Resources ............................................................................................................................. 48
Defining Resource Shifts ..................................................................................................................... 50
Setting Activity Properties ...................................................................................................................... 53
Viewing Model Results ............................................................................................................................ 58
Adding Real-Time Plots ........................................................................................................................... 61
Adding Resource Costs ............................................................................................................................ 65
Modifying Resource Requests ................................................................................................................ 68
Setting Maximum Wait For Resources.................................................................................................... 71
Parameterizing the Resources ................................................................................................................ 78
Using Attributes ...................................................................................................................................... 83
Define the Attributes .......................................................................................................................... 83
Use Entity.TVType ............................................................................................................................... 84
Use Model.NoBuyCount and Model.MaxWaitCount.......................................................................... 89
Run the Model .................................................................................................................................... 93
Creating Distributions ............................................................................................................................. 95
Create Attributes ................................................................................................................................ 95
Create Distributions ............................................................................................................................ 96
Use the Distributions .......................................................................................................................... 98
Using Expressions .................................................................................................................................. 104
Adding Labels ........................................................................................................................................ 108
Modifying Entity Generation ................................................................................................................ 113
Optimization ......................................................................................................................................... 118
Summary ............................................................................................................................................... 131

SIMPROCESS Tutorial Manual


Page 2
Organization of the SIMPROCESS Documentation

Organization of the SIMPROCESS


Documentation
The SIMPROCESS documentation set consists of six manuals in ten files:

• SIMPROCESS Getting Started Manual


• SIMPROCESS Tutorial Manual
• SIMPROCESS Reference Manual
• SIMPROCESS User’s Manual (Parts A – E)
• SIMPROCESS Metadata Manual
• SIMPROCESS OrgModel Manual

All the manuals can be opened directly from the Help/SIMPROCESS Manuals menu. There are links in
each manual to the other manuals. Press the Control key when clicking the link to have the referenced
manual open in a new window.

Getting Started Manual


The SIMPROCESS Getting Started Manual is a must for first time SIMPROCESS users. The manual
includes an introduction to SIMPROCESS modeling, instructions on installing SIMPROCESS, and
descriptions of the demonstration models included with SIMPROCESS.

Tutorial Manual
The SIMPROCESS Tutorial Manual contains an introductory and an advanced tutorial. The introductory
tutorial steps a user through the basics of building a model, running a simulation, and evaluating
alternatives. The advanced tutorial begins with building a model then expanding the model to use some
of the more advanced features of SIMPROCESS.

Reference Manual
The SIMPROCESS Reference Manual describes the SIMPROCESS menus and toolbars, and it defines the
various SIMPROCESS modeling components (Entity Types, Activities, Resources, etc.) along with the
simulation components such as delaying, branching, and Resource assignments. In addition, the
SIMPROCESS statistical capabilities are described. Finally, the SIMPROCESS preference settings are
discussed.

User’s Manual
The SIMPROCESS User’s Manual is divided into five parts with each part being a separate file.
SIMPROCESS Tutorial Manual
Page 3
Organization of the SIMPROCESS Documentation

• Part A describes all the components required to build a model and prepare it for simulation. The
model layout, Activities and Processes, Entity Types, Resources, and graphical components are
covered. Also, the statistical modeling capabilities and simulation run settings are explained.
• Part B discusses running a simulation and looking at simulation results along will all the
reporting options. Plots and dashboards are also included in this part.
• Part C covers model browsing, model searching, and model navigation along with the library and
template feature. Model bundling, which eases the sharing of model with others is explained,
and the XPDL import/export features are discussed.
• Part D explains SIMPROCESS System and user-defined Attributes along with SIMPROCESS
Expressions, Functions, and System Methods.
• Part E focuses on analysis. It explains Scenarios and Scenario Reports, the Experiment Manager,
the SIMPROCESS Database, OptQuest for SIMPROCESS (optimization), and running models
without the SIMPROCESS user interface.

Metadata Manual
The SIMPROCESS Metadata Manual describes how to build and edit SIMPROCESS metamodels, assign
metamodels to a SIMPROCESS model, and enter metadata in a SIMPROCESS model.

OrgModel Manual
The SIMPROCESS OrgModel Manual describes how to build and edit SIMPROCESS Organization and
Resource Models (OrgModels) and assign OrgModels to a SIMPROCESS model.

SIMPROCESS Tutorial Manual


Page 4
Chapter 1: Introductory Tutorial

Chapter 1: Introductory Tutorial


This chapter covers:

 Mapping the Process


 Creating Activities and the Work Flow
 Defining Resources and Assigning Usage
 Simulating the Model
 Analyzing the Performance Measures
 Evaluating Alternatives

This chapter gets you started with your first SIMPROCESS model. The purpose of this chapter is to
familiarize you with creating a basic SIMPROCESS model, simulating the process, and analyzing the
performance measures of the process. First, a description of the tutorial model is given. Then, a step-by-
step tutorial is provided.

The model for this tutorial is a representation of a call service process for a mail order business. Calls
arrive at the mail order business and are routed by an automated answering system to either the
customer service or sales department. Customer service calls arrive based on an Exponential distribution
with a mean value of 6 minutes. This means that a call arrives on average every 6 minutes. Sales calls
arrive based on an Exponential distribution with a mean value of 3 minutes. While the customer service
calls take about 15 minutes (use the Normal Distribution with a mean of 15 and a standard deviation of
3), the sales calls take about 6 minutes (use the Triangular Distribution with a minimum of 3, mode of 6,
and maximum of 12). The departments are staffed with 3 customer service representatives (at $15 per
hour) and 4 sales representatives (at $12 per hour).

The purpose of this SIMPROCESS exercise is to build a model of the call service process and analyze the
performance measures of the process. Specifically, the performance measures of interest are total
processing time, wait time, Resource utilization, and Activity costs.

SIMPROCESS Tutorial Manual


Page 5
Chapter 1: Introductory Tutorial

Mapping the Process


The first step is to map the process being modeled. Since SIMPROCESS is a hierarchical modeling tool
that combines process mapping with simulation, begin the tutorial by mapping the call service process.
Open a new model. First define 3 major processes, namely, Generate Calls, Process Calls, and Complete
Calls. To define the first major process, click on the Process icon in the Model toolbar (the uppermost
icon on the toolbar, next to the mouse pointer), move the mouse to the desired location on the layout
and click on the layout. Notice that SIMPROCESS assigns a default name called Process1 for the object
you placed on the layout. Also, notice that each Process has one input and one output Pad. You will later
use these Pads as the connection points between the Processes.

Once you’ve placed the Process on the layout, you can size it, move it, and even cut and paste it. Now,
set the name of this Process to Generate Calls, and change the icon. To accomplish this task, you need
to bring up the properties for this object. There are 3 ways to bring up the properties of a hierarchical
Process that has been selected: 1) Click on the Properties button in the System toolbar (the button next
to the Clear tool), 2) Choose the Edit/Properties option from the main menu, or 3) right mouse click on
the Process and choose Properties from the pop up menu. Click on the Properties button and bring up
the Process properties.

SIMPROCESS Tutorial Manual


Page 6
Chapter 1: Introductory Tutorial

The Name field contains the default name, Process1, which is displayed below the Process icon on the
layout. You can change this name or disable the Show Name option. For now, leave it as is. Also, on the
Icon list notice that DefaultIcon is selected.

In addition to the name, you can display text inside the Process icon on the layout. To accomplish this
task, select the Text Block tab. In the first line of Text type Generate. In the second line of Text type
Calls. When you close the properties by clicking OK, the text label will appear on the Process. Based on
your Font Attributes selections, you may need to resize the Process for the label to fit. If so, select the
Process then choose Resize from the Edit menu or right click on the Process and choose Edit/Resize
from the contextual menu.

One of the useful process documentation features of SIMPROCESS is the Comment field in the
properties. For this Process, enter “This process generates 2 types of calls.” To enter a comment, click
the detail button (three dots) to the right of the Comment field.

SIMPROCESS Tutorial Manual


Page 7
Chapter 1: Introductory Tutorial

To define the second Process, click on the Process icon from the Model toolbar and drop the Process to
the right of the first Process on the layout. Then, click on the Properties button in the System toolbar to
bring up the properties. Label this Process by clicking on the Text Block tab and entering Process Calls.
In the Comment field, enter “As-Is Process with 3 Service and 4 Sales Reps.” You will create a To-Be
alternative of this process later in the tutorial.

To define the third Process, place it on the right-hand side of the layout, repeat the steps described
above, and label it Complete Calls. You now have 3 Processes on your layout. Resize the processes if
necessary. To resize, select the Processes and choose Edit/Resize.

Next, define the work flow by connecting the 3 Processes using the Connector tool from the Model
toolbar. SIMPROCESS gives you two types of Connectors. One type is a straight Connector (diagonal
button) and the other type is a bent Connector. For this tutorial use the bent Connectors. First, connect
Generate Calls to Process Calls. Select the Bent Connector tool from the Model toolbar and click on the
right-hand Pad (small triangle) of the Generate Calls process. Then, click on the left Pad of the Process
Calls process. When you click on the left Pad of the Process Calls process, the Connector between the
two Processes will appear. Repeat this task to connect the Process Calls Process to the Complete Calls
Process. Next, click on the left (input) Pad of the Generate Calls process and click the Clear button on
the System toolbar or press the Delete key on the keyboard. Since nothing is entering this Process, the
input Pad is not needed. Do the same thing for the right (output) Pad of the Complete Calls Process.
That Pad is not needed since no Entity instances are leaving the Process. When you are done, your
model should look like the figure below.
SIMPROCESS Tutorial Manual
Page 8
Chapter 1: Introductory Tutorial

As you can see, mapping your business process with SIMPROCESS is as quick and simple as flowcharting.
While SIMPROCESS gives you the benefits of flow diagramming, it also provides you with the benefits of
object-oriented simulation. The three Processes that you just placed on the layout during the process
mapping step are hierarchical objects. You can drill down inside each Process and define its sub-
Processes. Unlike the diagram relationships in flowcharting based simulation tools, in SIMPROCESS, the
relationships between hierarchical processes are based on object oriented modeling. In other words, the
sub-Processes not only inherit the graphical symbols of the hierarchical process but also their behavior.
This provides the major benefit of re-usability.

In this tutorial, you will drill down one level within each Process; however, there is no limit to the
number of levels you can drill down. To practice drilling down, simply select a Process and double click
on it. You can also drill down by using the View/Descend menu item, or by using Descend on the right
click menu, or by clicking the down arrow on the System toolbar. Notice that you have a new layout with
Pads that correspond to the Pads on the Process icon. Also notice that SIMPROCESS keeps you informed
as to where you are in the hierarchy by displaying the name of the parent Process for this current layer.

To ascend a level, simply double click any blank space on the layout. You can also accomplish the same
task by choosing View/Ascend from the menu, choosing Ascend from the right click menu, or clicking
the up arrow on the System toolbar. Now, you are ready to create a hierarchical simulation model of
your process by using the powerful Activity-based modeling and Resource modeling constructs.

SIMPROCESS Tutorial Manual


Page 9
Chapter 1: Introductory Tutorial

Defining the Activities and Work Flow


At the lowest level of each hierarchical Process is an Activity or Activities that describe the behavior of
that Process. In this tutorial you will define two Generate Activities that describe the Process called
Generate Calls. You will define a Branch Activity followed by 2 Delay Activities that describe the Process
called Process Calls. Finally, you will define a Dispose Activity that describes the Process called Complete
Calls.

The Entity instances (or flow objects) that will be moving through your model are usually created with
Generate Activities. The first Process in your model generates two types of calls. Drill down inside the
Generate Calls Process by selecting that object and double-clicking on it. First, define the Generate
Activity that generates the service calls. To do this, select the Generate Activity from the Model toolbar
and place it on the layout. Then, double-click on the icon to get the properties.

Change the name of this Activity to Generate Service Calls. Next, click on the New Entity button to
define the service calls. This brings up the Entity Type manager where new Entity Types are defined.

Select the Add option, type in the name Service Calls in the Name field of the Entity Type properties,
and click on OK. Notice that the name Service Calls appears in the Name column. This table contains all
the Entity Types defined in the model. Click Close to close the Entity Type manager and return to the
Generate properties.

SIMPROCESS Tutorial Manual


Page 10
Chapter 1: Introductory Tutorial

You will see Exp (10.0) in the distribution list where 10 is the default value for the mean. To change the
mean value for the interval to 6, click on the Interval detail button (the button with three dots on it).
Enter 6 in the Mean field. Click OK to complete the distribution selection. You can also edit the Mean
field by editing the distribution list directly. Select Minutes as the Time Unit.

You will see Exp (10.0) in the distribution list where 10 is the default value for the mean. To change the
mean value for the interval to 6, click on the Interval detail button (the button with three dots on it). Do
that and enter 6 (minutes) in the Mean field. Click OK to complete the distribution selection. You can
also edit the Mean field by editing the distribution list directly. Select Minutes as the Time Unit.

SIMPROCESS Tutorial Manual


Page 11
Chapter 1: Introductory Tutorial

The default value for generation of Entity instances in the Quantity field is 1, which is what you want for
this model, so use default is correct. Also, the default value for Entity for the Generate Activity is
Service Calls, so use default is appropriate for the Generate schedule. Click OK to close the Periodic1
schedule.

Notice that the Generate Activity gives you many other options. For example, you can use a data file,
spreadsheet, or database to generate the calls instead of a statistical distribution. Or, you can create
complex schedules and cyclical arrival patterns. For now, click on OK and move on to defining the
generation of sales calls.

To define the generation of sales calls, again select a Generate Activity from the Model toolbar and
place it on the layout below the first Generate Activity. Then, double-click on it to display its properties.
Change the name of this Activity to Generate Sales Calls.

Next, click on the New Entity button to define the sales calls the same way you did for Service Calls. This
brings up the Entity Type manager that allows you to define new Entity Types or edit existing ones.
Select the Add option, and enter the name Sales Calls. Choose an icon for the Sales Calls Entity Type
from the Icon list different from the one you used for Service Calls. When you view the animation
during the simulation run you will be able to see which calls moving through the system are Sales Calls
and which are Service Calls.

SIMPROCESS Tutorial Manual


Page 12
Chapter 1: Introductory Tutorial

Click OK to close the Entity Type properties. Select the Periodic1 schedule and then click Edit. In this
instance the value use default for the Entity field is not appropriate since the name Service Calls is
displayed in the Entity field of the Generate Sales Calls Activity. To change it to Sales Calls, click on the
down-arrow to see the list of Entity Types and select Sales Calls from the list. Now, you are ready to
define the arrival interval between Sales Calls. To define the Interval, click on the Interval list to see the
available statistical distributions. Select the Exponential distribution again. Click on the Interval detail
button and enter 3 (every 3 minutes) in the Mean field as the mean value for the distribution. Before
closing the properties for the Exponential distribution, click on the View button to the right.
SIMPROCESS provides you with this useful viewing facility so that you can visualize the probability
density function for this distribution. When you are done viewing the curve, close that window to return
to the properties for the Exponential distribution, and then click OK to return to the properties for the
Periodic1 schedule. Select Minutes for the Time Unit and click OK. This returns you back to the
Generate properties. Click OK again to get back to the layout.

At this point, you must do an important task to complete the description of the call generation process.
That is, you must connect the output Pads of the two Generate Activities to the output Pad of the
hierarchical Process named Generate Calls. To do this select the Connector tool from the Model toolbar
and connect the output Pad of the Generate Service Calls Activity to the output Pad on the right-hand
side of the layout. Then repeat the same task by connecting the output Pad of the Generate Sales Calls
Activity to the output Pad of on the right-hand side of the layout.

SIMPROCESS Tutorial Manual


Page 13
Chapter 1: Introductory Tutorial

Now, you are done describing the Activities for the Generate Calls Process. Double-click on any blank
area on the layout to return to the top level of the model.

Next, you will define the Process Calls Process which consists of a Branch Activity followed by two Delay
Activities. Double click on Process Calls to descend into the Process. Notice that SIMPROCESS gives you
an input Pad on the left-hand side, an output Pad on the right-hand side, and a blank layout in the
middle for placing the Activities at this level.

The Branch Activity determines the routing of calls. From the Model toolbar select the Branch Activity
and place it to the right of the input Pad. Then, using the Bent Connector tool connect the Process input
Pad to the input Pad of the Branch Activity. This means that Entity instances entering the Process Calls
Process will be the input to this Branch Activity.

SIMPROCESS Tutorial Manual


Page 14
Chapter 1: Introductory Tutorial

Double click on the Branch Activity to display its properties. Change the Name of this Activity to Route
Calls. By default, the branch type is set to Probability. Change this setting by selecting the Entity Type
button and then select OK to close the properties.

The Delay Activities represent the Customer Service and Sales Activities. From the Model toolbar select
a Delay Activity and place it to the right of the Branch Activity. Then select the Connector tool and
connect the Branch Activity to this Delay Activity.

To specify which Entity instances take this route, double click on the Connector and select the Service
Calls Entity Type from the list of Entity Types on the right and then click the Add button to move the

SIMPROCESS Tutorial Manual


Page 15
Chapter 1: Introductory Tutorial

Entity Type to the left. Then type in the name Serivce Calls in the Connector Name field and make sure
the Show Name option is selected. Click OK to close the properties.

Next, double click on the Delay Activity to define its properties. Change the Name of this Activity to
Customer Service and define the duration for servicing a Customer Service call. The Duration field is a
distribution list like the Interval field in the Generate Activity. Select the Normal distribution (Nor) from
the list. Then define the parameters of the distribution: 15 for the Mean and 3 for the standard
deviation (Std Dev). Again, select Minutes for the Time Unit. Notice that one of the tabs in the Delay
properties is for defining Resources required for this Activity. You will do that after completing the work
flow definition.

Next, you need to define the Delay Activity representing the servicing of the Sales Calls the same way
you did for Customer Service. To do this select the Delay Activity from the Model toolbar and place it to
the right of the Branch Activity just below the Customer Service Activity. Then select the Connector tool
and connect the Branch Activity to this Delay Activity.

To specify which Entity instances take this route, double click on the Connector and select the Sales Calls
Entity Type from the list of Entity Types on the right and then click the Add button to move the Entity
Type to the left. Then type in the name Sales Calls in the Connector Name field and make sure the Show
Name option is selected. This feature provides for meaningful documentation of the work flow. Click OK
to close the properties.

Next, double click on the Delay Activity to define its properties. Change the Name of this Activity to
Sales and define the Duration for servicing a Sales Calls Entity instance. Select the triangular
distribution (Tri) and set the parameters to a Minimum of 3, Mode of 6, and Maximum of 12. Make
sure to select Minutes as the Time Unit.

To complete the description of the Activities at this level, you need to connect the output Pads of the
Customer Service and Sales Activities to the output Pad that is on the right-hand side of the layout. At
this point, the layout of your Process should look something like the following.

SIMPROCESS Tutorial Manual


Page 16
Chapter 1: Introductory Tutorial

When you are done with those connections, you can get back to the top level by double clicking on any
blank space in the layout.

The final task for completing the work flow is to describe the completion of calls. To accomplish this
task, double click on the hierarchical process named Complete Calls.

This Process is used for disposing of the calls after they are serviced. That is why the Dispose Activity
only has an input Pad. For now, you need not define any parameters for this Activity. Just select the
Dispose Activity from the Model toolbar and drop it in the middle of the layout. Then, using the Bent
Connector tool, connect the input Pad of the hierarchical Process to the input Pad of the Dispose
Activity. When you are done making this connection, simply double click in any blank space on the
layout and go back up to the top level.

SIMPROCESS Tutorial Manual


Page 17
Chapter 1: Introductory Tutorial

At this point, you are through with the definition of your Processes, Activities and work flow. You are
now ready to define your Resources and where they are required to perform work.

SIMPROCESS Tutorial Manual


Page 18
Chapter 1: Introductory Tutorial

Defining the Resources and Their Usage

One of the most powerful constructs of SIMPROCESS is the Resources. In this tutorial you will define the
Customer Service and Sales Resources, their capacity (quantity available), and hourly labor costs. You
will then assign them to the appropriate Activities.

Resources are defined by selecting Resources on the Define menu or by clicking the Define Resources
button on the Model toolbar. Selecting the Resources option brings up the Resource manager. To
define a Resource, click on the Add button, enter in the Name field Sales Rep and set the Units to 4. The
Units field is the SIMPROCESS distribution list. The only constant value option is 1 so simply replace
what is there with 4.

To define the hourly labor rate, click on the Cost tab and enter 12 in the field Cost per Time Unit. The
Time Unit defaults to Hours. This means that each representative costs $12 per hour. During the
simulation, SIMPROCESS will calculate the Activity costs based the actual usage of the sales
representatives. Then, click on the OK button to complete defining the Sales Rep Resource.

SIMPROCESS Tutorial Manual


Page 19
Chapter 1: Introductory Tutorial

To define the Service Rep, click on the Add button of the Resource manager and repeat the same steps
while setting the Units to 3 and hourly labor rate to $15. When you are done defining the Service Rep,
click the OK button. Then click on the Close button of the Resource manager to get back to the layout.

Now, you are ready to define how these Resources are used in processing calls. This task is
accomplished by going into the Activities that use the Resources. Drill into the hierarchical Process
named Process Calls. First, assign the Sales Rep to the Sales Activity by double clicking on the Delay
Activity representing Sales. To define the Resource requirements for this Activity, select the Resources
tab. Select the Sales Rep Resource and click Add leaving 1 as the default for the Units. This means one
Sales representative is required to perform this Activity every time a Sales Call arrives. During the
simulation, when a call arrives it will be serviced by one of the 4 Sales Rep Resources. If all Sales Rep
Resources are busy, then the caller will wait in a queue until the next representative becomes available.
SIMPROCESS will automatically keep track of the number of calls waiting, as well as how much time each
call waited. Click OK to close the properties.

To define the usage of the Customer Service representatives, select the Customer Service Activity and
repeat the same steps, again assigning one representative to each call that enters the Activity. When
you are done assigning the Resources to their corresponding Activities, you are ready to simulate the
process.

Save the model before running the simulation. To save your model select the Save option on the File
menu or click the Save button on the System toolbar. Enter As-Is for the file name. The file extension
for SIMPROCESS models, .spm, is automatically assigned. So, your model file will be saved as As-
Is.spm. Now, you are ready to simulate your model.

SIMPROCESS Tutorial Manual


Page 20
Chapter 1: Introductory Tutorial

Simulating the Model


Once you have completed building your model, simulating your process model involves 3 steps:

• Defining the Statistics Collection


• Defining the Run Settings
• Running the Simulation

Defining the Statistics Collection


Before running the simulation, you need to define what statistics you want SIMPROCESS to gather.
SIMPROCESS provides you with a very flexible reporting system. As mentioned at the beginning of this
chapter, the performance measures that you are most interested in are total processing time, wait time,
Resource utilization, and Activity costs.

Select the Define Global Statistics Collection item on the Report menu. Collect Entity Statistics and
Collect Resource Statistics should already be checked. If not, then select them. These are the default
statistics collected by SIMPROCESS. When using Define Global Statistics Collection it is not necessary to
individually request statistics for Entity Types, Resources, Activities, and Connectors.

Defining the Run Settings


The next step before running the simulation is to specify how long you want to simulate the model. To
do this, select the Run Settings item on the Simulate menu. This displays the Run Settings properties.
SIMPROCESS Tutorial Manual
Page 21
Chapter 1: Introductory Tutorial

The default start date will be January 1 of the current year. In our example the default start date is
01/01/2018. For now leave the start date as the default date and time. Change the end date to
01/02/2018. This means SIMPROCESS will simulate the model for 1 day (24 hours) and report statistics
over that time. Click OK to close the properties and accept the changes.

Running the Simulation


Now, you are ready to run the simulation. You can do this by clicking on the Run button on the System
toolbar, selecting the Run item on the Simulate menu, or by pressing the F4 key. If Verify Model on
Run was selected in the Run Settings, a verification process occurs before the simulation. This process
checks to see if all Activities and Processes are connected and for other errors. If any errors are found,
warning messages appear.

When the simulation starts running, SIMPROCESS gives an animated picture of the work flow. Animation
is an extremely powerful tool for verifying your model and visualizing your process in motion.

During the simulation, you will see the simulation clock on the lower right-hand corner of your screen.
As the process is simulated, SIMPROCESS dynamically updates the counters above the Processes and
Activities. At the top level of your model is the animation of the three hierarchical Processes. Double
click on the Generate Calls Process to see the animation of its detail. The counters that are above the
Generate Activities display the number of Entity instances generated so far.

Next, double click on any blank space to ascend back up to the top level. To watch the animation of the
Customer Service and Sales Activities, drill down into Process Calls. The counters above the Activities
show the number of Entity instances currently in the Activities.

Now, move back up to the top level and descend into Complete Calls. The counter above the Dispose
Activity displays the number of Entity instances disposed so far. In this model, because both types of
SIMPROCESS Tutorial Manual
Page 22
Chapter 1: Introductory Tutorial

calls are sent to the same Dispose Activity, the counter displays the total number of calls. In addition to
these counters, you can display real-time plots of cycle times, counts, and the number of calls waiting
for service.

Animation can be turned off anytime to speed up the execution of the simulation. This can be
accomplished by deselecting the Animation On menu item on the Simulate menu, by pressing F8, or by
clicking the Display animation button (movie reel) on the System toolbar. While the simulation is in
progress, notice that the status bar in the bottom of your screen displays “Simulating” and “Trial 1 of 1.”
When the simulation is over the status bar displays the message “Simulation Complete.” Once the
simulation is complete, you are ready to analyze the output reports.

SIMPROCESS Tutorial Manual


Page 23
Chapter 1: Introductory Tutorial

Analyzing the Performance Measures


Analyzing the performance measures for this model involves displaying the Standard Report or viewing
the simulation results.

Displaying the Standard Report


To bring up the Standard Report, select the Display Standard Report item from the Report menu. The
Standard Report can be displayed in a text editor, a spreadsheet, or the SIMPROCESS Report Viewer. Use
the text editor for now. If the default path to Notepad (or the appropriate application if not on
Windows) is not correct, simply select the Browse button and choose a text editor application. Select
Replication 1 and click Display Reports.

First, look at “Entity : Total Count - Observation Based.” This gives you the values of 504 for Sales Calls
processed and 221 for Service Calls processed.

“Entity : Cycle Time (in Hours) By State” shows that the average total processing time for Sales Calls was
about .13 hours (7.8 minutes) while the total processing time for a Service Calls took about .34 hours
(20 minutes). These times include the actual time for a call (in process time) plus the wait time. The
average wait times are .011 (.66 minutes) for Sales Calls and .096 (5.8 minutes) for Service Calls.

Although the average wait time for Sales Calls is acceptable, an average wait time for Service Calls
seems too long. An important question that comes to mind is “If the average wait time was 6 minutes,
what was the maximum wait time for a customer service call?”

The maximum wait times were .142 (8.5 minutes) for Sales Calls and .520 (31.2 minutes) for Service
Calls. This means, of the 504 Sales Calls, the one that waited the longest had to wait 8.5 minutes and of
the 221 Service Calls, the one that waited the longest had to wait about 31.2 minutes.

Is this acceptable? For any mail order business that wants to be competitive, the answer is “Of course
not.” No customer would wait 31 minutes before getting serviced. Most likely they will hang up and try
again, or they will take their business somewhere else. In the next chapter you will create the To-Be
process to reduce the maximum wait time for customer service calls. Now, look at the Resource
statistics.

“Resource : Number of Units By State” shows that the average utilization of the Service Rep and Sales
Rep Resources was over 2. Because there were 4 units of Sales Rep and 3 units of Service Rep available,
this points out the possibility of over staffing in the sales department. However, you need to keep in
mind that wait times were minimal for sales calls while they were considerable for customer service
calls. If you were to reduce the sales staff to 3 units what would happen to wait times for sales calls? You
may want to try this alternative on your own after completing this tutorial.

Now review the Activity-based costing statistics. Since you only ran the simulation for 24 hours, this
means the costs were calculated for the 24-hour simulation run within the first week. There are three
SIMPROCESS Tutorial Manual
Page 24
Chapter 1: Introductory Tutorial

categories of costs: Resource by Activity, Resource by Entity, and Activity by Entity. In Activity by Entity
you see that the Activity costs are $712 for Sales and $826 for Customer Service. The proper
interpretation of these costs is as follows: It cost $712 to service 504 sales calls and $826 to service 221
customer service calls. This adds up a total of $1,538 for serving 725 phone calls.

Important Note: This simple exercise is intended to provide you with an overview of SIMPROCESS. In a
typical business process simulation project, you would need to run this model for longer duration and
for multiple replications before making conclusions about the results.

SIMPROCESS Tutorial Manual


Page 25
Chapter 1: Introductory Tutorial

Evaluating Alternatives
This section of the tutorial shows you how to create and evaluate alternatives with SIMPROCESS. The
purpose of this section is twofold: 1) to familiarize you with the process analysis feature Alternative sub-
Processes, and 2) to improve the process that you just modeled.

The To-Be Process Description


You will now create a To-Be Alternative of the hierarchical Process named Process Calls. The To-Be
Alternative uses customer representatives that are trained to process both the customer service calls
and sales calls. So, instead of sales representatives being dedicated to sales and service representatives
being dedicated to customer service, the new Resource Customer Rep will be trained to handle all
incoming calls. The hourly cost for each customer representative is $15.

The purpose of this exercise is to evaluate the process improvements that can be achieved by cross-
training the service and sales representatives. Specifically, the objective is to reduce the maximum wait
time for Service Calls from 31 minutes to under 8 minutes (.13 hours) while keeping the Activity costs
under $1,850 per 24 hours. Decision variables that you will tweak to meet the business objectives are
the Units of Resources and the hourly Cost per Unit.

Creating the To-Be alternative involves 3 steps:


• Define a new Resource named Customer Rep
• Define the To-Be Alternative for Process Calls
• Run the simulation with the To-Be Alternative active

Defining the New Customer Representative Resource


Open the Resource manager by selecting the Resources item on the Define menu or clicking the Define
Resources button on the Model toolbar. To define the new Resource, click the Add button and enter in
the Name field Customer Rep. Specify 7 for the Units. To define the hourly labor rate, click on the Cost
tab and enter 15 in the Cost per Time Unit. When you are done defining the cost for the new Resource,
click the OK button and then the Close button to get back to the layout.

Creating the To-Be Alternative Process


Edit the properties for Process Calls. Notice that the Alternative Sub-Processes list contains the name
Alt1. Click the Edit button and change the Name to As-Is. Then click the Copy button and enter the
Name To-Be for the new Alternative you are about to create. Click OK. Notice that the new Alternative
is highlighted, meaning that when you descend into the Process you will be in the To-Be Alternative.
Click OK to close the properties and accept the changes.

You are now ready to define the To-Be Alternative of Process Calls. Double click on the Process to drill
down to the next level in the hierarchy. At this point the layout looks exactly like the As-Is Alternative.
Remember you copied the contents of the As-Is Alternative into the To-Be Alternative.

SIMPROCESS Tutorial Manual


Page 26
Chapter 1: Introductory Tutorial

Next, modify the Resource assignments so that the Resources used for performing work are the new
Customer Rep Resource. Double click on the Customer Service Activity and click on the Resources tab.

Remove the Service Rep Resource assignment by selecting Service Rep then clicking the Remove
button.

SIMPROCESS Tutorial Manual


Page 27
Chapter 1: Introductory Tutorial

Then select the Customer Rep Resource from the Resource tree and click the Add button. This means
that every service call will be handled by a Customer Rep instead of a Service Rep. Click the OK button
to close the properties and get back to the layout.

You also need to assign the Customer Rep to the Sales Activity. Repeat the same steps by removing the
Sales Rep Resource assignment and adding the Customer Rep to the Resource assignment.

You are now done creating the To-Be Alternative. Double click in any blank space in the layout to get
back to the top level.

This Alternative is saved as a separate model, To-Be.spm, in the Demos directory. See Chapter 3:
Demonstration Models in the SIMPROCESS Getting Started Manual for more information on the Demos
directory.

Simulate the To-Be Alternative


You are now ready to simulate the To-Be Alternative. Select the Simulate/Run option (or click on the
Run button in the System toolbar). Since you did not change the As-Is Alternative, it is still part of this
model. However, when you run the simulation, SIMPROCESS will only simulate the To-Be Alternative
because that was the selected Alternative when you exited the properties of Process Calls. During the
simulation of this Alternative double click on Process Calls to view the animation of the Alternative. You
can turn off the animation by pressing F8 or clicking the Display animation button on the System
toolbar. When the simulation is complete the message “Simulation Complete” will display.

Analyze the Results of the To-Be Alternative


Display the Standard Report (Report/Display Standard Report).

First, look at “Entity : Total Count”. This table shows that the redesigned process with 7 flexible
Customer Rep Resources serviced 460 Sales Calls and 251 Service Calls.

Next, look at “Entity : Cycle Time (in Hours) By State” and analyze the wait time reduction for the To-Be
Alternative. This report shows that the average wait time for Sales Calls was .01 hours (.6 minutes) and
for Service Calls was .008 hours (.48 minutes) indicating that the wait time for Service Calls was reduced
dramatically. The maximum values for wait times are .135 hours (8.1 minutes) for the Sales Calls and
.163 hours (9.8 minutes) for the Service Calls. These peak wait times are much more acceptable because
only one of the 460 Sales Calls had to wait 8.1 minutes and only one of the 251 Service Calls had to wait
9.8 minutes.

Now look at the cost statistics. The Customer Service Activity cost is $939 and the Sales Activity cost is
$820 summing to a total Activity cost of $1,759. This means you achieved our desired business
objectives by keeping total Activity costs under $1,850.

SIMPROCESS Tutorial Manual


Page 28
Chapter 1: Introductory Tutorial

Comparing Alternatives
The table below compares the As-Is and To-Be results.

Performance Sales Activity Customer Service Total


Measure Activity
As-Is Calls 504 221 725
To-Be Calls 460 251 711
As-Is Costs $712 $826 $1538
To-Be Costs $939 $829 $1759

SIMPROCESS Tutorial Manual


Page 29
Chapter 2: Advanced Tutorial

Chapter 2: Advanced Tutorial


This chapter covers:

 Building the Model Flow


 Adding Entity Types
 Adding Resources and Shifts
 Setting Activity Properties
 Viewing Model Results
 Advanced Features

This chapter steps you through building a more complex SIMPROCESS model. The purpose of this
chapter is to reinforce the model building process by building a second model and to introduce some of
the more advanced features of SIMPROCESS.

This model represents a simplified version of a local electronics store that wants to improve its customer
service. The scenario and data do not reflect an actual store. The goal is to use the model to understand
more of the features of SIMPROCESS.

The tutorial begins with building the model flow, defining the Entity Types (and their use and arrival
schedules), and then defining the Resources and their assignment. From there some of the more
commonly used advanced features are introduced.

Models that show the various stages of the completion of this tutorial are in the Demos/Advanced
Tutorial directory. The table below shows the models along with their associated sections of this
tutorial. Each model builds on the previous model. The model that shows the results of all the sections
of this tutorial is Electronics Store.spm.

Model File Tutorial Sections


Electronics Store Section 1.spm Building the Model Flow
Adding Entity Types
Adding Resources and Shifts
Setting Activity Properties
Electronics Store Section 2.spm Adding Real-Time Plots
Electronics Store Section 3.spm Adding Resource Costs
Electronics Store Section 4.spm Modifying Resource Requests
Electronics Store Section 5.spm Setting Maximum Wait For Resources
Electronics Store Section 6.spm
Electronics Store Section 7.spm Parameterizing the Resources
Electronics Store Section 8.spm Using Attributes
SIMPROCESS Tutorial Manual
Page 30
Chapter 2: Advanced Tutorial

Model File Tutorial Sections


Electronics Store Section 9.spm Creating Distributions
Electronics Store Section 10.spm Using Expressions
Electronics Store Section 11.spm Adding Labels
Electronics Store Section 12.spm Modifying Entity Generation
Electronics Store.spm Optimization

SIMPROCESS Tutorial Manual


Page 31
Chapter 2: Advanced Tutorial

Building the Model Flow


You need to build the model flow based on the following information:
• Customers enter the store and look at the merchandise.
• 70% of the customers buy something from the store.
• Customers buy either a television or a Blu-Ray player or both.
• 50% only buy a television.
• 25% only buy a Blu-Ray player.
• 25% buy both a television and a Blu-Ray player.
• A Trailer arrives every Friday to replenish both the TV and Blu-Ray Player inventories.
• A customer service representative is required to assist with purchases and retrieve the
televisions from stock.
• A customer who makes a purchase pays for the items and exits the store.

What can you glean about the model flow from this information? First, there must be a Generate
Activity to have customers arrive and a Dispose Activity to have customers exit. Once the customer
enters the model through the Generate Activity they need to browse through the store. The browsing
duration is modeled by a Delay Activity. Given that a certain percentage purchase something and a
certain percentage do not purchase anything there will need to be a Branch Activity. Those customers
that do not purchase anything should proceed to the Dispose Activity. For the customers that do
purchase something, there are three options. There are several ways to model this but to demonstrate
the overall flow of the model, each option should be represented by a Delay Activity or a Process that
includes Delay Activities. These three options should be preceded by a Branch Activity since there are
probabilities for each option. These customers need an Activity to represent the time required to
complete the purchase. Once they have paid they are routed to the Dispose Activity. Finally, there must
be Activities to replenish the stock of televisions and Blu-Ray players. These can go in an independent
Process. At this point, you are simply building the flow of the model. You are not assigning properties to
any items. However, assumptions regarding Entity Types and Resources influenced the building of the
model flow. There is the assumption of a Customer Entity Type and a Customer Service Rep Resource.
Also, the televisions and Blu-Ray players will be modeled by consumable Resources. Below is one way to
diagram the flow of the model.

SIMPROCESS Tutorial Manual


Page 32
Chapter 2: Advanced Tutorial

The Activities Browse Store and Pay for Items are Delay Activities. Browse Store has its Icon set to
Retail Shop from the Icon Set City. The Activity Pay for Items has its Icon set to Card Reader Terminal
from the Icon Set Electronics. See Icon in Chapter 2 of Part A of the SIMPROCESS User’s Manual for
details on setting an Activity’s icon. Setting the Icon for these Activities is not required for the tutorial.
The three options for purchasing are represented by Processes. This means the Activities that model the
purchases will be inside the Processes. A separate Process contains the Activities for stock
replenishment. In order to place a descriptive label on a Process (such as Purchase Television), edit the
Process properties and select the Text Block tab. Enter the desired text in the Text field and set the
Font Attributes. Make sure Show Text is selected.

SIMPROCESS Tutorial Manual


Page 33
Chapter 2: Advanced Tutorial

The text that is entered will not only display as a label on the Process, but it can also be displayed inside
the Process. Select Add Text Label to display the same text inside the Process and click the Properties
button to set the Label Orientation and Font Attributes for the inner label.

To use the Text Block as the Name of the Process, go to the General tab, deselect Show Name and
select Use Text Block. See Text Block in Chapter 2 of Part A of the SIMPROCESS User’s Manual for more
information on this feature.

SIMPROCESS Tutorial Manual


Page 34
Chapter 2: Advanced Tutorial

Colors were set for the different Process flows by selecting a color using the Color Chooser then
selecting each Connector in the flow and then clicking the Apply Color button. The background color of
the Layout was set by choosing a color with the Color Chooser then selecting on the Layout menu the
Background Color/Current Layout menu item. You can also right click on the Layout and select
Color/Apply Color to Background from the contextual menu. See Color Tools in Chapter 4 of Part A of
the SIMPROCESS User’s Manual for a full discussion on selecting and applying colors. Selecting and
applying colors is not necessary for this exercise. To get the path of the Connector between Make a
Purchase? and Customer Departs, vertices were added to the Connector. These allow the Connector to
be given a specific path by selecting and dragging a vertex. Simply right click on the Connector and
choose Add Vertex. Click on the small green square and drag it to change the path of the Connector. A
Connector can have multiple vertices.

Purchase Television Process


The Purchase Television Process consists of a Get Resource Activity, two Delay Activities, and a Free
Resource Activity.

SIMPROCESS Tutorial Manual


Page 35
Chapter 2: Advanced Tutorial

We chose to model the inquiry about televisions and order from inventory as two separate Activities
(Discuss TVs and Order from Inventory). This is because the data for each was separate. If the data
included discussion and ordering as one step, then one Activity with no Get Resource or Free Resource
Activities would have been sufficient. However, since there is data for each step we have two Activities.
Therefore, we are using a Get Resource and Free Resource Activity. The same customer service
representative that participates in the discussion will also order the purchases from inventory. If the
customer service representative Resource was assigned at each Activity, there could be a delay between
Discuss TVs and Order from Inventory. Once the Resource was released from Discuss TVs it could be
acquired by an Activity in another Process instead of by Order from Inventory, thus creating a delay
between the two Activities that would not exist in the actual store. By obtaining the Resource at Ask For
Help, we are able to keep the Resource until Order from Inventory is complete, releasing the Resource
at Service is Finished.

Purchase Blu-Ray Process


The Purchase Blu-Ray Process is different. There are no Get Resource or Free Resource Activities.

SIMPROCESS Tutorial Manual


Page 36
Chapter 2: Advanced Tutorial

This is because the customer service representative is only needed at the Discuss Blu-Ray Players
Activity. Blu-Ray players do not have to be ordered from inventory since they are displayed on the shelf
for the customer to retrieve.

Purchase Television and Blu-Ray


The Purchase Television and Blu-Ray Process combines the two other Processes.

Replenish TV and Blu-Ray Inventory


The Replenish TV and Blu-Ray Inventory Process controls the replenishment of the stock of televisions
and Blu-Ray players.

This Process does not have an Input Pad or an Output Pad. These were deleted since nothing enters or
exits this Process. A Pad can only be deleted from the outside of a Process. Ascend to the top level of the
model, select each Pad and then either press the Delete key or click the Clear button on the System
SIMPROCESS Tutorial Manual
Page 37
Chapter 2: Advanced Tutorial

toolbar. Only one Pad can be selected and deleted at a time. Inside the Process a Generate Activity was
included since the replenishment is scheduled at a certain time each week and the Replenish Resource
Activity only activates when an Entity instance enters the Activity. Since the only purpose of this Entity
instance is to replenish Resources it is disposed once that action is done.

Define Branch Connectors


The model flow is complete, but to be able to run some verification tests later, go ahead and set the
properties for the Branch Connectors. Branch Activities have various branching options, but Branch
Activities default to branch by Probability. Unless that option was changed when you set the name or if
you have not yet edited the Branch Activities, Probability is still selected. In our model the first Branch
Activity is “Make a Purchase?”. Edit the Connector that connects directly to the Dispose Activity. The
properties display by double clicking on the Connector or by right clicking on the Connector and
choosing Properties. Set the Name of the Connector and select Show Name so the Name will display on
the Layout. Then select the If Probability is option and enter 0.3.

Click OK then edit the other Connector exiting from the first Branch Activity. Again, set the Name and
select Show Name. In this case, though, you can either select If Probability is and enter 0.7 or select
Otherwise.

SIMPROCESS Tutorial Manual


Page 38
Chapter 2: Advanced Tutorial

Click OK to close the properties and click and drag the Connector names to your desired locations. The
Connectors exiting the second Branch Activity (What Item? in our model) also need to be defined. Edit
the Connector between the second Branch Activity and Purchase Television. Set the Name, select Show
Name, and enter 0.5 for If Probability is. Do the same thing for the Connector between the second
Branch Activity and Purchase Blu-Ray and enter 0.25 for If Probability is. For the Connector between
the second Branch Activity and Purchase Television and Blu-Ray, either enter 0.25 for If Probability is
or select Otherwise. For both Branch Activities the sum of the probabilities of the exiting Connectors
must be 1.0.

Save Model
The model flow is complete and the Branch Connectors have been defined so, if you have not already
done so, save the model with a meaningful name. We named our model Electronics Store.spm,
which is in the Demos/Advanced Tutorial directory. If the model has never been saved File/Save
will invoke File/Save As so the model can be saved under a different name. Note: There is a version of
Electronics Store.spm for each section of this tutorial. The model for this first section is
Electronics Store Section 1.spm.

SIMPROCESS Tutorial Manual


Page 39
Chapter 2: Advanced Tutorial

Adding Entity Types


Now that the flow has been created the Entity Types need to be defined along with their arrival
schedules. From what you know one Entity Type that is required is an Entity Type that represents
customers that enter and exit the store. Second, you need an Entity Type that can be used to replenish
inventory.

Define Entity Types


On the Define menu select Entity Types or click the Define Entity Types button on the Model toolbar.
Once the Entity Type manager displays click Add and define an Entity Type named Customer.

Define a second Entity Type named Trailer. For this Entity Type we selected the Trailer icon from the
Transportation Icon Set.

SIMPROCESS Tutorial Manual


Page 40
Chapter 2: Advanced Tutorial

Once complete the Entity Type manager should display two Entity Types.

Schedule Entity Instance Generation


Now that the Entity Types are defined, the arrival schedules for instances of each Entity Type must be
defined.

Customer Entity Type


For the Customer Entity Type, the store’s hours of operation must be considered since customers do not
enter and exit the store when it is closed. Also, there either must be data or assumptions about how
often a customer enters the store during business hours. The store’s business hours are Monday-Friday
9:00 am to 9:00 pm, Saturday 9:00 am to 10:00 pm, and Sunday 12:00 pm to 6:00 pm. Start with the
assumption that customers arrive approximately every three minutes. Edit the properties of the
Customers Arrive Generate Activity by double clicking on the Activity or by right clicking on the Activity
and choosing Properties.

SIMPROCESS Tutorial Manual


Page 41
Chapter 2: Advanced Tutorial

The Generate Activity defaults to having one Periodic schedule, Periodic1. Select this schedule and click
the Remove button since a Periodic schedule is not needed. Next choose Weekly from the list of
schedule types and click the Add button. This displays the properties for a Weekly schedule. This
schedule will cause instances of the Customer Entity Type to arrive during business hours approximately
every three minutes.

SIMPROCESS Tutorial Manual


Page 42
Chapter 2: Advanced Tutorial

Change the default value of the Schedule field to Customer Schedule. The top portion of the schedule is
the same as a Periodic schedule. Select Customer from the Entity list (use default would also work since
the default Entity for the owning Generate Activity is Customer). Select 1.0 or type in 1 for Quantity
(again use default would work since the default Quantity for the owning Generate Activity is 1.0). For
the Interval select the exponential distribution from the list – Exp(10.0). Use the exponential
distribution because inter-arrival times are typically exponentially distributed. The mean defaults to 10.0
so that needs to be changed to 3.0. Click the detail button (three dots) to the right of the Interval list.
Change Mean to 3.0 and enter a Stream number. In the introductory tutorial we did not address the
random number stream. SIMPROCESS has 215 random number streams. It is good practice to assign a
unique random number stream to every distribution. This reduces correlation in the model since this
makes each random draw is independent of all other random draws. Since Stream 1 is the default enter
10 for Stream and click OK. (IMPORTANT: If you use different stream numbers that what is shown in
this tutorial your results will be different from but similar to the results presented in this tutorial.)

Interval should now show Exp(3.0,10). Since the distribution for generating Customer instances is
unique, the frequency of Entity instance generation will not change when other distributions are added
to the model. Select Minutes for Time Unit. The top fields should now be set. One instance of the
Customer Entity Type will arrive every two minutes based on an exponential distribution.

The bottom half of the schedule sets which days and what times of the days the schedule will operate.
Since the store is open every day of the week, Sunday through Saturday should be selected. When a
day is selected the Start Time and End Time fields enable. Enter the store hours for each day. The times

SIMPROCESS Tutorial Manual


Page 43
Chapter 2: Advanced Tutorial

are based on a 24-hour clock so, for example, 9:00 pm should be entered as 21:00:00. Below is the
completed schedule.

Click OK to accept the changes to the Weekly schedule, and then click OK to close the Generate
properties. The scheduling of Customer arrivals is complete.

Trailer Entity Type


Navigate to the Trailer Arrives Generate Activity and edit its properties. Remove the Periodic1 schedule.
Select Calendar from the list of schedule types and click Add. This displays the properties for the
Calendar schedule. Change the default value in the Schedule field to something more meaningful. We
entered Trailer Schedule. For the Entity field select the Trailer Entity Type. The default, use default, is
not valid since the default Entity for the owning Generate Activity is Customer (although the default
Entity could be changed to Trailer). Set the Quantity field to 1 (or 1.0). The default, use default, is valid
in this case since the default Quantity for the owning Generate Activity is 1.0. Under Calendar choose
Weekly for Type. The remaining fields under Calendar change based on what is selected for Type. Since
Weekly was chosen the Day of Week must be selected. Choose Friday for Day of Week and set the
Time portion of Date and Time to 08:00:00 (the Date portion is disabled since this occurs every week).
When entering the time, you can type it in directly or click the detail button to enter the values. The
smallest time values do not have to be entered (unneeded colons can be eliminated). Since this occurs
at 8:00 am, only the value 8 needs to be entered since that is the value for hours. However, for clarity

SIMPROCESS Tutorial Manual


Page 44
Chapter 2: Advanced Tutorial

we entered 08:00:00. Again, the clock is a 24-hour clock so, if the value for hours is greater than 12, use
24-hour clock values. Below is the completed schedule.

Click OK to close the schedule properties, and then click OK to close the Generate properties. The
generation schedule for the Trailer Entity Type is complete.

Schedule Verification
To double check your Entity instance generation properties set the simulation Start and End dates in
the Run Settings. Select Run Settings on the Simulate menu. For now, run the model for six months.
So, for Start enter 01/01/2018 and for End enter 07/01/2018. No other Run Settings need to be
changed at this point.

SIMPROCESS Tutorial Manual


Page 45
Chapter 2: Advanced Tutorial

How many instances of Customer should be expected over a six-month period? The store is open 12
hours per day Monday through Friday, 13 hours on Saturday, and six hours on Sunday. That is a total of
79 hours per week. Since an instance of Customer is generated approximately every three minutes you
should expect approximately 20 instances of Customer every hour (60 minutes per hour / 3 minutes per
Customer). That equates to approximately 1580 instances of Customer every week. Multiplying 1580
Customer instances per week by 26 weeks (six months) you get 41080 Customer instances for the six
months. If all the Activities and Processes are properly connected you should not get any model
verification errors when you attempt to run the model. If you do get model verification errors simply
cancel the simulation (Cancel Simulation) and correct the errors before continuing. When the errors
are corrected run the model again. Turn off animation so the model finishes as quickly as possible.
(Deselect the Display animation button on the System toolbar or deselect the Animation On menu
item on the Simulate menu.)

When the simulation is complete choose View Simulation Results on the Report menu. Replication 1
should already be selected under Select Replication. Select Customer on the Entity tab under Select
Component. This displays the statistics for the Entity Type Customer for replication 1 (the only
replication). Under Results the Total Count tab should already be visible. If not, select it. The Total
Generated row of the table shows 41284 instances of Customer were generated. This is close to the
expected value of 41080.

SIMPROCESS Tutorial Manual


Page 46
Chapter 2: Advanced Tutorial

As an additional verification change the Number of Replications in the Run Settings to 10 and run the
model again. After selecting View Model Results select Avg of All 10 replications then select Customer.
Note the Average value for Total Generated. This is the average of the Total Generated for each of the
10 replications. This value is closer to our expected value of 41080. The number of Trailer Entity
instances generated was 26, one for each week.

SIMPROCESS Tutorial Manual


Page 47
Chapter 2: Advanced Tutorial

Adding Resources and Shifts


You have completed the model flow and added the Entity Types and their generation. Now add the
Resources and their availability.

Defining Resources
Based on what you already know about the store there will need to be customer service representatives
and cashiers. Also, the inventory of the store will be represented by Resources. This store employs a
total of four customer service representatives and four cashiers over two shifts with two customer
service representatives and two cashiers in each shift. So, there are two shifts of employees. Each shift
contains:
• 2 Customer Service Representatives (4 total).
• 2 Cashiers (4 total).

The inventory of the store should be modeled as consumable Resources since once an item is bought, it
is no longer available. Initial store inventory:
• 950 Televisions (consumable Resource)
• 700 Blu-Ray Players (consumable Resource)

There are two shifts: Shift A and Shift B. Shift A contains the following schedule:
• Monday-Friday: available from 9:00 am – 4:00 pm.
• Saturday: available from 9:00 am – 5:00 pm.
• Sunday: available from 12:00 pm – 5:00 pm.
• No lunch break.

Shift B contains the following schedule:


• Monday-Friday: available from 3:00 pm – 10:30 pm.
• Saturday: available from 4:00 pm – 11:30 pm.
• Sunday: available from 3:00 pm – 7:30 pm.
• No lunch break.

The ending times of Shift B are one and one-half hours past closing time. This is because there are still
customers in the store that need to exit the store after closing time. First, define the Resources then
define the Resource Shifts. Select Resources from the Define menu or click the Define Resources
button on the Model toolbar to display the Resource manager.

SIMPROCESS Tutorial Manual


Page 48
Chapter 2: Advanced Tutorial

Click the Add button to define a new Resource. Name the Resource Customer Service Rep A and set the
Units to 2.

Click OK then define Customer Service Rep B with the Units field set to 2. Define Cashier A and Cashier
B with the Units field set to 2. (It is not technically necessary to have A and B Resources for each. You
could just have a Customer Service Rep Resource and a Cashier Resource each with Units set to 4. The

SIMPROCESS Tutorial Manual


Page 49
Chapter 2: Advanced Tutorial

Resource shifts will ensure only the proper amount are available. This example uses A and B Resources
for each shift for statistical purposes.) Then define TV and Blu-Ray Resources with the appropriate initial
quantity and mark them as Consumable. Once complete the Resource manager should look as follows.

Defining Resource Shifts


The Resources are defined so their availability also needs to be defined. This will be done using Resource
Shifts. Select Resource Shifts from the Define menu or click the Define Resource Shifts button on the
Model toolbar to display the Resource Shift manager. Click the Add button to create a new Resource
Shift. After setting the days and hours, select Customer Service Rep A and Cashier A from the Apply
Shift to Resources section.

SIMPROCESS Tutorial Manual


Page 50
Chapter 2: Advanced Tutorial

Follow the same procedure for Shift B selecting Customer Service Rep B and Cashier B.

For both Resource Shifts leave Number of Units Available at the default Evl(Capacity). Capacity is a
System Attribute of Resources that returns the number of units defined for the Resource. Leave Start
Downtime when Resource is Idle selected for Downtime Options. This option ensures the Resource

SIMPROCESS Tutorial Manual


Page 51
Chapter 2: Advanced Tutorial

does not become unavailable while in use. Once complete, the Resource Shift manager should show two
Resource Shifts: Shift A and Shift B.

SIMPROCESS Tutorial Manual


Page 52
Chapter 2: Advanced Tutorial

Setting Activity Properties


Now that the Resources are defined, along with their availability, the Resources need to be assigned to
Activities and the delay times for Activities need to be defined. Here are the details for the Activities.
• Browse Store:
o Duration: 10 minutes.
o No Resource required.
• Purchase Television:
o Ask For Help:
 Duration: None.
 Acquire Customer Service Rep A or Customer Service Rep B.
o Discuss TVs:
 Duration: triangular distribution with a minimum of 2 minutes, mode of 4
minutes, and maximum of 6 minutes.
o Order from Inventory:
 Duration: triangular distribution with a minimum of 1 minute, mode of 3
minutes, and maximum of 5 minutes.
 Acquire TV Resource.
o Service is Finished:
 Duration: None.
 Customer Service Rep is released.
• Purchase Blu-Ray:
o Discuss Blu-Ray Players:
 Duration: triangular distribution with a minimum of 2 minutes, mode of 4
minutes, and maximum of 6 minutes.
 Acquire Customer Service Rep A or Customer Service Rep B.
o Remove Blu-Ray Player from Shelf:
 Duration: 30 seconds.
 Acquire Blu-Ray Resource.
• Purchase Television and Blu-Ray:
o Ask For Help:
 Duration: None.
 Acquire Customer Service Rep A or Customer Service Rep B.
o Discuss TVs and Blu-Rays:
 Duration: triangular distribution with a minimum of 4 minutes, mode of 6
minutes, and maximum of 8 minutes.
o Order from Inventory:
 Duration: triangular distribution with a minimum of 1 minute, mode of 3
minutes, and maximum of 5 minutes.
 Acquire TV Resource.
o Service is Finished:

SIMPROCESS Tutorial Manual


Page 53
Chapter 2: Advanced Tutorial

 Duration: None.
 Customer Service Rep is released.
o Remove Blu-Ray Player from Shelf:
 Duration: 30 seconds.
 Acquire Blu-Ray Resource.
• Pay for Items:
o Duration: triangular distribution with a minimum of 1 minute, mode of 2 minutes, and
maximum of 5 minutes.
o Acquire Cashier A or Cashier B Resource.
• Replenish TV and Blu-Ray Inventory:
o Replenish Inventory
 Replenish TV Resource up to capacity.
 Replenish Blu-Ray Resource up to capacity.

Given this information you need to define durations and assign Resources to the appropriate Activities.
For example, below are the properties for Browse Store. All that is required is 10 be entered for
Duration Value and Minutes be selected for Duration Units. No Resources are required.

In each of the two Ask For Help Get Resource Activities (in Purchase Television and Purchase Television
and Blu-Ray) both Customer Service Rep A and Customer Service Rep B must be assigned. Any One
Member is selected for the Requires option since one unit of either Resource will suffice.

SIMPROCESS Tutorial Manual


Page 54
Chapter 2: Advanced Tutorial

The Activity Discuss TVs in Purchase Television simply requires setting the Duration Value and
Duration Units. Select the triangular distribution from the Duration Value list (Tri) and set the
Minimum, Mode, and Maximum. Set the Stream to 11. Select Minutes for the Duration Units. No
Resource is required since the Resource was obtained in the previous Activity.

SIMPROCESS Tutorial Manual


Page 55
Chapter 2: Advanced Tutorial

Order From Inventory is a Delay Activity that has a Duration and requires a Resource. This Activity
represents the delay to order a television from inventory. Set the Duration Value to Tri(1.0,3.0,5.0,12)
and the Duration Units to Minutes. On the Resources tab assign the TV Resource.

For the Free Resource Activity (Service is Finished) simply select Release all Allocated Resources. This
causes the Entity instance to release the Resource obtained in Ask For Help.

SIMPROCESS Tutorial Manual


Page 56
Chapter 2: Advanced Tutorial

Complete the definition of the remaining Activities. Remember to use a different Stream for each
distribution. (Discuss Blu-Ray Players in Purchase Blu-Ray should use the distribution Tri(2.0,4.0,6.0,13).
Discuss TVs and Blu-Rays in Purchase Television and Blu-Ray should use the distribution
Tri(4.0,6.0,8.0,14). Order from Inventory in Purchase Television and Blu-Ray should use the distribution
Tri(1.0,3.0,5.0,15).) Except for the Replenish Resource Activity in Replenish TV and Blu-Ray Inventory,
the Activities are similar to what you have defined so far. The Replenish Inventory Activity requires two
Replenish Actions, one for the TV Resource and one for the Blu-Ray Resource. Edit the Replenish
Inventory properties. Under List of Replenish Actions on the General tab is a list of consumable
Resources. Either TV or Blu-Ray should already be visible. Select TV and click the Add button. This
creates a new Replenish Action. Simply select Replenish To Capacity and click OK.

Select the Blu-Ray Resource and do the same thing. Once done you should have two Replenish Actions
visible in List of Replenish Actions.

At this point all Activities should be defined with the appropriate properties.
SIMPROCESS Tutorial Manual
Page 57
Chapter 2: Advanced Tutorial

Viewing Model Results


Now run the model to ensure there are no errors and to look at preliminary results. Earlier you set the
simulation start and end dates in the Run Settings so you can just click the Run button. Run with
animation turned on for a while to visually verify all Branch Connectors receive Entity instance traffic.
Also, you can see if Entity instances are getting stuck in a part of the model. Once you are satisfied the
flow is working properly turn off the animation so the model will complete more quickly. Make sure you
save the model before running the simulation. Once the model is complete look at the results to answer
some questions. This will help in understanding what results to use to answer questions about the
process that was modeled. There are two ways to look at the statistics from a simulation run, both on
the Report menu. The first is View Simulation Results, which allows the selection of specific results to
view. The second is the Standard Report (Display Standard Report) which is a full report of all the
statistics collected during the run. The Standard Report was used in the introductory tutorial so we will
use View Simulation Results for this tutorial.

Question 1: On average, how long does a customer wait for service? Select View Simulation Results on
the Report menu. In the dialog that appears Replication 1 should already be selected under Select
Replication. Under Select Component the Entity tab should be selected so click on the Customer Entity
Type. This causes three tabs to display under Results: Total Count, Count By State, and Cycle Time By
State. To answer this question, select the Cycle Time By State tab then select Minutes for Results Time
Unit. Under Total In System the Average value is 20.185. This means that a Customer Entity instance
existed in the simulation an average of 20 Minutes. However, the question asked how long a customer
waited for service. Total In System is broken down into Processing (how long an Entity instance was in
service at an Activity), Wait For Resources (how long an Entity instance waited for Resources so service
could begin), Hold For Conditions (how long an Entity instance was waiting for a condition other than a
Resource), and Traveling (how long an Entity instance spent traversing Connectors). There was no
waiting other than for Resources so the statistic of interest is Wait For Resources. Scroll down to Wait
For Resources. The Average value is 3.405, so the average amount of time a customer waited for service
was 3.4 minutes. Note, though, the Maximum was 62.8 minutes.

SIMPROCESS Tutorial Manual


Page 58
Chapter 2: Advanced Tutorial

Question 2: How busy are the Resources when available, that is, when on shift? Since this is a question
about Resources select the Resources tab under Select Component. There are four tabs in the Results
section: Number of Units By State, Percent Utilization By State, Units Busy By Activity, and Units
Busy By Shift. Select the Customer Service Rep A Resource then the Percent Utilization By State tab.
There are five categories of statistics on the tab: Idle, Busy, Planned Downtime, Unplanned Downtime,
and Reserved. Scroll down to the Busy statistic where you see Average, Std Dev, Minimum, Maximum,
and When Available. The Average value is the percentage of total time that the Resource was busy.
However, the total time includes the time when the Resource was off shift, that is, unavailable. What
you need to know is the percentage of available time that the Resource was busy. That is the value
When Available, which is 73% for Customer Service Rep A.

SIMPROCESS Tutorial Manual


Page 59
Chapter 2: Advanced Tutorial

Simply select the other Resources to find their When Available value for Busy. The values are

Customer Service Rep A – 73% Cashier A – 30%


Customer Service Rep B – 56% Cashier B – 21%

Question 3: What is the average inventory level for TVs? Select the TV Resource and then select the
Number of Units By State tab. This tab has the same statistical categories as Percent Utilization By
State with the addition of Capacity. Capacity tracks number of units of the Resource during the
simulation. This category is only useful for consumable Resources. The Average value is 522, which
means, on average, there were 522 televisions in inventory. The Minimum is 52. So, at some point
during the simulation the number of televisions in inventory was only 52.

SIMPROCESS Tutorial Manual


Page 60
Chapter 2: Advanced Tutorial

Adding Real-Time Plots


As you saw in the previous results the minimum number of televisions in inventory was 52. Store policy
is to always have at least 10% of the maximum inventory in stock. That equates to 140 televisions and
110 Blu-Ray players. You can add a real-time plot to track the inventory levels over the simulation
period. To view TV and Blu-Ray inventory on the same plot you will need to use a Custom Plot. Select
Custom Real-Time Plots on the Report menu. This displays the Custom Real-Time Plots manager. Click
Add to create a new plot. Enter something meaningful in Custom Plot Name, such as TV and Blu-Ray
Inventory. This name does not display on the plot. It is the name of the plot in the Custom Plot manager.
If any of the fields Trace Title, X Axis Label, or Y Axis Label are left blank, default values will be used.
We recommend you enter values meaningful to you. We entered TV and Blu-Ray Inventory for Trace
Title, Time for X Axis Label, and Units of Inventory for Y Axis Label. The values of these fields display
on the plot. At this point the properties should look like the image below.

Next, the values to plot need to be added. Under Select Plot Values are six buttons that represent the
different types of values that can be plotted. You are interested in Resource values so click the Resource
button. In the dialog that appears select the TV Resource and the Capacity value then click the Add
Values button. This adds that value to the plot.

SIMPROCESS Tutorial Manual


Page 61
Chapter 2: Advanced Tutorial

Without closing the dialog select Blu-Ray and Capacity and click the Add Values button. This adds the
Capacity value for the Blu-Ray Resource to the plot. Now you can select Close. The plot properties
should now include two values.

SIMPROCESS Tutorial Manual


Page 62
Chapter 2: Advanced Tutorial

No more needs to be done for the plot to be constructed when the simulation is run. However, if you
want to select the color for each line and the legend label for each line select the values in the list and
use the buttons under Plot Legends to set the color and the legend label. See Setting Legends in
Chapter 5 of Part B of the SIMPROCESS User’s Manual for more information. Hide Plot at Simulation
Start is selected by default. Leave this selected since the simulation runs faster if the plot is not
displayed. Once the simulation is complete you can view the plot. Click OK to complete the addition of
the new plot and then close the Custom Real-Time Plots manager. Save and run the model. The
simulation will run a bit slower with the plot defined. Once the simulation is complete click the Display
Real-Time Plots button on the System toolbar. Select TV and Blu-Ray Inventory and click OK.

It is a bit difficult to see, but the red line, which represents the level of TV inventory, regularly dips
below 140. You can zoom into the lower portion of the plot by clicking on the plot dragging over the
portion that should be zoomed. The image below just shows the portion of the plot from the y axis value
of zero to 200.

SIMPROCESS Tutorial Manual


Page 63
Chapter 2: Advanced Tutorial

This clearly shows the level of the TV Resource dipping below 140 several times. You already knew from
the statistics that the minimum value for Capacity was 52, but you did not know the frequency of
Capacity dropping below 140. A one-time event doesn’t necessarily indicate a change is needed but
regular violations of the store’s inventory policy could indicate a change is required. Notice the levels of
the Blu-Ray Resource never drop below its 10% threshold of 70. These results could lead to a
reevaluation of the reorder policy and/or the inventory policy. Should the store reorder more often? Is
10% of inventory always on hand necessary or would a lower percentage work? To address this issue,
add a delivery of televisions and Blu-Ray players on Tuesday mornings at 8:00 am. Edit the Trailer
Arrives Generate Activity in Replenish TV and Blu-Ray Inventory and add a Calendar schedule. Follow
the same procedure as you used in Trailer Entity Type. Once you have added the schedule for Tuesday
at 8:00 am, run the model again and check the plot. The inventory stays at relatively high levels.

Now that you know the behavior of the inventory levels go to the Simulate menu and deselect Update
Plots. This will improve the performance of the simulation since the plot will not be updated with
simulation results. If you need the plot again later, you can reselect Update Plots.

SIMPROCESS Tutorial Manual


Page 64
Chapter 2: Advanced Tutorial

Adding Resource Costs


Cost is usually a major factor in analyzing business processes. Fortunately, SIMPROCESS includes
Activity-Based Costing (see Resources and Cost in Chapter 3 of Part A of the SIMPROCESS User’s Manual
for a full discussion). Resources can have cost, which SIMPROCESS then uses to accumulate and assign
costs to Entity Types, Activities, and Resources. Consider the following costs for the customer service
representatives and cashiers.

• Customer service representatives:


o Shift A: $12 per hour.
o Shift B: $11 per hour.
• Cashiers:
o Shift A: $10 per hour.
o Shift B: $9 per hour.

These costs are variable costs since the employees are paid based on the number of hours worked. A
weekly, monthly, or yearly salary would be a fixed cost since that is cost no matter how many hours are
worked. Each Resource must be edited to add the costs. Select Resources from the Define menu or click
the Define Resources button on the model toolbar to open the Resource manager. Select the Resource
and click the Edit button. When the Resource properties appear select the Cost tab. Below is the Cost
tab for the Customer Service Rep A Resource.

Under Variable Costs the Cost per Time Unit field contains the value 12.0 and the Time Unit is Hours.
Enter the hourly cost for each Resource. Once you have finished entering all the Resource costs you
need to define the Cost Periods. Cost Periods are used to track costs for time periods. For this model,
SIMPROCESS Tutorial Manual
Page 65
Chapter 2: Advanced Tutorial

you want to use monthly Cost Periods. Cost Periods are set on the Cost Periods tab of the Run Settings.
Select Run Settings on the Simulate menu then choose the Cost Periods tab. Period Frequency
defaults to Quarterly. Change that to Monthly then click OK to accept the changes.

Save and run the model. Once complete select View Simulation Results on the Report menu and
choose the Cost tab under Select Component. The Cost tab is not visible. You must click the arrow next
to the Resource tab and choose Cost to see the Cost tab. There are three entries on the Cost tab:
Resource By Entity, Resource By Activity, and Activity By Entity. When you select Resource By Entity
the Variable Cost and Absorption Cost tabs appear in the Results section. The Variable Cost tab only
shows the variable costs that come from the Variable Costs defined in the Resources. The Absorption
Cost tab includes any Variable Costs plus the Fixed Cost specified in the Resource properties. Since the
Resources in the model do not have Fixed Cost the two tabs will have the same results. The Variable
Cost tab breaks the costs down by Period, Resource, and Entity. If you scroll to the bottom of the table,
you’ll find the Total of all the costs. If you select Resource By Activity or Activity By Entity you’ll find
that the costs are broken out differently but the Total cost is the same. The Total for all the Resources is
49962.46, which is in USD (set on the Cost Periods tab of the Run Settings).

SIMPROCESS Tutorial Manual


Page 66
Chapter 2: Advanced Tutorial

SIMPROCESS Tutorial Manual


Page 67
Chapter 2: Advanced Tutorial

Modifying Resource Requests


So far in the model if a television is purchased only one television is purchased and if a Blu-Ray player is
purchased only one Blu-Ray player is purchased. This is modeled by requesting one unit of the TV
Resource and one unit of the Blu-Ray Resource. What if more than one television or more than one Blu-
Ray player is required? Resource requests can obtain more than one unit of a Resource. Change the
model so customers can purchase one or two televisions and one or two Blu-Ray players. To make this
change you need to edit the Activities that request the TV and Blu-Ray Resources. The Order from
Inventory Activity requests the TV Resource and the Remove Blu-Ray Player from Shelf Activity
requests the Blu-Ray Resource. Edit the Order from Inventory Activity in Purchase Television and select
the Resources tab.

In the Requirements section TV is listed followed by 1.0 in parentheses. This indicates that one unit of
Resource will be acquired. To request more than one unit, click the Edit button. This allows the number
of units requested to be changed. Select the uniform integer distribution (Int) from the Units list. Click
the detail button (three dots) and set Minimum to 1 and Maximum to 2. Enter 16 for Stream.

SIMPROCESS Tutorial Manual


Page 68
Chapter 2: Advanced Tutorial

Once complete the Resource request in the Requirements section should show the new number of
units to obtain.

The Activity Order from Inventory in Purchase Television and Blu-Ray also needs to be changed. Use
Stream 17. The Activities Remove Blu-Ray Player from Shelf in Purchase Blu-Ray and Purchase
Television and Blu-Ray must be changed. Also, use the uniform integer distribution for the Blu-Ray
requests. The Minimum should be 1, the Maximum should be 2, and the Stream should be 18 and 19
respectively.

If not already selected, select Update Plots on the Simulate menu then save and run the model. The
additional delivery of televisions and Blu-Ray players created a higher demand, which means the
inventory levels are now lower but not too low. Deselect Update Plots once complete.

SIMPROCESS Tutorial Manual


Page 69
Chapter 2: Advanced Tutorial

SIMPROCESS Tutorial Manual


Page 70
Chapter 2: Advanced Tutorial

Setting Maximum Wait For Resources


In the results from the previous run the average time a customer waited for help was 4.5 minutes.
(Select View Simulation Results from the Report menu, select Customer in the Select Component
section, and select the Cycle Time By State tab in the Results section. Choose Minutes as the Results
Time Unit and scroll down to the Wait For Resource statistical category.) However, the maximum time
a customer waited for help was 56.6 minutes. Is it likely a customer will wait almost an hour for service?
Certainly, there are times when this is true, but generally this is not the case. SIMPROCESS includes a
feature that allows you to specify the maximum amount of time an Entity instance will wait to obtain
Resources at an Activity. At the bottom of the Resources tab of an Activity’s properties is Maximum
Wait for Resource Time.

By default, the Value is None, which means an Entity instance will wait as long as necessary to obtain
the Resource(s). In our model, though, a customer will not wait an unlimited amount of time. You need
to modify the model so the Maximum Wait for Resource Time is 10 minutes. This must be set at every
Activity that requests a Resource except for the Activities that are acquiring inventory Resources. Below
shows the Ask for Help Get Resource Activity in Purchase Television.

SIMPROCESS Tutorial Manual


Page 71
Chapter 2: Advanced Tutorial

The same change needs to be made to Discuss Blu-Ray Players in Purchase Blu-Ray and Ask For Help in
Purchase Television and Blu-Ray. Also, select Collect Activity Statistics on the General tab of each of
these Activities. Save and run the model then look at the Activity statistics. Select View Simulation
Results on the Report menu and choose the Activity tab in the Select Component section. Most of the
Activity names are disabled. This is because no statistics were collected for these Activities. However,
Discuss Blu-Ray Players is enabled because you selected Collect Activity Statistics on the properties of
the Activity. Click on Discuss Blu-Ray Players. The Entity Count tab in the Results sections shows the
value of Total Not Processed is 405. This statistic gives us the number of Entity instances that left the
Activity without acquiring the required Resources and delaying the required time. (For the Get Resource
Activity the Entity instance simply exits without acquiring Resources.)

SIMPROCESS Tutorial Manual


Page 72
Chapter 2: Advanced Tutorial

Scrolling down the Activity tree you find the two Ask For Help Activities. Ask For Help in Purchase
Television had 735 Entity instances exit without obtaining Resources, and Ask For Help in Purchase
Television and Blu-Ray had 374 Entity instances exit without obtaining Resources.

Maximum Wait for Resource Time is a useful feature, but now your model is invalid. This is because
the Entity instances that exit without obtaining Resources still follow the same model flow. They make
purchases. You need a way to recognize that an Entity instance is exiting an Activity prematurely and
appropriately handle that Entity instance when it exits the Activity. Fortunately, there is a way to handle
this. When an Entity instance exits an Activity due to the Maximum Wait for Resource Time, the Entity
instance System Attribute EndWait is set to TRUE. (See System Attributes in Chapter 1 of Part D of the
SIMPROCESS User’s Manual and Adding Resource Requirements to Activities in Chapter 3 of Part A of
the SIMPROCESS User’s Manual.) To take advantage of this add a Branch Activity after each of the Ask
For Help Activities (Purchase Television and Purchase Television and Blu-Ray) and after the Discuss Blu-
Ray Players Activity in Purchase Blu-Ray. For now, just delete the exiting Connector and insert a Branch
Activity along with a Dispose Activity then connect the Activities. The image below shows the revised
Purchase Television flow.

SIMPROCESS Tutorial Manual


Page 73
Chapter 2: Advanced Tutorial

In the properties of the Branch Activity, under Select Branch Type, choose Attribute. From the
associated list choose Entity.EndWait.

SIMPROCESS Tutorial Manual


Page 74
Chapter 2: Advanced Tutorial

This indicates the Activity will branch based on the value of Entity.EndWait. Since EndWait is a
BOOLEAN System Attribute the only values can be TRUE or FALSE. Next edit the properties of each
Connector that exits the Branch Activity. For the Connector between the Branch and Dispose Activities,
Entity.EndWait should be TRUE since the value TRUE means the Entity instance exited without
obtaining the Resources.

Do the same for the Connector that goes to Discuss TVs except either choose FALSE for the value or
select Otherwise. The revised flows for Purchase Blu-Ray and Purchase Television and Blu-Ray are
shown below.

SIMPROCESS Tutorial Manual


Page 75
Chapter 2: Advanced Tutorial

Adding these Branch Activities that branch on the System Attribute EndWait ensures Entity instances
that do not acquire Resources do not continue in the model flow.
SIMPROCESS Tutorial Manual
Page 76
Chapter 2: Advanced Tutorial

Save and run the model then look at the time customers spent waiting for help. Again, choose View
Simulation Results on the Report menu and choose the Customer Entity Type. On the Cycle Time By
State tab scroll to the Wait For Resources statistics. The Average wait for help was 1.893 minutes and
the Maximum wait was 10.584 minutes. This is certainly good but this improvement came at the cost of
1504 customers leaving the store because they did not receive timely service. (This is the sum of Total
Not Processed for the two Ask For Help Activities and the Discuss Blu-Ray Players Activity.) This
indicates a serious lack in store staffing.

SIMPROCESS Tutorial Manual


Page 77
Chapter 2: Advanced Tutorial

Parameterizing the Resources


“What if” scenarios can be run by varying properties of the model. However, to change a property of the
model you must edit the properties of the item you want to change. Fortunately, though, using user-
defined Attributes most properties can be parameterized. Attributes are simply variables created by the
user that can be used to control model flow, collect specialized statistics, and many other things. (See
User-Defined Attributes in Chapter 1 of Part D of the SIMPROCESS User’s Manual.) The properties you
want to change are the initial Resource units. You have already seen inventory levels can be too high or
too low, and it appears staffing is too low. You need to create Attributes that will set the initial capacity
of each Resource. On the Define menu select Global Attributes or click the Define Global Attributes
button on the Model toolbar. The Global Attribute manager has five tabs: Entity, Entity Type,
Resource, Activity, and Model. The Global Attribute manager allows the creation of Attributes for Entity
instances, Entity Types, Activities, Resources, and the Model. For this exercise, you want to create
Model Attributes so select the Model tab. You need to create a Model Attribute for each Resource.
These Attributes will be designated as Model Parameters (see Model Parameters in Chapter 1 of Part B
of the SIMPROCESS User’s Manual). Click the Add button to create an Attribute. Name the Attribute
NumCustomerServiceA, set the default Value to 2, and select Model Parameter. Leave Mode as
Integer.

When you click OK to save the changes the Attribute will be listed in the Global Attribute manager. You
can create the remaining Attributes by selecting NumCustomerServiceA and clicking the Copy button
or by clicking the Add button again. Create NumCustomerServiceB, NumCashierA, NumCashierB,
SIMPROCESS Tutorial Manual
Page 78
Chapter 2: Advanced Tutorial

NumTVs, and NumBluRays. Attribute names cannot contain any spaces or special characters. The
default Value should be 2 for NumCustomerServiceB, NumCashierA, and NumCashierB. The default
Value for NumTVs should be 950, and the default Value for NumBluRays should be 700. Once complete
the Global Attribute manager should have six Attributes defined.

Now that the Attributes are defined and specified as Model Parameters, the Resources can be modified
to use these Attributes. Select Resources from the Define menu or click the Define Resources button
on the Model toolbar. Edit each Resource and select Evl(1.0) for the Units. Evl is the evaluate function.
Click the detail button (three dots) and remove the 1.0 from the Expression field. Click on the Global
Attributes list and select Model.NumCustomerServiceA then click the Add Selection to Evl button.
This adds Model.NumCustomerServiceA to the Expression field.

Click OK and Units now has Evl(Model.NumCustomerServiceA).

SIMPROCESS Tutorial Manual


Page 79
Chapter 2: Advanced Tutorial

Do the same for each Resource using the corresponding Model Attribute for Evl. The Units for each
Resource should now use Evl with an Attribute as the argument.

Save the model and run the model. Since you have added Attributes designated as Model Parameters
the simulation run will be preceded by a dialog that allows you to set the values for each Model
Parameter.

SIMPROCESS Tutorial Manual


Page 80
Chapter 2: Advanced Tutorial

To change an Attribute’s value simply click on the Value cell, type in the new value, and press Enter.
IMPORTANT: You must press Enter for the new value to be saved.

When a Parameter is selected the Description (if any), Default value, and Mode displays. (The
Description comes from the Comment field on the Attribute properties.) To change a Parameter back
to its Default select the Parameter and click the Reset button. To reset all Model Parameters to their
Default values, click the Reset All button. Enter 3 for NumCustomerServiceA and
NumCustomerServiceB and run the model. Look at the Wait For Resources statistics for the Customer
Entity Type. Because you have set the Maximum Wait for Resource Time these statistics did not

SIMPROCESS Tutorial Manual


Page 81
Chapter 2: Advanced Tutorial

change much. The Average wait dropped from just under 2 minutes to about half a minute, and the
Maximum wait was about 11 minutes, similar to what it was before.

Note, though, the Total Not Processed dropped to 9 for Discuss Blu-Ray Players and dropped to 27 and
11 respectively for each of the Ask For Help Activities. This is significant improvement.

SIMPROCESS Tutorial Manual


Page 82
Chapter 2: Advanced Tutorial

Using Attributes
In the previous section you used Attributes to parameterize the initial quantity of the Resources.
Attributes can also be used to influence the flow of a model or to gather specialized statistics. Assume
the store has a promotion to give away free Blu-Ray players to customers that purchase a 55 inch or
larger television. Assume 25% of the customers that intend to buy purchase one of the larger
televisions. Also, you would like an Attribute to track the number of customers that do not buy anything.
As a subset of this you would also like to know the total number of customers that wanted to buy
something but did not because they had to wait too long. This information already exists but you would
prefer the information in a single value instead of having to sum up values from various Activities. Given
this information you need to create Attributes for these purposes.

Define the Attributes


Open the Global Attribute manager (Define/Global Attributes or the Define Global Attributes button).
On the Entity tab click Add and Name the new Attribute TVType. Select String for Mode and give it the
default Value Normal.

Next, select the Model tab and Add a new Attribute. Name should be NoBuyCount, Mode should be
Integer, and default Value should be 0. Select Standard Report in the Report Requests section so
statistics for the Attribute will be collected. Observation Based should already be selected in the
Statistics Types section.

SIMPROCESS Tutorial Manual


Page 83
Chapter 2: Advanced Tutorial

Also, add MaxWaitCount with the same properties as NoBuyCount. This will track the number of
customers that leave because Maximum Wait for Resource Time was reached.

Use Entity.TVType
Once you have the Attributes defined you need to modify the flow of the model to use these Attributes.
The fact that 25% of the customers buy a large television indicates a Branch Activity will be needed. In
the Purchase Television Process a Branch Activity needs to be inserted after Discuss TVs. This Branch
Activity will use the 25% probability of purchasing a large television. Use an Assign Activity to set the
value of Entity.TVType to Large. TVType is prefixed with Entity to identify it as an Entity instance
Attribute. This time add the Branch Activity to the layout before you delete any Connectors. Name the
Branch Activity (we used Purchase Large TV?) then edit the Connector that exits from Discuss TVs.
Select the End tab and choose the Branch Activity you added from the list of Activities. This changes the
ending Activity of the Connector from Order From Inventory to the just added Branch Activity.

SIMPROCESS Tutorial Manual


Page 84
Chapter 2: Advanced Tutorial

When you click OK the Connector will terminate at the Branch Activity. Add the Assign Activity and
connect the Branch Activity to the Assign Activity and to Order From Inventory. See the flow below.

You must define the Connectors that exit from Purchase Large TV?. The Connector that goes to Assign
TV Type should have a Probability of 0.25 and the other Connector either 0.75 or Otherwise.

SIMPROCESS Tutorial Manual


Page 85
Chapter 2: Advanced Tutorial

You need to also create an Assign action in Assign TV Type. When you edit the properties
Entity.TVType should already be displayed in the list of Attributes. If not, select it. Click the Add
button and enter Large for the Value field.

When you click OK the Attribute assignment action will be listed under Set Attributes.

SIMPROCESS Tutorial Manual


Page 86
Chapter 2: Advanced Tutorial

This assigns the value Large to the Attribute Entity.TVType for every Entity instance that enters this
Activity. This change does not need to be made in Purchase Television and Blu-Ray since you already
know these customers are purchasing a Blu-Ray player. If they purchased a large television they simply
will not be charged for the Blu-Ray player. The point is a Blu-Ray player will be removed from inventory.

Now that the customers that purchased a large television have been identified, after the release of the
customer service representative the customer needs to select their Blu-Ray player. After the Release
Resource Activity Service is Finished add a Branch Activity and a Delay Activity for acquiring the Blu-Ray
Resource.

SIMPROCESS Tutorial Manual


Page 87
Chapter 2: Advanced Tutorial

The Branch Activity should branch on the Attribute Entity.TVType.

The Connector from the Branch Activity to the Delay Activity must have the value Large for the Attribute
Condition.

SIMPROCESS Tutorial Manual


Page 88
Chapter 2: Advanced Tutorial

The other Connector can either have Normal for the Attribute Condition or have Otherwise selected.
The Delay Activity should have a Duration of 30 seconds and request one unit of the Blu-Ray Resource.

Use Model.NoBuyCount and Model.MaxWaitCount


To use the Attributes Model.NoBuyCount and Model.MaxWaitCount to track the number of
customers that do not buy anything you will need to add some Assign Activities at various locations. At

SIMPROCESS Tutorial Manual


Page 89
Chapter 2: Advanced Tutorial

the very first Branch Activity (Make a Purchase? in our model) 30% of the customers are immediately
designated as customers that do not buy anything. Add an Assign Activity between Make a Purchase?
and the Dispose Activity. If you delete the Connector between these Activities to add the Assign Activity
remember to reset the Probability in the new Connector that exits the Branch Activity.

Edit the properties of the Assign Activity, select Model.NoBuyCount from the list of Attributes and click
Add. This displays the Attribute Assignment properties. The Attribute field is disabled. Select + for
Operation and leave Value at 1.0.

When OK is clicked the Attribute assignment action is added to the Assign Activity.

SIMPROCESS Tutorial Manual


Page 90
Chapter 2: Advanced Tutorial

Every time an Entity instance enters this Activity Model.NoBuyCount will be incremented by 1.
However, this is not the only place you need to add an Assign Activity. There are customers that exit
without purchasing anything if they had to wait too long for service. In each Process you added a Branch
Activity and a Dispose Activity to remove instances of the Customer Entity Type that did not acquire
either Customer Service Rep A or Customer Service Rep B because Maximum Wait for Resource Time
was reached. Add an Assign Activity in each Process between the Branch Activity and the Dispose
Activity. The Assign Activity needs to include an Attribute Assignment action that increments
Model.NoBuyCount by 1 and an Attribute Assignment action that increments Model.MaxWaitCount
by 1. Remember to reset the Branch Connector’s branching condition if you delete and recreate the
Connector. The image below shows the modified Purchase Television Process.

SIMPROCESS Tutorial Manual


Page 91
Chapter 2: Advanced Tutorial

These Assign Activities should have two assignment actions: Model.NoBuyCount + 1 and
Model.MaxWaitCount + 1.

SIMPROCESS Tutorial Manual


Page 92
Chapter 2: Advanced Tutorial

Run the Model


Save and run the model with Model.NumCustomerServiceA and Model.NumCustomerServiceB
both set to 3. Since there is now a higher demand for the Blu-Ray players you need to check to see if the
inventory of Blu-Ray players gets too low. You can check this by looking at the Capacity statistics for the
Blu-Ray Resource (again, use View Simulation Results).

The Minimum was 96, which is within the store’s policy of having 10% of the maximum inventory on
hand. Next select the Attribute tab (click on the down arrow next to the tabs and select Attribute). Click
on Electronics Store : NoBuyCount. (The owner of the Attribute is displayed with the Attribute name
following the colon. Since NoBuyCount is a Model Attribute the owner is the model.) There is only one
tab in the Results section, Attribute Value.

SIMPROCESS Tutorial Manual


Page 93
Chapter 2: Advanced Tutorial

The statistic of interest is Maximum. Remember you are using the Attribute to count the number of
Customer Entity instances that do not make a purchase. The Average of the Attribute does not give you
that value. There were 12293 customers that did not purchase anything. Also, check the value of
Electronics Store : MaxWaitCount to see how many Customer Entity instances left without receiving
service.

SIMPROCESS Tutorial Manual


Page 94
Chapter 2: Advanced Tutorial

Creating Distributions
Sometimes the distributions included with SIMPROCESS do not fit your data or you do not know which
distribution fits your data. SIMPROCESS allows the creation of specialized distributions based on your
data. Assume you now have better data on how many televisions and Blu-Ray players are purchased by
customers. You have already modeled a customer buying one or two televisions and one or two Blu-Ray
players. You modeled this with the uniform integer distribution which means there was a 50%
probability of buying one item and a 50% probability of buying two items. Now you can create better
distributions based on actual store data. You now know based on historical data that 90% of customers
only buy one television and the remaining 10% of customers buy two televisions. For Blu-Ray players,
75% of customers buy one Blu-Ray player, 20% buy two Blu-Ray players, and 5% buy three Blu-Ray
players.

Create Attributes
To use this data, you will need some Attributes so begin by defining some Attributes. You need an
Attribute for each Customer Entity instance that specifies how many televisions were purchased, and
you need an Attribute for each Customer Entity instance that specifies how many Blu-Ray players were
purchased. Select Global Attributes on the Define menu or click the Define Global Attributes button on
the Model toolbar. Add two Entity instance Attributes: NumTVs and NumBluRays. Set the Mode to
Integer for both and keep the default Value of 0.

You also need Attributes to track the television profit, Blu-Ray profit, and total profit. Select the Model
tab and add the Attributes TVProfit, BluRayProfit, and TotalProfit Set the Mode to Real for
each and leave the default Value at 0. Make sure you select Standard Report in the Report Requests
section.

SIMPROCESS Tutorial Manual


Page 95
Chapter 2: Advanced Tutorial

Create Distributions
Next, you need to create distributions for how many televisions and Blu-Ray players are purchased
based on the store data. Select Distributions on the Define menu. This displays the Distribution
manager which is used to create Standard, Tabular, and Auto Fit distributions. Select the Tabular tab
and click Add to create a new Tabular distribution for buying televisions. (See Tabular Distributions in
Chapter 5 of Part A of the SIMPROCESS User’s Manual for more information.) Set the Name field to Buy
TVs. Leave Discrete selected for Type, and set Stream to 19. The table contains Probability and Value.
The Probability column contains the cumulative probability of the distribution. The probability of buying
one television is 90%, and the probability of buying two televisions is 10%. Therefore, Probability for
the first row is 0.9 and the Probability for the second row is 1.0 (the Probability for the last row is
always 1.0). The Value cell for row 1 should be 1 since the probability of buying one television is 90%.
Value for row 2 should be 2. You must press Enter after changing a cell’s value for the change to persist.

SIMPROCESS Tutorial Manual


Page 96
Chapter 2: Advanced Tutorial

Click Add again to create a distribution for the number of Blu-Ray players purchased. Since there are
three probabilities you will need to click Add Row to add another row to the table. Enter 20 for Stream.
Use the probabilities given at the beginning of this section to complete the table.

When complete, the Distribution manager should show two distributions on the Tabular tab.

SIMPROCESS Tutorial Manual


Page 97
Chapter 2: Advanced Tutorial

Use the Distributions


Values from each distribution need to be assigned to the NumTVs and NumBluRays Attributes. In the
Purchase Television and Purchase Television and Blu-Ray Processes add an Assign Activity to set the
Attribute Entity.NumTVs.

SIMPROCESS Tutorial Manual


Page 98
Chapter 2: Advanced Tutorial

Edit the properties of the Assign Activity, select Entity.NumTVs from the Attribute list, and click Add.
The distribution Buy TVs is now in the Value list so select that distribution.

Every time an Entity instance enters the Activity a value from the Buy TVs distribution will be assigned to
Entity.NumTVs.

Next edit Order From Inventory to change the Resource request to use the Attribute Entity.NumTVs.
Edit the properties and select the Resources tab. Edit the Resource request. Select Evl(1.0) in the Units
list and then click the detail button (three dots). Add Entity.NumTVs to the Expression field and click
OK. The Units field should now have Evl(Entity.NumTVs).

SIMPROCESS Tutorial Manual


Page 99
Chapter 2: Advanced Tutorial

After the changes are accepted the Resource request will be updated to use Evl(Entity.NumTVs). The
distribution Buy TVs could have been used directly to set the number of Units. However, you are using
the Attribute now since it will be needed for another purpose in the next section of the tutorial.

Add an Assign Activity in Purchase Blu-Ray to assign a value from the distribution Buy Blu-Rays to
Entity.NumBluRays.

SIMPROCESS Tutorial Manual


Page 100
Chapter 2: Advanced Tutorial

The properties of the Assign Activity should include the Attribute assignment.

Edit Remove Blu-Ray Player from Shelf and change the Resource request to use Entity.NumBluRays.

SIMPROCESS Tutorial Manual


Page 101
Chapter 2: Advanced Tutorial

Make these same changes in Purchase Television and Blu-Ray. However, the Assign Activity must also
assign a value to Entity.NumBluRays since Blu-Ray players are purchased in this Process.

Remember to update the Resource request in Order From


Inventory to use Evl(Entity.NumTVs) and the Resource request in
Remove Blu-Ray Player from Shelf to use Evl(Entity.NumBluRays).

SIMPROCESS Tutorial Manual


Page 102
Chapter 2: Advanced Tutorial

Save the model and run it to make sure there are no errors. Check the TV and Blu-Ray Resource
Capacity statistics when complete. You should see a much higher level of TV inventory.

SIMPROCESS Tutorial Manual


Page 103
Chapter 2: Advanced Tutorial

Using Expressions
SIMPROCESS Expressions allow user written code to be executed at certain events before, during, and
after a simulation. This section will introduce you to Expressions and give you an idea of the power of
Expressions. Expressions are written using the SIMPROCESS Expression Language (see Chapter 2:
Expressions in Part D of the SIMPROCESS User’s Manual for more information). The goal for this section
is to use Attributes and Expression to calculate store profit.
• Each Blu-Ray player sold generates $20.00 profit for the store. Remember that some Blu-Ray
players are free (thus, no profit).
• 55 inch or larger TVs generate $100.00 profit for the store.
• Smaller TVs generate $50.00 profit for the store.

You know how many televisions and Blu-Ray players were purchased by each customer because each
Customer Entity instance has the Attributes NumTVs and NumBluRays. For the Entity instances that go
through the Purchase Television Process, Entity.NumBluRays will always be zero, even for those that
get a free Blu-Ray player. For the Entity instances that go through Purchase Blu-Ray, Entity.NumTVs
will always be zero and no free Blu-Ray players are given away, so the value of Entity.NumBluRays is
the number of Blu-Ray players purchased. The Purchase Television and Blu-Ray Process will need to be
modified since you do not know whether a Customer purchased a large television or one of the smaller
televisions. This information was not previously needed. Add the same Activities as used in Purchase
Television to set the Attribute Entity.TVType.

SIMPROCESS Tutorial Manual


Page 104
Chapter 2: Advanced Tutorial

In our example vertices were added to Connectors to get the unique paths. Also, Input and Output Pads
can be moved around an Activity by clicking on a Pad and dragging. Now that you know whether the
television purchased was a large television you can adjust Entity.NumBluRays to account for the free
Blu-Ray player. In this example you are assuming that the customer does not get an extra Blu-Ray player
but one of the Blu-Ray players they were going to purchase is now free. You could add another Assign
Activity after Remove Blu-Ray Player from Shelf that would subtract one from Entity.NumBluRays.
However, given the layout is already busy, use an Expression to do the same thing. Edit the properties of
Remove Blu-Ray Player from Shelf and select the Expressions tab. Select Release Entity and click
Edit. The Release Entity Expression is executed just before the Entity instance exits the Activity. You
want to wait to make this change until just before the Entity instance exits since Entity.NumBluRays
is used to acquire the appropriate number of units of the Blu-Ray Resource. When you edit an
Expression the Expression Editor displays. Type in the following exactly as you see it below. SIMPROCESS
Expressions are syntax and case sensitive.

Entity.NumBluRays := Entity.NumBluRays - 1;

The assignment operator is := and the statement must be followed by a semicolon. Since
Entity.NumBluRays is an Integer Attribute, the number that is subtracted must also be an Integer.
SIMPROCESS does not allow mathematical operations on different types of numbers (for example, you
cannot add a Real number to an Integer number). When done click OK to close the Expression Editor,
and then click OK to close the Activity properties.

SIMPROCESS Tutorial Manual


Page 105
Chapter 2: Advanced Tutorial

Next, navigate to the top level of the model. You need to add an Expression to Pay for Items that will
calculate the profit. This time, though, simply right click on the Activity and choose Accept Entity from
the Expressions item on the contextual menu. Here you will execute Expression code when the Entity
instance enters the Activity. Enter the following:

profit : REAL;

{This calculates TV profit}


IF Entity.TVType = "Large"
profit := FLOAT(Entity.NumTVs) * 100.0;
ELSE
profit := FLOAT(Entity.NumTVs) * 50.0;
END IF;
Model.TVProfit := Model.TVProfit + profit;
Model.TotalProfit := Model.TotalProfit + profit;

{This calculates Blu-Ray profit}


profit := FLOAT(Entity.NumBluRays) * 20.0;
Model.BluRayProfit := Model.BluRayProfit + profit;
Model.TotalProfit := Model.TotalProfit + profit;

This code first defines a local variable named profit of type REAL. An IF statement is used to calculate
TV profit based on the value of the Attribute Entity.TVType. The System Method FLOAT (see Chapter
3: System Methods in Part D of the SIMPROCESS User’s Manual for more information on System
Methods) converts the Integer value of Entity.NumTVs to a Real value. This is necessary since profit is
a REAL variable. The value of profit is then added to Model.TVProfit and Model.TotalProfit.
The same is done for the Blu-Ray players except no IF statement is needed. Curly braces surround
comments.

SIMPROCESS Tutorial Manual


Page 106
Chapter 2: Advanced Tutorial

Save and run the model. When complete select View Simulation Results on the Report menu and
choose the Attribute tab. Select Electronics Store : TVProfit. As with NoBuyCount the statistic of
interest is Maximum. The total profit from television sales is 1,474,900. Next select Electronics Store :
BluRayProfit then Electronics Store : TotalProfit. The Maximum values are 232,580 and 1,707,480
respectively.

SIMPROCESS Tutorial Manual


Page 107
Chapter 2: Advanced Tutorial

Adding Labels
Static and dynamic labels can be added to any layout within a model. See Background Text in Chapter 4
of Part A of the SIMPROCESS User’s Manual for a full discussion. Add a static label on the top layout that
identifies the model as being a model of an electronics store. If not already there, navigate to the top
level of the model. Select the Background Text tool from the Model toolbar and click in the top center
of the layout. This displays the Background Text properties. In the Static Label section enter Electronics
Store. Bypass the Dynamic Label Properties section and go to Font Attributes. Select the Font Name,
Size, and Color for the text entered in the Static Label section.

When you click OK the label will appear on the layout. Click and drag to reposition.

SIMPROCESS Tutorial Manual


Page 108
Chapter 2: Advanced Tutorial

Dynamic labels are labels that change during the simulation. Animation must be turned on as well as
Update Dynamic Labels for labels to update. Both can be controlled from the System toolbar.
Meaningful dynamic labels are usually a combination of a static label and a dynamic label. The dynamic
label is the value that changes and the static label identifies the value. Add labels that show the
changing levels of television and Blu-Ray player inventory. Start with the label for the television
inventory. Again, select the Background Text tool and click on the bottom of the layout just below the
30% No Connector. Enter # for the Static Label. This will be used as a placeholder until the simulation is
run and is replaced with actual values. In the Dynamic Label Properties section enter values for Name
and Id. In our model, we entered TVInventory for Name and 0 for Id. Select Integer for Mode. Notice
that the Width field enables and defaults to 10. Width sets the maximum number of digits to display.
When Real is selected Precision also enables. Precision sets the number of digits to the right of the
decimal point. Also, when Integer or Real is selected the buttons under Set Value enable. Since
inventory is controlled by Resources click the Resource button. Select TV on the left and Capacity on the
right.

SIMPROCESS Tutorial Manual


Page 109
Chapter 2: Advanced Tutorial

When you click OK TV:Capacity will display in the Value field. Set the Font Attributes then click OK.

The label displays on the layout as simply #. Select the Background Text tool again and click to the left of
the dynamic label. Enter TV Inventory: for Static Label, select Right under Alignment, and set the Font
Attributes. Once done it should look like the image below.

SIMPROCESS Tutorial Manual


Page 110
Chapter 2: Advanced Tutorial

Repeat this process adding a dynamic and static label for the Blu-Ray inventory.

SIMPROCESS Tutorial Manual


Page 111
Chapter 2: Advanced Tutorial

You can use the Align feature to improve the appearance by holding down the Control key and selecting
the labels you want to align. Once the labels are selected right click on one of the labels and select the
desired alignment option from the Align menu item under the Layout menu item on the contextual
menu.

Save and run the model with Animation and Update Dynamic Labels selected.

Animation On Update Dynamic Labels On

The labels should change as the inventory changes.

Any form of animation slows the simulation so turn Animation off to have the simulation complete as
quickly as possible.

SIMPROCESS Tutorial Manual


Page 112
Chapter 2: Advanced Tutorial

Modifying Entity Generation


Based on the information given you in the section Schedule Entity Instance Generation, you set up a
Weekly generation schedule that generates an instance of the Customer Entity Type on average every
three minutes during store operating hours. This was an assumption due to lack of actual customer
arrival data. However, you now have data that helps you better model customer arrival. Customer
arrival rates are higher on weekdays when the store opens, around lunch time, and in the evening. Here
is the actual data.

• Monday through Friday 9:00 am to 10:00 am customers arrive on average every 2 minutes.
• Monday through Friday 10:00 am to 11:30 am customers arrive on average every 3 minutes.
• Monday through Friday 11:30 am to 1:30 pm customers arrive on average every 2 minutes.
• Monday through Friday 1:30 pm to 4:30 pm customers arrive on average every 3.25 minutes.
• Monday through Friday 4:30 pm to 9:00 pm customers arrive on average every 1.8 minutes.
• Saturdays and Sundays customers arrive during store operating hours at a regular rate on
average every 2.5 minutes.

You need to modify the Generate Activity to reflect this new information. There are several ways this
can be accomplished. The first way is by using a Cyclical schedule (see Cyclical Schedule in Chapter 2 of
Part A of the SIMPROCESS User’s Manual). However, since you are already familiar with the Weekly
schedule, create multiple Weekly schedules to model the arrivals. Edit the properties of the Generate
Activity and then Edit Customer Schedule. Rename Customer Schedule to Weekend Schedule. Deselect
Monday through Friday and change the mean of the exponential distribution to 2.5.

SIMPROCESS Tutorial Manual


Page 113
Chapter 2: Advanced Tutorial

Copy Weekend Schedule and name the copy Mon-Fri 0900-1000. Deselect Sunday and Saturday and
select Monday through Friday. Change the end time to 10:00:00. Change the mean of the exponential
distribution to 2.0.

Copy Mon-Fri 0900-1000 and name the copy Mon-Fri 1000-1130. Change Start Time to 10:00:00 and
End Time to 11:30:00 for Monday through Friday. Change the mean of the exponential distribution to
3.0.

SIMPROCESS Tutorial Manual


Page 114
Chapter 2: Advanced Tutorial

Copy Mon-Fri 0900-1000 again and name the copy Mon-Fri 1130-1330. Change Start Time to 11:30:00
and End Time to 13:30:00 for Monday through Friday. The mean of the exponential distribution does
not need to be changed.

SIMPROCESS Tutorial Manual


Page 115
Chapter 2: Advanced Tutorial

Copy Mon-Fri 0900-1000 again and name the copy Mon-Fri 1330-1630. Change Start Time to 13:30:00
and End Time to 16:30:00 for Monday through Friday. The mean of the exponential distribution should
be changed to 3.25.

Finally, Copy Mon-Fri 0900-1000 again and name the copy Mon-Fri 1630-2100. Change Start Time to
16:30:00 and End Time to 21:00:00 for Monday through Friday. The mean of the exponential
distribution should be changed to 1.8.

SIMPROCESS Tutorial Manual


Page 116
Chapter 2: Advanced Tutorial

This completes the schedules so you can close the Generate properties by clicking OK. These schedules
used the same stream number (10). This is because they are all for the same Entity Type (Customer) and
none of the schedules operate at the same time.

Save and run the model with the following Model Parameter values:

• Model.NumCustomerServiceA = 3
• Model.NumCustomerServiceB = 3
• Model.NumCashierA = 2
• Model.NumCashierB = 2
• Model.NumTVs = 950
• Model.NumBluRays = 700

Look at the results. As expected the number of Customer instances generated increased. A total of
54862 were generated. The minimum inventory of the TV Resource (Capacity Minimum) was 275, and
the minimum inventory of the Blu-Ray Resource was 48. The total number of customers that left
without receiving service (Electronics Store : MaxWaitCount) was 931, clearly unacceptable.

SIMPROCESS Tutorial Manual


Page 117
Chapter 2: Advanced Tutorial

Optimization
The results obtained after updating the Entity instance generation indicates there need to be changes in
inventory levels and staffing. There were too many televisions in inventory and too few Blu-Ray players
in inventory. Also, the number of customers that left after waiting 10 minutes for service was too high.
You can run the model with various values for the Model Parameters to see what levels of inventory and
what levels of staffing are best. However, SIMPROCESS can examine the options for you to determine
the optimal maximum inventory levels and optimal staffing levels. SIMPROCESS includes OptQuest, an
optimization tool from OptTek. Chapter 4: Optimization of Part E of the SIMPROCESS User’s Manual
describes the optimization capabilities in detail. Define an optimization that will determine the optimal
inventory and staffing.
• Objectives
o Minimize Television and Blu-Ray player inventory
o Minimize employee costs
• Constraints
o The maximum number of customers that leave without service during the six-month run
cannot exceed 100.
o Television inventory cannot drop below 50.
o Blu-Ray player inventory cannot drop below 25.
o The average wait to check out cannot exceed 15 minutes.

The optimization will have two objectives. OptQuest supports multi-objective optimizations. Select
OptQuest from the Tools menu to define an optimization. This displays the OptQuest for SIMPROCESS
properties.

SIMPROCESS Tutorial Manual


Page 118
Chapter 2: Advanced Tutorial

Select Optimization Settings is empty. This list contains the optimizations defined for the model.
Multiple optimizations can be defined for a single model. For now, type in Store Optimization and press
Enter. There is already an objective to optimize on the Objective tab but it does not have a Value to
Optimize. You want to minimize inventory so select Minimize under Set Objective. The buttons under
Set Objective Value allows you to select a value to optimize. Given that you want to minimize total
inventory there are two ways this could be approached. Since the objective can only contain one value
either you need to combine the maximum inventory of televisions and Blu-Ray players into one value or
have an objective for each value. However, since there is already another objective related to
minimizing Resource cost, use one objective for inventory. (Even though there can be more than two
objectives, results can be difficult to interpret if there are more than two objectives.) This means you
must define a Model Attribute that will combine the maximum inventories into one value. Click OK to
close the optimization properties and select Global Attributes from the Define menu. Add the Model
Attribute TotalInventory. Its Mode should be Integer.

Once complete select Model Expressions from the Define menu or click the Model Expressions button
on the Model toolbar. Edit the End Simulation Expression. Type in the following:

Model.TotalInventory := Model.NumTVs + Model.NumBluRays;

You now have a value that represents the total maximum inventory that you can optimize so return to
the optimization properties by selecting OptQuest on the Tools menu. Inventory Optimization should
already be selected. Click the Model Attribute button so select the Value to Optimize. Select
TotalInventory on the left and Value on the right.

SIMPROCESS Tutorial Manual


Page 119
Chapter 2: Advanced Tutorial

When you click OK the value will be set for the objective. Select Max as the statistic type to use.

Click the Add Objective button to add another objective. Use the Resource button to set the Value to
Optimize. Select All Resources on the left and Absorption Cost on the right. This selection considers the
total cost of all Resources. You can do this because the Resources TV and Blu-Ray do not have any costs
assigned. If they did have costs assigned you could not use All Resources as the TV and Blu-Ray costs
would overwhelm any employee costs.

SIMPROCESS Tutorial Manual


Page 120
Chapter 2: Advanced Tutorial

In the objective select Minimize under Set Objective and leave Avg selected. Avg is used since the
model will be run for more than 1 replication.

Next, choose the Decision Variables tab. The decision variables for the optimization consist of the
Model Parameters of the model.

SIMPROCESS Tutorial Manual


Page 121
Chapter 2: Advanced Tutorial

Set Lower Bound to 2 and Upper Bound to 4 for NumCustomerServiceA and


NumCustomerServiceB. Set Lower Bound to 1 and Upper Bound to 3 for NumCashierA and
NumCashierB. Use a Step Size of 1 for each of these. Also, for NumTVs, enter 0 for Lower Bound, 1000
for Upper Bound, and 100 for Step Size. For NumBluRays enter 0 for Lower Bound, 900 for Upper
Bound, and 100 for Step Size. The Lower Bound, Upper Bound, and Step Size tell the optimization how
to vary the value from iteration to iteration. For example, the value for NumTVs can vary from 0 to 1000
in increments of 100. A smaller Step Size yields more accurate results but increases the number of
iterations needed to find an optimal solution. This exercise has a larger Step Size for the inventory
values to reduce the number of iterations required to find an optimal solution. Remember to press
Enter after changing the value of a table cell.

SIMPROCESS Tutorial Manual


Page 122
Chapter 2: Advanced Tutorial

This completes the changes required for Decision Variables so select the Constraints tab. There are the
usual buttons under Add Constraint with an additional Expression button. Your constraints are only
value constraints. The first constraint is that the number of customers over the six-month run of the
simulation cannot exceed 100. The Model Attribute MaxWaitCount tracks the number of instances of
Customer that exit without receiving service so click the Model Attribute button. Select MaxWaitCount
on the left and Value on the right.

When you click OK the constraint appears. Select Max since this Attribute is keeping a count. Enter 100
for Upper Bound. You can leave Lower Bound empty.
SIMPROCESS Tutorial Manual
Page 123
Chapter 2: Advanced Tutorial

The second constraint is the number of televisions in inventory cannot drop below 50. Click the
Resource button and choose TV on the left and Capacity on the right. On the constraint select Min and
enter 50 for Lower Bound. You can leave Upper Bound empty.

Add the third constraint for the Blu-Ray Resource. Its Lower Bound is 25.

SIMPROCESS Tutorial Manual


Page 124
Chapter 2: Advanced Tutorial

To add the fourth constraint, click the Activity button. Select Pay for Items on the left and Entity Wait
Time on the right.

In the resulting constraint leave Avg selected since you are concerned with the average time a customer
waits to check out. Enter 0.25 for Upper Bound. Since the Simulation Time Unit in the Run Settings is
set to Hours the statistic will be collected in Hours. Fifteen minutes is 0.25 hours.

SIMPROCESS Tutorial Manual


Page 125
Chapter 2: Advanced Tutorial

This completes the definition of the constraints. Ignore the Monitored Values and Process Alternatives
tabs for now. Select the Run Options tab. The Number of Replications per Simulation is 1. This
indicates that the results from one replication will be used by the optimization. Typically, simulations
should be run for multiple replications so change this value to 2 (this is usually not enough replications
but keep the value low so the optimization runs faster). See Run Settings in Chapter 6 of Part A of the
SIMPROCESS User’s Manual for more information on running a model for multiple replications.
Maximum Iterations is the maximum number of combinations of Decision Variable values that
OptQuest will run. Set the value to 200. There are 3 possible values each for NumCustomerServiceA,
NumCustomerServiceB, NumCashierA, and NumCashierB. There are 11 possible values for NumTVs
and 10 possible values for NumBluRays. This means there are 8910 (3 x 3 x 3 x 3 x 11 x 10) possible
combinations which means the optimization could run for up to 8910 iterations. You have specified 200
iterations. Once iteration 199 is finished you will be asked if you want to increase that number. Do not
do that as running just 200 iterations will take a good bit of time. Also, since this is a multi-objective
optimization you will not get a single best answer. Running 200 iterations should give several possible
solutions. Therefore, you should enter 3 for Number of Best Iterations to track.

Click Start to begin the optimization. You will be asked if you want to save and close the model and start
the optimization. Select Yes. The model window will close and after a brief pause the optimization
interface will appear. Optimizations run the model in the background. The optimization interface
displays the status of the optimization. See OptQuest for SIMPROCESS Interface in Chapter 4 of Part E of
the SIMPROCESS User’s Manual for an explanation of the interface. The image below shows the results
after four iterations. Only TotalInventory:Value is plotted. The values are red because the solutions
were infeasible, that is, the constraints were not satisfied.

SIMPROCESS Tutorial Manual


Page 126
Chapter 2: Advanced Tutorial

Below is the plot after 23 iterations. Notice that the Best Objective Value became feasible in iteration 9.

If both Objective values have Plot selected the plot changes to a Pattern Frontier. When there is more
than one objective OptQuest produces a pattern frontier. The pattern frontier approach finds the set of
solutions that are optimal, rather than a single optimal solution. The frontier points are the solutions for
which no improvement can be made in one objective without making another objective worse. See the
Pattern Frontier section of Multi-Objective Optimization for a fuller description. The image below shows
SIMPROCESS Tutorial Manual
Page 127
Chapter 2: Advanced Tutorial

the Pattern Frontier after 158 iterations. There are two points at which an improvement in one objective
could not be made without making the other objective worse. Notice the Best Value column in each
table contains N/A.

The image below shows the optimization stopped after 200 iterations. The Best Value column of each
table now contains Select Iteration.

SIMPROCESS Tutorial Manual


Page 128
Chapter 2: Advanced Tutorial

Clicking on the Best Value cell for TotalInventory:Value reveals the Best Value for two iterations, 11
and 12. The number before the colon is the iteration and the number after the colon is the value of
TotalInventory.

Clicking on the Best Value cell for AllResources:Absorption Cost reveals the values 65576.53775 and
65798.47901 for iterations 11 and 12 respectively. Selection of an iteration from any Best Value cell will
reveal the Best Value for that iteration in every table. Since the difference between the values for All
Resources:Absorption Cost is 222, and since there is a significant cost to holding inventory, select
iteration 12. It had the lower value for TotalInventory:Value (1400).

The Best Value for Model.NumCustomerServiceA and Model.NumCustomerServiceB was 4. The


Best Value for Model.NumCashierA and Model.NumCashierB was 3. Scrolling down you can see the
Best Value for Model.NumTVs and Model.NumBluRays (700 each). (You may have to select the
iteration again as those values were hidden when the table was updated by the previous iteration
selection.) These values can be applied to the model by selecting Apply Best Values to Model on the
File menu. A confirmation message will appear when complete.

SIMPROCESS Tutorial Manual


Page 129
Chapter 2: Advanced Tutorial

Open the model in SIMPROCESS and run it. Notice in the Model Parameters the values for each
Parameter matches the values from the optimization.

Note: The model Inventory.spm in the Demos directory has a more detailed optimization of inventory
levels, inventory reorder points, and inventory reorder quantities. It includes a two objective
optimization. See Inventory Model in Chapter 3 of the SIMPROCESS Getting Started Manual for a
description.

SIMPROCESS Tutorial Manual


Page 130
Chapter 2: Advanced Tutorial

Summary
This tutorial was rather extensive but the goal was to take you on one possible route from building a
model to using a model for analysis. The scenarios were contrived to allow you to experience more of
the features of SIMPROCESS. You should be gaining a greater awareness of the power of SIMPROCESS.
SIMPROCESS can greatly assist in analyzing most any business process, but the capabilities of
SIMPROCESS are irrelevant if the model and/or data does not reflect reality.

We recommend you review the demonstration models in the Demos directory (see Chapter 3:
Demonstration Models in the SIMPROCESS Getting Started Manual). There are many powerful features
not covered in this tutorial that are demonstrated in these models, including interfacing with
spreadsheets and databases. Versions of this tutorial model (Electronics Store.spm) are in the
Advanced Tutorial directory in the Demos directory. Also, there are models that demonstrate
various SIMPROCESS Expression Language features in the ExpressionDemos directory. Within that
directory is the file SIMPROCESS Expression Demo Models.pdf that gives a description of each
model.

SIMPROCESS Tutorial Manual


Page 131

You might also like