Tweaking the Optimality tolerance parameter might be necessary if you are confronted with problems related to convergence. As an example, if the optimization solver reports a converged solution after just a few iterations, try to restart it with a tighter tolerance to make sure it has actually found the solution. If, on the contrary, it seems to iterate forever — despite the value of the objective function having converged (check the output on the
Log page in the
Progress window) — chances are that the tolerance value is too strict.
For the derivative-free optimization methods, the optimization tolerance, with a default value of 0.01, is used to determine whether a stationary point has been reached. The BOBYQA,
COBYLA, and
Nelder–Mead methods stop iterating as soon as no improvement over the current best estimate can be found with steps in the scaled control variables of relative size larger than or equal to the optimality tolerance. The
EGO method stops iterating as soon as no improvement over the weighted average of the ten most recent scaled estimates larger than the optimality tolerance can be found.
The MMA solver terminates when the relative change in all scaled control variables is less than the specified optimality tolerance parameter, with a default of 1e-3. The relative change is defined as the change in the variable since the last outer iteration divided by the range of the variable. The range of the variable is the upper bound minus the lower bound. For unbounded variables, the MMA solver internally estimates bounds based on the previous iteration points.
Let tol be the specified optimality tolerance. Define
told = γd⋅tol, where
γd is the defect reduction tolerance factor, and
tolx = γx⋅tol, where
γx is the
control variable tolerance factor. Moreover, let the defect vector be defined by
where ωl and
fl are defined in
Equation 5-11 and
Equation 5-12, and
L is the total number of the measurement evaluations. Then, when the Levenberg–Marquardt solver is used, the following conditions are used to determine when optimality has been reached:
where d0 is the initial defect vector, and
dj is the current defect vector.
where dj is the current defect vector and
J is the Jacobian. This is referred to as the
errJ in the
Convergence Plot and in the
Log Window.
The default values of the optimality tolerance, defect reduction tolerance factor, and control variable tolerance factor are 1.0·10−3, 1, and 1, respectively. The termination condition defined as the first condition above is not used by default and should be enabled in order to be included. The minimum of the later two,
min(errJ,stepsize), is shown in the
Convergence Plot.