3.6. Termination Criteria

3.6.1. Convergence Criteria

GTOpt will stop optimization process when either one of the termination criteria described in this section are met. All termination criteria except the gradient convergence can be selectively disabled by setting corresponding option value to zero, as it follows from precise mathematical definitions below.

Gradient Convergence

Gradient (or its natural generalization for multi-objective and/or constrained problems, see below) becomes small enough, relevant configurable option is GTOpt/GradientTolerance. For single-objective unconstrained problems smallness means relative (with respect to magnitude of current objective function) \(L_\infty\) norm of objective function gradient \(g = \nabla f\):

(1)\[|g|_\infty ~\le ~ \mbox{ GradientTolerance } \times \max( 1, |f|_\infty)\]

For constrained and multi-objective problems this termination criteria is formally the same, the only difference is that local gradient \(g\) is now defined in terms of all participating objectives and active constraints and \(|f|_\infty\) is to be replaced with \(\max_i |f_i|_\infty\). Note that by default gradient smallness is measured relatively with respect to current objective function magnitude. If this is not desirable or inadequate and absolute gradient magnitude is to be used instead, then boolean option GTOpt/AbsoluteGradientTolerance may be used to convert (1) into

\[|g|_\infty ~\le ~ \mbox{ GradientTolerance }\]

Coordinate Convergence

Coordinates change between two consecutive optimization steps is small enough, relevant configurable option is GTOpt/CoordinateTolerance:

\[|\delta x|_\infty ~\le ~ \mbox{ CoordinateTolerance } \times \max( 1, |x|_\infty)\]

Objective Convergence

Objectives change between two consecutive optimization steps is small enough, relevant configurable option is GTOpt/ObjectiveTolerance:

\[\min\limits_i |\delta f^i|_\infty ~\le ~ \mbox{ ObjectiveTolerance } \times \max( 1, \max\limits_i |f^i|_\infty)\]

3.6.2. Feasibility

As far as constraints satisfaction is concerned (in case there are active constraints in the problem) there is single configurable option GTOpt/ConstraintsTolerance regulating GTOpt constraints sensitivity. Namely, solution is required either to satisfy particular constraint \(c(x)\) strictly (let \(c_U\) be a relevant upper bound) \(c ~\le~ c_U\) or to be within predefined margin away from corresponding limiting value \(c - c_U ~\le~ \mbox{ConstraintsTolerance} \times \max( 1,|c_U|)\). Therefore, feasibility with respect to generic constraint \(c^j\) means

\[c ~\le~ c_U +\mbox{ConstraintsTolerance} \times \max( 1,|c_U|)\]