Optimization Parameters

An optimization parameter (or a decision variable, in the terms of optimization) is a model parameter to be optimized. For example, the number of nurses to employ during the morning shift in an emergency room may be an optimization parameter in a model of a hospital. The OptQuest Engine searches through possible values of optimization parameters to find optimal parameters. It is possible to have more than one optimization parameter. 

Only a parameter of the top level agent of the optimization experiment can be an optimization parameter. So, in order to perform optimization, you must have at least one parameter in this agent. If you need to optimize parameters of embedded objects, you should use parameter propagation.

The dimension of the search area depends on the number of optimization parameters. Each new parameter expands the search area, thus slowing down the optimization. If you have N optimization parameters, their ranges form the N-dimensional square search area. Obviously, that area must be wide enough to contain the optimal point. However, the wider the range is, the more time is needed to find the optimum in the search area. On the other hand, suggested parameter values located near the optimal value can shorten the time it takes to find the optimal solution.

Optimization Parameter Types

During the optimization process, the parameter's value is changed in accordance with its type within an interval specified by lower and upper bounds. There are the following types of optimization parameters:

Continuous parameter can take any value from the interval. The parameter precision determines the minimal value continuous parameters can change.

Discrete parameter is represented by a finite set of decisions with essential direction: the parameter influences the objective like a numeric parameter, but can take values from the specified set only. It begins at a lower bound and increments by a step size up to an upper bound. 

Sometimes the range and step are exactly defined by the problem; but generally you will have to choose them. If you specify the step for the parameter, only the discrete points will be involved in the optimization, so it will be impossible to determine optimal parameter value more precisely than defined by the step. So, if you are not sure what the step should be, choose the Continuous rather than the Discrete parameter type.

Design parameter is represented by a finite set of decisions, where there is no clear sense of direction. Value of design parameter represents an alternative but not a quantity. It begins at a lower bound and increments by a step size up to an upper bound. Values order is inconsequentional. Using design parameters you can model choosing the best alternative from the catalog, where the choices are not in a specific order. For example, a design parameter, which can take values 0 or 1 (min=0, max=1, step=1) may represent a choice between: a model has some element or has not.

Defining Optimization Parameters

Optimization parameters are defined in the Parameters section of the optimization experiment properties. The table already lists all parameters of the top level agent. By default, all of them are fixed, i.e. they are not varied by optimization process.  

To make parameter a decision variable
  1. Select the optimization experiment in the Projects view.
  2. On the Parameters section of the Properties view, go to the row of the Parameters table containing the parameter you want make a decision variable.
  3. Click the Type field and choose the type of the optimization parameter other than fixed. Depending on the type of the parameter, the list of possible values may vary: design, int, discrete for integer parameters; continuous and discrete for double, etc.
  4. Specify the range for the parameter. Enter the parameter’s lower bound in the Min field and the parameter’s upper bound in the Max field.
  5. For discrete and design parameters, specify the parameter step in the Step field.
  6. Suggest the initial value for the parameter in the Suggested field. Initially, the value is set to the parameter’s default value, but you can enter any other value here.