Release 2, Sprint 40

This sprint provides a large number of new features including significant enhancements to the
Experiment Window and the Response Charts window, a new Worker object in the standard
library, enhancements to Vehicles, Resources, Data Tables, the Source object, enhanced
documentation, thirteen new or updated SimBits, and OptQuest evaluation software (Beta)
tightly integrated into the Experiment Window.

Experiment Window

Two types of Constraints have been added. Input Constraints identify expressions that can
be evaluated before a run and possibly prevent a scenario from being executed (or sometimes
even generated). Output Constraints identify expressions that are analyzed after a run and can
mark results as invalid if they are out of range. Simio automatically determines if a constraint is
an input or output constraint. Ribbon buttons are available to add and remove constraints.

Algorithms by Dr. Barry Nelson have been implemented to assist with automatic Ranking
and Selection of the best scenarios for a particular response. Often it is hard to determine a
clear “best” with statistical rigor. In that case the group of scenarios which contain the best
scenarios will be distinguished from those that are not the best. This same algorithm is used in
the response charts (see below).

Response Charts

We have taken advantage of state-of-the-art research in output analysis to build in a graphical
tool to help you analyze and compare scenarios. We have extended recent developments by
Dr. Barry Nelson to generate SMORE Plots (Simio Measure of Risk & Error) to display both the
expected value of a scenario and multiple levels of variability behind the expected value.

A Raw Data Tab allows you to view the full analysis data in a tabular format.

Worker Object

A Worker Object was added to the Standard Library to make it easier to model typical activities
associated with people. A Worker may be used as a moveable resource that is seized and
released for process tasks in the system. Additionally, the worker object may be used as a
transporter to transport entities between node locations. Workers can follow shift schedules and
they have a full set of states to allow tracking and analysis of their activities.

Each Worker object instance defines a dynamic population of moveable unit resources in the
modeled system. Each individual worker in the population may have a resource capacity of 0
(Off Shift) or 1 (On Shift). A worker/vehicle can follow an On Shift/Off Shift work schedule or
always be available (i.e., have a ‘Fixed’ capacity of 1).

Use the Seize and Release steps to seize or release a Worker for a process task. Upon seizing
a worker object, you may use the ‘Request Visit’ option in the Seize step (Advanced Options)
to optionally require the seized worker to visit a specified node location before the seize is
considered ‘completed’.

Refer to the two new Worker-related SimBits: ‘WorkerUsesWorkSchedule’
and ‘WorkerUsedForMultipleTasks’

Vehicle Object

We have added both major and minor enhancements to the Vehicle object. Within the
properties window many of the properties have been relabeled and reorganized for both clarity
and consistency with other similar objects. The somewhat confusing Idle Action of ‘None’
was changed to the clearer ‘Remain In Place’. Two new add-on process triggers were added
('Allocated' and 'Released') to allow better control and the 'Allocated' and 'Released' events fired
by the vehicle were made public. We have added new states and state tracking to provide better
analysis of vehicle activities. The ‘ResourceState’ state variable for the Vehicle object now
tracks the possible state values:

Idle - The vehicle resource is not allocated to any task.

Busy - The vehicle resource has been seized by another object in the system for non-
transport related tasks.

Transporting - The vehicle resource has been allocated to a set of transport tasks.

Failed - The Vehicle is failed and unable to move or perform transport pickups/drop-offs.
Any transport or non-transport related processing using the vehicle resource has been
assumed suspended or blocked.

FailedBusy - The vehicle has failed while seized by some other object in the system for a
non-transport related task, but the task is assumed unaffected by the vehicle failure because
the vehicle has already been moved to the task’s desired location.

Source Object

We have added a new Table Reference Assignment category to the standard library source
object. This allow you to associate a particular row and table with an entity that is about to be
created or an entity that has just been created, without having to use process logic. This also
makes it easier to create entities where the distribution of entity types is specified in a table. See
the SimBit ‘SelectEntityTypeFromTable.spfx’ for an example.

