Table of Contents
Overview
The Solver Event is an optimization tool that can be used for what-if analysis. The tool uses a nonlinear solving method like Excel Solver's GRG Nonlinear. The algorithm uses multiple variables using random seed generation or global optimization.
This feature is not supported on Public Cloud accounts.
Creating a Solver Event
To create a Solver event, go to Solver Events under Events and press Add Solver Event.
Name
The Name is simply a friendly identifier provided to the Solver Event to help you subsequently identify this process in contrast with other Action Button events.
Objective
The Objective field contains the formula to test the Variable Cells against to fulfill the optimization. This value must be Single Named Range containing a formula. Named ranges that are not compatible cannot be selected from the Objective dropdown.
Optimization Type
The Optimization Type determines the direction of the solving.
- Maximum:The Solver Event will try to find the largest value for the Objective.
- Minimum:The Solver Event will try to find the smallest value for the Objective.
- Value Of:Select this if you want the Objective reflect a certain value.
Value of Goal
Enter the value specific value you want to reach. This field will be visible only if Value Of option is selected.
Non-Negative
Mark this option if all your constraints are non-negative numbers (equal or greater than 0). If this option is marked, you do not have to set a lower bound to your variables unless there are variables which have different lower bounds.
Display Result Message
If Display Result Message is enabled, the system will display a pop-up message about the result.
Cancel on Error
If Cancel on Error is enabled, the system will cancel any other events (i.e., Print, Email etc.) if the Solver fails to generate a result.
Variables
The Variables are the non-formula, single named range cells that contain variable data that can be changed to achieve the objective. Use Add/Delete buttons to insert and manage the variable list.
Each variable named range/cells should be associated with an input control in the User Interface.
Constraints
The Constraints are simply the conditions that must be met. These conditions are basic mathematical equations along with setting variables as integers.
You can use Add/Edit/Delete buttons to insert and manage the constraint list.
The Add and Edit buttons pops up a dialog with three fields:
- Named Range:A dropdown allows you to select single named ranges. This is the left side of a condition.
- Operation Type:A dropdown with mathematical operators and Integer option. Note: The Integer option is available only for the assigned variables.
- Value:A field that you can enter a numerical value which will be the right side of the condition. This field will be hidden if the Operation Type is selected as Integer.
Note: An upper and lower bound should be added as a constraint for each variable. You can skip lower bound (greater than or equal) if the Non-Negative setting is enabled.
Update Solver Event
The button allows you to save the Solver Event.
Example
The example below aims to find the number of packages to ship 480 products. There are three types of packages. Each type of packages should be used at least 1 time and each package is stored in limited numbers:
- 10-item package, 5 available
- 30-item package, 5 available
- 50-item package, 8 available
According to this information, we can model our example as the following:
We want the Total (C20) is equal to 480 while package numbers are staying between limits. To solve this problem, you can use the Solver Event like the following:
User Interface
The Constraints are simply the conditions that must be met. These conditions are basic mathematical equations along with setting variables as integers.
- Each variable in the Solver Event should be bound to an input control in the User Interface.
- A Solver Event must be assigned to a button to be triggered. Only a single Solver Event can be assigned to one button. Multiple buttons is needed to run multiple Solver Events.
Run-time