Initializing help system before first use

Convergence overview

Strict Convergence

Three tolerances in XSLP are used to determine whether an individual variable has strictly converged, that is they describe the numerical behaviour of convergence in the formal, mathematical sense.
XSLP_CTOL
The closure tolerance is compared against the movement of a variable relative to its initial step bound.
XSLP_ATOL_A
The absolute delta tolerance is compared against the absolute movement of a variable.
XSLP_ATOL_R
The relative delta tolerance is compared against the movement of a variable relative to its initial value.

Extended Convergence

There are six tolerances in XSLP used to determine whether an individual variable has converged according to the extended definition. These tests essentially measure the quality of the linearization, including the effect of changes to the nonlinear terms that contribute to a variable in the linearization. In order to be deemed to have converged in the extended sense, all terms in which it appears must satisfy at least one of the following:
XSLP_MTOL_A
The absolute matrix tolerance is compared against the approximation error relative only to the absolute value of the variable.
XSLP_MTOL_R
The relative matrix tolerance is compared against the approximation error relative to the size of the nonlinear term before any step is taken.
XSLP_ITOL_A
The absolute impact tolerance is compared against the approximation error of the nonlinear term.
XSLP_ITOL_R
The relative impact tolerance is compared against the approximation error relative to the positive and negative contributions to each constraint.
XSLP_STOL_A
The absolute slack impact tolerance is compared against the approximation error, but only for non-binding constraints, which is to say those for which the marginal value is small (as defined by XSLP_MVTOL).
XSLP_STOL_R
The relative slack impact tolerance is compared against the approximation error relative to the term's contribution to its constraints, but only for non-binding constraints, which is to say those for which the marginal value is small (as defined by XSLP_MVTOL).

Stopping Criterion

The stopping criterion requires that all variables in the problem have converged in one of the three senses. Detailed information regarding the conditions under which XSLP has terminated can be obtained from the XSLP_STATUS solver attribute. Note that a solution is deemed to have fully converged if all variables have converged in the strict sense. If all variables have converged either in the strict or extended sense, and there are no active step bounds, then the solution is called a practical solution. In contrast, the solution may be called converged if it is feasible and the objective is no longer improving. The following four control sets can be applied by XSLP to determine whether the objective is stationary, depending on the convergence control parameter XSLP_CONVERGENCEOPS:
VTOL
This is the baseline static objective function tolerance, which is compared against the change in the objective over a given number of iterations, relative to the average objective value. Satisfaction of VTOL does not imply convergence of the variables.
XSLP_VCOUNT
This is the number of iterations over which to apply this measure of static objective convergence.
XSLP_VLIMIT
The static objective function test is applied only after at least XSLP_VLIMIT + XSLP_SBSTART XSLP iterations have taken place.
XSLP_VTOL_A
This is the absolute tolerance which is compared to the range of the objective over the last XSLP_VLIMIT iterations.
XSLP_VTOL_R
This is the used for a scaled version of the absolute test which considers the average size of the absolute value of the objective over the previous XSLP_VLIMIT iterations.
OTOL
This static objective function tolerance is applied when there are no unconverged variables in active constraints, although some variables with active step bounds might remain. It is compared to the change in the objective over a given number of iterations, relative to the average objective value.
XSLP_OCOUNT
This is the number of iterations over which to apply this measure of static objective convergence.
XSLP_OTOL_A
This is the absolute tolerance which is compared to the range of the objective over the last XSLP_OCOUNT iterations.
XSLP_OTOL_R
This is used for a scaled version of the absolute test which considers the average size of the absolute value of the objective over the previous XSLP_OCOUNT iterations.
XTOL
This static objective function tolerance is applied when a practical solution has been found. It is compared against the change in the objective over a given number of iterations, relative to the average objective value.
XSLP_XCOUNT
This is the number of iterations over which to apply this measure of static objective convergence.
XSLP_XLIMIT
This is the maximum number of iterations which can have occurred for this static objective function test to be applied. Once this number is exceeded, the solution is deemed to have converged if all the variables have converged by the strict or extended criteria.
XSLP_XTOL_A
This is the absolute tolerance which is compared to the range of the objective function over the last XSLP_XLIMIT iterations.
XSLP_XTOL_R
This is used for a scaled version of the absolute test which considers the average size of the absolute value of the objective over the last XSLP_XLIMIT iterations.
WTOL
The extended convergence continuation tolerance is applied when a practical solution has been found. It is compared to the change in the objective during the previous iteration.
XSLP_WCOUNT
This is number of iterations over which to calculate this measure of static objective convergence in the relative version of the test.
XSLP_WTOL_A
This is the absolute tolerance which is compared to the change in the objective in the previous iteration.
XSLP_WTOL_R
This is used for a scaled version of the test which considers the average size of the absolute value of the objective over the last XSLP_WCOUNT iterations.

Step Bounding

Step bounding in XSLP can be activated in two cases. It may be enabled adaptively in response to variable oscillation, or it may be enabled by after XSLP_SBSTART iterations, by setting XSLP_ALGORITHM appropriately. Two major controls define the behaviour of step bounds:
XSLP_SBSTART
This defines the number of iterations which must occur before XSLP may apply non-essential step bounding. When a linearization is unbounded, XSLP will introduce step bounding regardless of the value of this control.
XSLP_DEFAULTSTEPBOUND
This is the initial size of the step bounds introduced. Depending upon the value of XSLP_ALGORITHM, XSLP may use the iterations before XSLP_SBSTART to refine this initial value on a per variable basis.

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.