Resource Object

We have added new states and state tracking to provide better analysis of resource activities.
The ResourceState now has the following possible state values:

Idle - The resource is not allocated to any task. Busy - The resource has capacity allocated to one or more tasks. Failed - The resource is failed and not allocated to any tasks. OffShift - The resource is off shift and not allocated to any tasks. FailedBusy - The resource is failed but allocated to one or more tasks and still assumed ‘Busy’
though failed. OffShiftBusy - The resource is off shift but allocated to one or more tasks and still
assumed ‘Busy’ though off shift.

The ‘FailedBusy’ and ‘OffShiftBusy’ states are new. At the beginning of a failure or off-shift
period for the Resource object, if the resource is allocated to process tasks, then by default
the resource is now considered ‘Busy’ during that time and its state is set to ‘FailedBusy’
or ‘OffShiftBusy’ respectively. The downtime period begins immediately, and no new seizes
of the resource may take place, but by default any processes out in the system utilizing the
resource are assumed to not be affected and will finish their processing. Refer to the new
SimBit ‘ResourceStateWhenOffShift’.

To interrupt processes utilizing a resource when a downtime period begins, you may add your
own custom logic using tools such as the Interrupt step to preempt and release the resource
during the downtime period.

SimBits

The following new SimBits were added:

ExamplesOfFunctions_StaticObjects

ExamplesOfFunctions_DynamicObjects

UsingAStorageQueue

ResourceStateWhenOffShift

AddAndRemoveCapacity

MovementInFreeSpace_WithATargetLocation

WorkerUsesWorkSchedule

WorkerUsedForMultipleTasks

The following SimBits were updated to illustrate new techniques:

EntityFollowsSequenceWithTable

EntityFollowsSequenceWithTable2

InterruptingServerWithMultipleCapacity

SelectEntityTypeFromTable

SortingConveyorSystem

ModelEntity Object

We made some minor changes within the properties window to improve both clarity and
consistency with other similar objects.

Tables

When using the relational data tables feature, we have added a new viewing option, a Master-
Detail View. For things with “detail” views (collections of rows pointing to a specific keyed row in
a table), you’ll see a little plus sign at the front of the row you can use to see the detail view. The
detail view essentially allows you to view the associated rows of the related table. The detail
view can be edited just like the main view (insert, remove rows, edit rows, copy/paste, etc…).

New Help Topics

In addition to continually enhancing our help and reference materials to describe new and
revised features, we are continually improving our general content to better explain concepts
that users have found confusing. Here are some new topics added to help better explain the
available functions, states and events:

Functions, States and Events for Entity Objects

Functions, States and Events for Objects Enabled as Resources

Functions, States and Events for Node Objects

Functions, States and Events for Link Objects

Functions, States and Events for Transporter Objects

Also please refer to the two new SimBits: ‘ExamplesOfFunctions_StaticObjects’ and
‘ExamplesOfFunctions_DynamicObjects’.

User Interface

A new keyboard shortcut (‘Ctrl’ + ‘+’) was put in to insert rows into any data grid where items
can be added (e.g. things like tables and lists).

Resized Entity Object Symbols

The size of the default entity has been reduced to better reflect sizes of typical entities.

OptQuest (Beta)

OptQuest is offered for Simio as an optional add-on to the standard Simio products. OptQuest
enhances the analysis capabilities of Simio by searching for optimal solutions to your models.
OptQuest helps remove some of the complexity by automatically searching for the optimal
solution for you. You describe your simulation problem and it searches for input controls to
maximize or minimize your objective (i.e. maximizing profit or minimizing cost).

Although the full use of OptQuest for commercial use requires activation, the included
evaluation mode allows up to two controls and two constraints, and will produce a up to 20
scenarios.

Look in the Experiment Window of the AirportTerminal example model for an example of
applying OptQuest to a realistic project.