OptQuest For Arena User's Guide
OptQuest For Arena User's Guide
OptQuest For Arena User's Guide
USERS GUIDE
PUBLICATION ARENAO-UM001H-EN-PJanuary 2012
Supersedes Publication ARENAO-UM001G-EN-P
PN-111653
Contact
Copyright Notice
Trademark Notices
Other Trademarks
Warranty
ii
Contents
1 Welcome to OptQuest for Arena
2 Getting Started
1
1
2
3
3
3
3
4
4
4
5
5
19
19
21
22
22
22
23
24
25
25
25
27
27
iii
Starting OptQuest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting controls to optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controls Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Identifying responses to include as expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraints Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting the objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting optimization options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optimization Stop options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Replications per simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solutions Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Suggested Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running the optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Start and Stop commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optimization window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Best Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Refining the solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
28
28
28
30
31
31
33
34
34
34
35
35
35
37
37
37
39
40
43
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Factors that affect search performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Number of controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initial values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Suggested solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bounds and constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraints with varying bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Complexity of the objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Feasibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Number of replications and simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulation accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulation speed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Designing your model for optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
44
44
45
45
46
46
47
47
47
47
48
49
Index
51
Intended audience
OptQuest for Arena is designed for manufacturing or business process consultants
and analysts and industrial or systems engineers. It is typically deployed as an
enterprise business analysis and productivity tool.
We assume that you are familiar with the basic concepts and terms used in these types
of systems. You are interested in improving business or manufacturing productivity
and are responsible for evaluating and predicting the impact of proposed strategic and
tactical changes to help improve performance. A familiarity with computers and the
Microsoft Windows operating system is assumed. A familiarity with the concepts
and terms used in simulation is also helpful.
Not all application templates or user-defined templates are suitable for optimization
using OptQuest.
CONVENTIONS
Throughout the guides, a number of style conventions are used to help identify
material. New terms and concepts may be emphasized by use of italics or bold; file
menu paths are in bold with a (>) separating the entries (for example, go to Help >
Arena Help); text you are asked to type is shown in Courier Bold (for example, in
this field, type Work Week), and dialog box and window button names are shown in
bold (for example, click OK).
Get help
Online help is always at your fingertips! A separate help structure is available in
OptQuest for Arena to guide you with your optimization efforts. See the Help table of
contents and index for a list of all help topics.
(for users on active maintenance) a technical support hotline and e-mail address
staffed by full-time, experienced professionals
help with installation problems or questions related to the softwares requirements
troubleshooting
limited support regarding the interaction of Arena with other programs
support of the Arena Object Model, which is used in Microsoft Visual Basic for
Applications.
3
If you call the support line (1.440.646.3434), be at your computer and be prepared to
give the following information:
Get training
Do you need training? Rockwell Automation offers a standard training course
consisting of lectures and hands-on workshops designed to introduce you to the
fundamental concepts of modeling with Arena.
We also offer customized training courses designed to meet your specific needs.
These courses can be held in our offices or yours, and we can accommodate one
person or twenty. You design the course thats right for you! Simply contact our
consulting services group to discuss how we can help you achieve success in your
simulation efforts.
Contact us
We strive to help all of our customers become successful in their process
improvement efforts. Toward this objective, we invite you to contact your local
representative or Rockwell Automation at any time that we may be of service to you.
Support E-mail: [email protected]
Support Phone: 1.440.646.3434 (options 3 & 7)
General E-mail: [email protected]
U. S. Sales Phone: 1.724.741.4000
URL: www.ArenaSimulation.com
URL: www.rockwellautomation.com
Getting Started
How OptQuest works
Recent developments in the area of optimization have allowed for the creation of
intelligent search methods capable of finding optimal or near-optimal solutions to
complex problems involving elements of uncertainty. Often, optimal solutions can be
found among large sets of possible solutions even when exploring only a small
fraction of them. OptQuest is the result of implementing these search technologies in
combination with simulation models built for Arena.
Once the optimization problem is described (by means of selecting controls, the
objective, and possibly imposing constraints), Arena is called every time a different
set of control values needs to be evaluated. The optimization method used by
OptQuest evaluates the responses from the current simulation run, analyzes and
integrates these with responses from previous simulation runs, and determines a new
set of values for the controls, which are then evaluated by running the Arena model.
This is an iterative process that successively generates new sets of values for the
controls, not all of them improving, but which, over time, provides a highly efficient
trajectory to the best solutions. The process continues until some termination
criterion is satisfiedusually stopping after a number of simulations or when the
OptQuest determines the objective value has stopped improving. Its ultimate goal is
to find the solution that optimizes (maximizes or minimizes) the value of the models
objective.
Once OptQuest exits, the controls in the Arena model are returned to their original
default values. The Arena model is completely unaffected by OptQuest.
summary sheet, while selecting the subcategory displays the editing window for the
selected node.
Some individual nodes in the tree will display a right-click context menu option.
Each represents an action that is specific to the tree item (not all nodes have a context
menu). For example, a right-click on Controls displays either Expand or Collapse,
depending on the tree status, while a right-click on Constraints or Objectives displays
an Add New option.
The columns on each summary sheet may be reordered simply by clicking the
heading of the chosen column.
Any entry made to an edit window is saved when you click OK, even if it is invalid.
If you enter invalid information, a warning flag ( ) is displayed on the summary
sheet as well as marking the location of the error on the individual edit window. Once
a window contains a valid entry, the error flag will disappear.
2 GETTING STARTED
Lower Bound
Current Staffing
Upper Bound
Ticket Takers
The decision problem is to address how to staff each function considering the limit on
the total number of people.
To begin the first tutorial:
1. Start Arena.
2. Open the Movie Theater Design.doe model from the Arena Examples folder.
Before running OptQuest, determine the decision resources and variables. In this
model, the staff performing each function are defined as resources in the modules.
The capacities of the resources will be used as controls (that is, values to vary in
different scenarios) in our optimization study.
Running OptQuest
To run OptQuest for the Movie Theater Design model:
1. Start OptQuest from Arena by selecting Tools > OptQuest for Arena.
This will open the initial OptQuest window.
2. Select New Optimization.
When you start a new file, OptQuest presents the first of the main configuration
windows. We will open these windows in a specific order in this tutorial, but you
can revisit any window from the tree pane or by choosing from the selections on
the View menu.
First, the Controls Summary window opens showing a grid of variables and
resources from the Arena model.
3. Select controls for the optimization.
Select the MAIN REFRESHMENT STAFF, SATELLITE REFRESHMENT
STAFF, and TICKET TAKERS for optimization by clicking on their
corresponding Included check box.
4. Modify bounds and suggested values for each of the Resource controls by doubleclicking the row or by selecting the named control in the tree view.
Adjust the upper bounds for MAIN REFRESHMENT STAFF and SATELLITE
REFRESHMENT STAFF to match the ones given in the previous table.
5. Next well open the Responses Summary window by selecting the Responses node
from the tree view or clicking View > Responses to show the resulting values or
outputs from the Arena simulation. This output cannot be modified; however,
management wants us to maximize net profits, so we want to select the Net Profit
variable by checking the corresponding box in the Included column. Reorder the
list by clicking the Included header until Net Profit is at the top of the grid.
6. Select the Constraints node from the tree view or click View > Constraints to
display the Constraint Summary grid.
Since the total staff should not exceed eight people, we must add a constraint to
limit the search to solutions that satisfy this management restriction.
Click Add to insert a constraint named Constraint 1 to represent Total Staff.
You may type Total Staff in the Description field.
10
2 GETTING STARTED
Next click the Sum All Controls button from the controls on the right side of the
window. Modify the Expression line by selecting <= and typing 8 to complete the
entry. The new entry should read as follows:
1 * [Main Refreshment Staff] + 1 * [Satellite Refreshment Staff] + 1 *
[Ticket Takers] <= 8
11
7. Next well define the objective, so select the Objectives node from the tree or
click View > Objectives.
As previously stated, management wants to maximize net profits. To accomplish
this, well use the maximum of the Net Profit variable as the objective in our
optimization model.
To define the objective, click Add Objective. (Well accept the default name.)
For the Expression field, select the Net Profit variable from the window above.
You can confirm the validity of the expression by clicking Check Expression. Be
sure to select the Maximize field.
12
2 GETTING STARTED
8. To set various optimization options, select the Options node from the tree view or
click View > Options.
For the Movie Theater Design tutorial, well accept the default settings and will
simply click Optimize to run the optimization. (Details of the Options settings
will be addressed in Chapter 4.)
While the optimization is running, the Optimization pane shows the progress of
the search. The grid at the top displays the best objective value found so far as
well as the objective value for the current solution. The Controls grid displays the
values for each control for the best solution and the current solution. If you have
defined constraints, the Constraints grid will tell you if the best solution satisfies
the constraint (feasible) or violates the constraint (infeasible).
13
The graph at the bottom plots the best objective value for each simulation.
At the completion of the optimization, the 25 best solutions are displayed. The
first row in the grid will be the best solution; the second row, the second best
solution; and so on. In the Movie Theater Design example, an optimal solution
was found.
14
2 GETTING STARTED
You can examine a particular solution in more detail by selecting the solution in the
grid and clicking the View button. You will see the details of each solution you
choose, including the values for any constraints you defined.
Note that the first solution examined by OptQuest consists of the initial values of the
controls in your model; different initial values may result in different sequences of
solutions as well as the best-identified solution. Thus, your results may not be exactly
the same as those shown above. For this optimization, we see that the best staffing is
two workers in the main refreshment stand, three workers in the satellite refreshment
stand, and two ticket takers, with an objective value of $1150.83 of net profit.
15
Running OptQuest
To run OptQuest for the Movie Theater Design model:
1. Start OptQuest by selecting Tools > OptQuest for Arena.
This will open the initial OptQuest window.
2. Select Browse. Move to the Examples directory in your Arena folder and open
file Movie Theater Design1.opt.
3. When the optimization file opens, select Responses from the tree view, or select
View > Responses from the toolbar to display the Responses Summary grid.
From the User-Specified Count responses, check the items for Number leaving
ticket line and Number leaving food line. Reorder the list by clicking in the
Included header to bring the checked items to the top.
4. Now that weve identified these new response criteria, well add two new
constraints to define the requirements for the numbers leaving each line. Our goal is
to have no customers leave the ticket line and fewer than eight leave the food line.
Under the Constraints node, for each new constraint, youll right-click to Add
New. Enter a new line for each of the following constraint names and expressions:
Constraint 2; Expression [Number leaving food line] <= 8
Constraint 3; Expression [Number leaving ticket line] = 0
16
2 GETTING STARTED
The Constraint Summary grid should look like the image below.
5. We will not change the Options settings, so you may press the Start icon on the
toolbar or select Run > Start Optimization to begin the optimization.
When this optimization is run, the first solutions are infeasible; they violate one or
more of the constraints. Infeasible solutions are plotted as dashed red lines on the
Objective Values chart, while feasible values are plotted as solid green lines.
OptQuest always places a higher value on feasible solutions (solutions that satisfy all
constraints).
Under this new optimization, although most of the solutions were infeasible, the
optimization found a feasible best solution that has a net profit of $1138.16. By
rearranging the staff to have two workers in the main refreshment area, four workers
in the satellite area, and two ticket takers, we can meet our requirements to have no
customers leave the ticket line and fewer than eight leave the food line.
17
Constraints
Objective
19
The solution to an optimization model provides a set of values for the controls that
optimizes (maximizes or minimizes) the associated objective. If the world were
simple and the future were predictable, all data in an optimization model would be
constant (making the model deterministic), and you could use techniques such as
linear or nonlinear programming to find optimal solutions.
However, a deterministic optimization model cant capture all the relevant intricacies
of a practical decision environment. When model data is uncertain and can only be
described with probabilities, the objective is not represented by a single value but
rather by a probability distribution that varies with any chosen set of values for the
controls. You can find an approximation of this probability distribution by simulating
the model using Arena.
An optimization model with uncertainty has several additional elements:
20
Assumptions
Responses
Response Statistics
OptQuest methodology
OptQuest is a generic optimizer that makes it possible to separate successfully the
optimization solution procedure from the simulation model. This design adaptation of
meta-heuristic methods lets you create a model of your system that includes as many
elements as necessary to represent the real thing accurately. While the simulation
model can change and evolve to incorporate additional elements, the optimization
routines remain the same. Hence, there is a complete separation of the model that
represents the system and the procedure that solves optimization problems defined
within this model.
The optimization procedure uses the outputs from the simulation model to evaluate
the inputs to the model. Analyzing this evaluation and previous evaluations, the
optimization procedure selects a new set of input values. The optimization procedure
performs a special non-monotonic search, where the successively generated inputs
produce varying evaluations, not all of them improving, but which over time provide
a highly efficient path to the best solutions. The process continues until it reaches
some termination criterion (usually a time limit).
21
Constraints
A constraint defines a relationship among controls and/or responses. For example, if
the total amount of money invested in buying equipment must not exceed $50,000,
you can define this constraint as:
20000*Equipment1 + 10000*Equipment2 <= 50000
Here, we assume that each piece of Equipment1 costs $20,000, while each piece of
Equipment2 costs $10,000. OptQuest only considers combinations of values for the
two equipment purchases whose sum is no greater than $50,000.
Consider the following example. In a service environment, a manager wants to
impose a condition that limits the maximum time spent in queue. This quantity is a
response (that is, measured as a simulation output). After selecting appropriate values
for the controls, OptQuest must open Arena to run a simulation and determine
whether or not the current trial solution is feasible with respect to the time-in-queue
constraint.
OptQuest differentiates between linear constraints and nonlinear constraints. Linear
constraints describe a linear relationship among controls. The budget constraint for
purchasing equipment is an example of a linear constraint. A nonlinear constraint
contains a nonlinear expression or a response. The constraint limiting the time spent
in a queue is a nonlinear constraint. OptQuest can evaluate linear constraints without
running an Arena simulation. Nonlinear constraints can only be evaluated by running
a simulation. A solution that satisfies all constraints is considered a feasible solution.
If one or more of the constraints is violated, the solution is infeasible.
Not all optimization models need constraints; however, those that do must deal with
the distinction between a feasible and an infeasible solution.
A feasible solution is one that satisfies all constraints. Infeasibility occurs when no
combination of values of the controls can satisfy a set of constraints. Note that a
22
solution (that is, a single set of values for the controls) can be infeasible, by failing to
satisfy the problem constraints, and this doesnt imply that the problem or model
itself is infeasible.
For example, suppose that in a job-shop problem a foreman insists on finding an
optimal configuration with the following constraints:
drills + grinders <= 4
drills + grinders >= 5
where drills is a control that indicates the number of drills in the shop and
grinders is a control that indicates the number of grinders in the shop. Clearly, there
is no combination that will make the sum of the drills and grinders no more than 4
and at the same time greater than or equal to 5.
Or, for this same example, suppose the bounds for another control were:
3 <= saws <= 5
and that the following constraint was added:
saws <= 2
This also results in an infeasible problem.
You can make infeasible problems feasible by fixing the inconsistencies of the
relationships modeled by the constraints.
OptQuests highest priority is to find a solution that is constraint-feasible. Once
OptQuest has found a solution that is constraint-feasible, it concentrates on finding
solutions that improve the value of the objective function.
Objective
Each optimization model has one objective function that mathematically represents
the models goal (in terms of the assumptions and controls); the objective is either to
minimize or maximize this quantity. OptQuests job is to find the optimal value of the
objective by selecting and improving different values for the controls.
When model data is uncertain and can only be described using probability distributions, the objective itself will have some probability distribution for any set of values
for the controls. You can find an empirical approximation of this probability distribution by performing statistical analysis on a given response. The optimization model,
however, is typically defined using a desired statistic (for example, the mean) associated with a response as the objective to be maximized or minimized.
23
Control Type
Discrete
Continuous
Mixed
An optimization model can also be classified according to the functional forms used
to define the objective and the constraints. Hence, an optimization model can be
linear or nonlinear. In a linear model, all terms in the formulas consist of a single
control multiplied by a constant. For example, 3*x 1.2*y is a linear relationship
since both the first and second term only involve constants multiplied by controls (in
this case, x and y).
Terms such as x2, x*y, or 1/x make nonlinear relationships. Any models that contain
such terms in either the objective or a constraint are classified as nonlinear.
A third classification casts optimization models as deterministic or stochastic (that is,
a model or system with one or more random elements), depending on the nature of
the model data. In a deterministic model, all input data is constant or assumed to be
known with certainty. In a stochastic model, some of the model data is uncertain and
is described with probability distributions. Stochastic models are much more difficult
to optimize because they require simulation to compute the objective function. While
OptQuest is designed to solve stochastic models using Arena as the objective
function evaluator, it is also capable of solving deterministic models.
24
Controls
Variables or resources in your Arena model are called controls. Keep in mind that
OptQuest will provide values for selected controls to Arena. If the Arena model were
to override any of the control values that OptQuest provides during the simulation, it
25
would interfere with the optimization. Therefore, any automation or control logic in
the Arena model must be properly set up to work with OptQuest.
For example, control logic could be used to increase gradually the value of a variable,
as this may be an accurate representation of the system being modeled. In this
situation, OptQuest may be set to provide the beginning value of the variable, and
then the control logic would simply increase the value from that starting point. As
long as this is taken into consideration when viewing the results, this is perfectly
correct.
However, if the control is set by OptQuest and then immediately changed by the
control logic, OptQuest still expects responses to be based on the control values it
supplied, but the actual responses will reflect the changed control values.
For resources, OptQuest establishes the initial capacity. Keep the following
considerations in mind:
If your resource follows a schedule (instead of a fixed capacity) and you want it to
be an optimization control, then you should use a variable to identify the
maximum capacity of the resource. The schedule would then set the resource
capacity by multiplying quantities by this variable.
Logic that adjusts the resource capacity in the model should make relative
adjustments from the maximum resource capacity (again, stored in a variable),
rather than setting absolute capacities, since the optimization will establish
different values of the capacity.
VARIABLES
26
Responses
The objective function and constraints may depend on outputs of the simulation, and
therefore, they are based on responses. These responsesincluding tallies, outputs,
CStats, DStats, counters, and variablesare defined in the Arena simulation model.
EXCLUDING
RESPONSES
Run setup
Certain object model functions are set by OptQuest and should not be changed by the
Arena model. These include:
Batch Run
Run in Full-Screen Mode
Quiet Mode property
Number of replications
PAUSES
IN THE
ARENA
MODEL
The Arena model should be set up to run all the way through without any pauses or
interruptions for user input. For example, user forms and message boxes that wait for
input from the keyboard will cause the simulation to pause. It may look like OptQuest
is stuck when, in fact, Arena is simply waiting for input.
To prevent Arena from pausing after a warning (which would interrupt the
optimization progress), clear the check box for Pause After Warnings in Arenas Run
> Setup options.
27
Starting OptQuest
In Arena, with the model open, start OptQuest by selecting Tools > OptQuest for
Arena. When OptQuest for Arena starts, you can define a new optimization by:
Controls Editor
The Controls Editor displays the grid containing the variables or resources in your
Arena model and lets you select which controls to optimize. To access this window,
either:
28
Included
Category
Identifies whether the control node is a resource or is a userspecified variable. This field is for display only.
Control
Element Type
Type
Low Bound
Is the lower limit for the control. The default is 10% less than the
control value specified in the Arena model. This field is changed
in the edit window.
Suggested Value
High Bound
Is the upper limit for the control. The default is 10% more than
the control value specified in the Arena model. This field is
changed in the edit window.
Step
Reflects the discrete step size. This field is changed in the edit
window.
Description
Clicking the column headers will reorder in ascending or descending order based
upon the column type. Clicking the Included column header sorts the selected
controls at the top of the list. This is particularly helpful when the total number of
controls is large but only a few are selected for optimization.
29
Low and High Bound. By default, OptQuest uses 10% from the control value
in the Arena model. The tighter the bounds you specify, the fewer values
OptQuest must search to find the optimal solution. However, this efficiency
comes at the potential expense of missing the optimal solution if it lies outside
the specified bounds.
Suggested Value field. By default, OptQuest uses the values in your Arena
model. If the suggested values lie outside the specified bounds or do not meet
the problem constraints, OptQuest ignores them.
Description. This field allows you to enter descriptive text that will be kept
with the control.
3. When the changes are complete for a selected line, click OK to save the changes
and exit the edit window. To exit the edit window without saving the changes,
click the Cancel button.
You can edit multiple controls by holding the control key while selecting rows
in the grid. Changes will be applied to all selected objects, but only changed
fields will be modified. For example, suppose Machine 1 has a low bound of 2
and a high bound of 5 and Machine 2 has a low bound of 3 and a high bound
of 4. If the high bound is changed to 7, the low bounds will be left at 2 and 3.
To include a control that is in an array, select the row in the summary grid and click
the Add Control From Array button. A dialog box will be displayed that allows you
to define a specific element of the control array. The array element will appear in a
new row at the bottom of the grid.
30
response tree is selected, such as the Response/Resource subnode, then the grid on
the right lists only the names of candidate responses for that category.
Responses can be used to create constraint and objective expressions. To include a
response in the optimization problem and to make it available for constraint and
objective expressions, check the corresponding box in the Included column in the
Response summary grid.
To include a response that is in an array, select the row in the summary grid and click
the Add Response from Array button. A dialog box will be displayed that allows
you to define a specific element of the response array. The array element will appear
in a new row at the bottom of the grid.
Note: Responses are outputs of the simulation and cannot be modified in OptQuest.
Specifying constraints
Many optimization models can be formulated without constraints. However,
including constraints (if appropriate), which define a relationship among controls
and/or responses, increases the efficiency of the search for optimal solutions. The
Constraints Editor allows you to add linear or nonlinear constraints, which are
represented in terms of the controls that have been selected for optimization. The
following expression represents an example of a budget constraint:
25000 * (MachineCount1 + MachineCount2 + MachineCount3) <= 250000
A linear constraint defines a linear relationship among controls. A linear constraint is
a mathematical expression of linear terms (that is, a coefficient multiplied by a
control) that are added or subtracted. OptQuest can evaluate linear constraints
without running a simulation. Solutions that violate a linear constraint are discarded
by OptQuest.
A constraint is nonlinear if the mathematical expression contains a response or a
nonlinear term. Nonlinear constraints require a simulation to be run to determine
constraint feasibility.
Constraints Editor
The Constraint Editor lets you build a constraint expression to use in your
optimization. When added, the Constraints node of the OptQuest tree will contain a
node for each constraint you define. Selecting the Constraints node displays the
defined Constraints Summary grid in the right window.
31
BOUNDS
In many situations, it can be useful to know what effect a constraint has on the
optimal solution and what would happen if the constraint were relaxed or tightened.
OptQuest allows you to define one constraint with varying bounds. The bounds are
listed as a comma-separated list, and any number of bounds can be specified. The
bounds do not need to be even increments. For example:
Var1*3*Var2 >= 600, 800, 1200
32
The optimization begins with the bound set to the first value and a number of
simulations are run to determine a good solution given this bound. Then, OptQuest
uses the next bound and runs more simulations to determine a new best solution.
OptQuest continues in this manner until all bounds have been checked.
33
6. Click OK to accept the Objective edits. The expression will be checked for
validity when OK is clicked. If the expression is invalid, it will appear in yellow
in the Objective Summary grid.
Automatic stop
Tolerance
This value is used to determine when two solutions are equal. The default setting is
0.0001.
34
Solutions Log
During an optimization, information is automatically logged to a file. The
information includes each solution that is tried, the value of the objective function,
and the value of constraints. You may specify where the log file should be kept by
selecting the Browse button and identifying the file name and location. The default
file is OptQuest.log in your Temp directory.
The option settings are automatically saved when you navigate to a different node or
start an optimization.
Suggested Solutions
Suggested Solutions are solutions that you believe may be close to the optimal
answer. Suggested solutions can shorten the time it takes to find an optimal solution.
These suggested solutions will be the first solutions evaluated when the optimization
is run. After the suggested solutions have been evaluated, OptQuest will begin its
35
search for the best solution. You can input your own suggested solutions, or you can
select solutions from previous optimizations and save them as suggested solutions.
To add each suggested solution:
1. Right-click on the Suggested Solution node and choose Add New. The Suggested
Solutions editor will display the Controls and values that have been included in
the optimization.
2. When the editor opens, you may enter a solution name and may modify the
suggested values in the grid. If the value you type violates the bounds of the
control, the cell will turn yellow.
3. The Check Solution button validates the individual solution being entered in the
grid. It checks to be sure that all values are within the bounds of the controls and
that the solution doesnt violate any constraint. A message box displays to tell you
the results of the check action of the solution.
4. When you are satisfied with the entry, click OK to save the solution and return to
the Suggested Solutions Summary window.
The Suggested Solutions window displays all the suggested solutions you have
defined. The solutions can be edited or deleted by clicking on the solution name in
the tree or clicking the Modify or Delete buttons in the editor.
Solutions can be included or excluded from the optimization by checking or clearing
the Included check box in the first column.
The Duplicate Selected Solution button allows you to make a copy of the selected
row. You can then edit one or more of the controls to create your own suggested
solution.
After an optimization has run, the Best Solutions node allows you to select one or
more solutions and save them as suggested solutions.
Suggested solutions are also checked when you start an optimization. The
optimization wont start if there are infeasible suggested solutions or suggested
solutions with bad values. You can either correct the solution or not include the
solution in the problem.
If you check the Run only suggested solutions checkbox on the Options dialog box,
only the suggested solutions will be evaluated. OptQuests engine will not search for
other solutions.
36
Stop
Optimization window
Upon starting the optimization, a new Optimization node is added to the tree, and the
progress of the optimization is displayed in the pane on the right.
While an optimization is running, you cant work in Arena or make changes in
OptQuest, but you can work in other programs. Do not close OptQuest while
you are running an optimization.
37
The optimization window is divided into two parts. The top displays grids for the
objective function, the current solution, and constraints.
Objective grid
This grid shows the best value and the current value for the
objective. The grid title indicates whether the goal is to
Maximize or Minimize. The Best Value row displays the best
objective value found to date. The Current Value row shows the
value for the last solution tested. The Status column indicates
whether the solution satisfied all the constraints or violated one
or more constraints.
Controls grid
This grid displays the values for each control. The Best Value
column shows the values for the best solution found so far. The
Current Value column shows the solution that was last evaluated.
Constraints grid
The bottom of the optimization window displays a graph that plots the trajectory of
the search for the best solution. Splitter bars allow you to resize the parts of the
window.
Objective values graph The graph at the bottom displays the rate at which the best
objective value has changed during the course of the search. This
is shown as a plot of the best objective values as a function of the
number of simulations completed. (For optimizations with more
than 1000 simulations, not every point is plotted on the graph.)
Infeasible solutions (solutions that violate one or more
constraints) are plotted as dashed red lines. Feasible solutions are
plotted as solid green lines.
When the optimization has finished or is stopped by the user, the current value cells
on all grids are cleared.
When the optimization is complete, a Best Solutions node will be added to the tree
and the right side will show the top 25 solutions.
38
Best Solutions
When an optimization completes or is stopped by the user, the top 25 solutions will
be displayed in the Best Solutions form. You can choose to display more solutions by
changing the number in the View Solutions group and clicking the Refresh button.
Or you may choose to display the detail of any one solution by checking the Select
box and then clicking the View button.
The first row in the Best Solutions grid will be the best solution, the second row the
second best, and so on. The simulation column identifies the simulation that
generated that solution. For example, if the first row shows simulation 105, the best
solution was found at the 105th simulation.
The status column indicates whether the solution was constraint-feasible or
infeasible. OptQuest always assigns a higher value to solutions that are constraintfeasible so the grid will always show feasible solutions before infeasible solutions,
even though the objective value for a constraint-infeasible solution may be better than
a constraint-feasible solution.
If the user is running with a varying number of replications, a Confidence column is
displayed in the grid. The Confidence column indicates whether the confidence
interval defined on the Options form was met or not met. A replications column
displays how many replications were performed.
The remaining columns display the values of the controls for that solution.
Select All and Clear All Selected solutions can be added as suggested solutions or written
buttons
to a file. The Select All button selects all solutions displayed in
the grid. The Clear All button deselects all solutions displayed
in the grid.
View button
Advanced
If you want OptQuest to generate more solutions, enter the
More Solutions button number of new solutions you want generated and click the More
Solutions button. The optimization progress form will be
displayed while the additional simulations are run.
39
Advanced
If you want to refine the solutions you have by running more
Refine Solutions button replications or by running Rank and Selection, click the Refine
Solutions button. A Refine Solutions form will be displayed and
you can select the type of refinement you want performed.
Save Solutions Add The Add to Suggested button will add each selected (checked)
to Suggested button
solution as a suggested solution that will be used the next time an
optimization is run. To select a solution, click the box in the
Select column. Clicking a second time will clear the selection. If
you want all solutions in the grid, click the Select All button at
the bottom. To clear all selections, click the Clear All button.
Save Solutions
Write To File button
Since OptQuest cannot alter the Arena model, you can use the solutions in the file to
make manual changes to the Arena model.
40
Specify how many solutions you want in the set of solutions by entering a count. The
top count solutions will be evaluated.
When the optimization is run with this refinement selected, the progress of the
additional replications is shown in a replication summary grid that replaces the
original optimization progress display. While the additional replications are being
run, the row for the current solution is highlighted and you will see the replication
counter increment.
RUN RANK
AND
SELECT
Rank and Select is a sophisticated algorithm that runs more replications of solutions
to further refine the list of best solutions. The Rank and Select algorithm eliminates
solutions from a set of solutions until there is a defined percentage chance that the
remaining solutions are at most the indifference zone value from the true best in the
candidate list.
To run Rank and Select, click the Run Rank and Select option button. Enter the
maximum number of replications to be run by Rank and Select and specify how many
solutions you want in the set of solutions by entering a count. The top count
solutions will be in the Rank and Select solution set. Finally, set the Indifference
Zone and the probability.
When the optimization is run with the Run Rank and Select option chosen, the
progress of the Rank and Select algorithm is shown in a Rank and Select summary
grid that replaces the original optimization progress display.
41
Overview
There are many factors that influence the performance, defined as the ability to find
high-quality solutions as fast as possible. For example, consider two optimization
methods, A and B, applied to a profit-maximization problem. When you evaluate the
performance of each method, you must look at which method:
This graph shows that although both methods find solutions with a similar expected
profit after 10 minutes of searching, Method A jumps to the range of high-quality
solutions faster than B. For the criteria listed above, Method A performs better than
Method B.
While using OptQuest, you will obtain performance profiles similar to Method A.
OptQuests search methodology is very aggressive and attempts immediately to find
43
Number of controls
Initial values
Bounds and constraints
Complexity of the objective
Feasibility
Number of replications and simulations
Simulation accuracy
Simulation speed
Number of controls
The number of controls greatly affects OptQuests performance. OptQuest has no
physical limit on the number of controls you can use in any given problem. However,
the performance might deteriorate if you use more than 100 controls.
Also, as the number of controls increases, you need more simulations to find highquality solutions. General guidelines for the minimum number of simulations
required for a given number of controls in a problem are:
44
Controls
Fewer than 10
100
Between 10 and 20
500
Controls
Between 20 and 50
2000
5000
For very large numbers of controls, you might try this procedure:
You might deselect controls that dont seem to have an influence on the value of the
objective. When you deselect one or more controls and rerun the optimization, the
search focuses on the remaining, more important, controls.
Initial values
The initial values are the values listed in the Suggested Values column of the Controls
Summary window.
The initial values are important because the closer they are to the optimal value, the
faster OptQuest can find the optimal solution. If the initial values are constraintinfeasible, they will be ignored.
For potentially large models with many controls, you might find it helpful to first run
a simplified version of the optimization (for example, by using expected values for
some of the random variables in the model) to find initial values for the full-blown
model.
Suggested solutions
Suggested solutions are listed in the Suggested Solutions window. These may be
solutions saved from a previous optimization or they may be solutions you have
entered.
45
Suggested solutions are always evaluated first in an optimization. The closer they are
to the optimal value, the faster OptQuest can find the optimal solution.
46
Feasibility
A feasible solution is one that satisfies all constraints. OptQuest can check a solution
against linear constraints before running a simulation. Only solutions that satisfy
linear constraints are set to Arena for evaluation. After the simulation has completed,
OptQuest checks nonlinear constraints for constraint feasibility.
OptQuest makes finding a feasible solution its highest priority. Once it has found a
feasible solution, then it concentrates on finding better solutions. For further details on
feasibility, see Constraints on page 22.
Simulation accuracy
There are two factors that affect simulation accuracy:
Number of replications
Noisiness of the objective
47
NUMBER
For sufficient accuracy, you must set the number of replications to the minimum
number necessary to obtain a reliable estimate of the statistic being optimized. The
minimum number is typically found with empirical testing.
OBJECTIVE
NOISINESS
The objective on the left in the example above has significant amounts of noise
caused by the probability distributions used to model the problem's uncertainty. For
these types of objectives, OptQuest might have trouble discerning the minimum or
maximum value. You can detect noisy functions by watching the Best Solutions
window for best solutions that seem to fluctuate from one set of values to completely
different sets of values. To help solve this problem, you can increase the number of
replications per simulation.
On the right, the objective appears smooth due to the relative certainty in the model
assumptions. In these cases, OptQuest should quickly converge to the best solution.
Simulation speed
By increasing the speed of each simulation, you can increase the number of
simulations that OptQuest runs in a given time period. Some suggestions to increase
speed are:
48
49
Index
A
assumptions 20
number of controls 44
number of replications 47
B
Best Solutions 39
bounds and constraints 46
C
Check Expression 12
Check Solution 36
complex objective 47
constraints 19, 22
specifying 31
Constraints Editor 31
constraints with varying bounds 46
consulting services 5
contact information 5
controls 19, 22
Controls Editor 28
Customer Support Center 4
D
deterministic model 24
developing an Arena model before using
OptQuest 25
document conventions 3
Duplicate Selected Solution 36
F
feasible solution
search performance
feasibility 47
J
initial values 45
M
Mega Movie Corporation 9
O
objective noisiness 48
objectives 19, 23
selecting 33
online help 3
optimization
designing your model 49
running 37
setting up the model 25
starting 37
stopping 37
optimization models 19
continuous 24
discrete 24
linear 24
mixed 24
nonlinear 24
Optimization Stop 34
OptQuest for Arena
how does it affect my model? 1
how does it work? 7
what is it? 1
R
Refine Solutions 40
Replications per simulation 35
response statistics 20
responses 20
selecting 30
Run more replications 40
Run only suggested solutions 36
Run Rank and Select 41
running an optimization 37
S
search performance 44
51
52
running more 40
solutions log 35
starting the optimization 37
stochastic model 24
stopping the optimization 37
Suggested Solutions 35, 45
Sum All Controls 11
T
technical support 3
Tolerance 34
training 4
tutorials
adding requirements 16
Mega Movie Corporation 9
W
Web support 4