Control Parameters That Influence the AOA Algorithm

Control parameters

The multistart module defines several parameters that influence the outer approximation algorithm. These parameters have a similar functionality as options of a solver, e.g., CPLEX. The most important parameters, with their default setting, are shown in this table.

Table 51 Control parameters in the outer approximation module

Parameter

Default

Range

Subsection

IterationMax

20

{0,maxint}

TimeLimit

0

{0,maxint}

Specifying a Time Limit

CreateStatusFile

0

{0,1}

UsePresolver

1

{0,1}

Using the AIMMS Presolver

UseMultistart

0

{0,1}

Combining Outer Approximation with Multistart

TerminateAfterFirstNLPIsInteger

1

{0,1}

Terminate If Solution of Relaxed Model Is Integer

IsConvex

0

{0,1}

Solving a Convex Model

RelativeOptimalityTolerance

1e-5

{0,1}

Solving a Convex Model

NLPUseInitialValues

1

{0,1}

Starting Point Strategy for NLP Subproblems

The parameters that are not self-explanatory are explained in this section; the last column in the table refers to the subsection that discusses the corresponding parameter.

Specifying a Time Limit

Parameter TimeLimit

The parameter TimeLimit can be used to set a limit on the total elapsed time (in seconds) used by the outer approximation algorithm. The default value of 0 has a special meaning; in that case there is no time limit.

Using the AIMMS Presolver

Parameter UsePresolver

By default the outer approximation algorithm starts by applying the AIMMS Presolver to the MINLP model. By preprocessing the MINLP model, the model might become smaller and easier to solve. The parameter UsePresolver can be used to switch off the preprocessing step.

Combining Outer Approximation with Multistart

Parameter UseMultistart

If the parameter UseMultistart is switched on then the outer approximation algorithm will use the multistart algorithm to solve the nonlinear subproblems. For non-convex models this can have a positive effect on the quality of the solution that is returned by the outer approximation algorithm. The multistart algorithm is described in section The AIMMS Multistart Algorithm. The parameters MultistartNumberOfSamplePoints and MultistartNumberOfSelectedSamplePoints can be used to specify the number of sample and selected sample points, respecively, as used by the multistart algorithm.

Multistart module

To use the multistart algorithm, the system module Multi Start should be added to your project. You can install this module using the Install System Module command in the AIMMS Settings menu.

Terminate If Solution of Relaxed Model Is Integer

Parameter TerminateAfterFirstNLPIsInteger

By default the outer approximation algorithm will terminate if it finds an integer solution for the initial NLP problem, which is obtained from the MINLP model by relaxing the integer variables. By switching off the parameter TerminateAfterFirstNLPIsInteger you can enforce the algorithm to continue.

Solving a Convex Model

Parameter IsConvex

The parameter IsConvex can be used to indicate that the model is convex. In that case the outer approximation algorithm will no longer stop after the iteration limit is hit, as specified by the parameter IterationMax. Instead, the algorithm will stop if the gap between the objective values of the master MIP problem and the nonlinear subproblem is sufficiently small, as controlled by the parameter RelativeOptimalityTolerance. Note that AIMMS cannot identify whether a model is convex or not.

Starting Point Strategy for NLP Subproblems

Parameter NLPUseInitialValues

The parameter NLPUseInitialValues specifies the starting point strategy used for solving the NLP subproblems. For nonconvex nonlinear problems the starting point often has a big influence on the solution that the NLP solver will find. By default the AOA algorithm will use the initial values as provided by the user for all NLP subproblems that are solved. By setting this parameter to 0, the algorithm will use the solution of the previous master MIP problem as the starting point for the next NLP subproblem (and for the initial NLP it will use the initial values provided by the user). Note: if one of the parameters UseMultistart or IsConvex equals 1 then NLPUseInitialValues is automatically set to 0.