Control Parameters
Topics covered in this chapter:
Various controls exist within Xpress NonLinear to govern the solution procedure and the form of the output. Some of these take integer values and act as switches between various types of behavior. Many are tolerances on values related to the convergence criteria; these are all double precision. There are also a few controls which are character strings, setting names for structures. Any of these may be altered by the user to enhance performance of the SLP algorithm. In most cases, the default values provided have been found to work well in practice over a range of problems and caution should be exercised if they are changed.
Users of the Xpress NonLinear function library are provided with the following set of functions for setting and obtaining control values:
XSLPgetintcontrol | XSLPgetdblcontrol | XSLPgetstrcontrol |
XSLPsetintcontrol | XSLPsetdblcontrol | XSLPsetstrcontrol |
All the controls as listed in this chapter are prefixed with XSLP_. Most of them also exist within the Optimizer library with an NLP or SLP prefix, e.g., XPRS_NLPPRESOLVE. It is possible to use the above functions with other control parameters for the Xpress Optimizer (controls prefixed with XPRS_). For details of the Optimizer controls, see the Optimizer manual.
Example of the usage of the functions:
XSLPgetintcontrol(Prob, XSLP_PRESOLVE, &presolve); printf("The value of PRESOLVE was %d\n", presolve); XSLPsetintcontrol(Prob, XSLP_PRESOLVE, 1-presolve); printf("The value of PRESOLVE is now %d\n", 1-presolve);
The following is a list of all the Xpress NonLinear controls:
Bit map activating additional options supporting model / solution path analysis
[ Bit-vector, Logging, SLP] |
|
Number of iterations to allow numerical failures in barrier before switching to dual
[ Limits, Linearizations, SLP] |
|
Number of iterations over which to measure the objective change for barrier iterations with no crossover
[ Limits, Linearizations, SLP] |
|
Required change in the objective when progress is measured in barrier iterations without crossover
[ Linearizations, SLP] |
|
Number of threads used for formula and derivatives evaluations
[ Parallel] |
|
Absolute tolerance for deducing constant derivatives
[ Tolerances] |
|
Relative tolerance for deducing constant derivatives
[ Tolerances] |
|
Shrink ratio used to impose strict convergence on variables converged in extended criteria only
[ SLP] |
|
Bit map describing which Xpress NonLinear functions also activate the corresponding Optimizer Library function
[ Bit-vector] |
|
Bit map describing which convergence tests should be carried out
[ Bit-vector, SLP, SLP-convergence] |
|
Damping factor for updating values of variables
[ SLP] |
|
Multiplier to increase damping factor during dynamic damping
[ SLP] |
|
Maximum value for the damping factor of a variable during dynamic damping
[ SLP] |
|
Minimum value for the damping factor of a variable during dynamic damping
[ SLP] |
|
Multiplier to decrease damping factor during dynamic damping
[ SLP] |
|
SLP iteration at which damping is activated
[ SLP] |
|
Default initial value for an SLP variable if none is explicitly given
[ Data Input] |
|
Minimum initial value for the step bound of an SLP variable if none is explicitly given
[ SLP] |
|
Number of SLP iterations before update rows are fully activated
[ SLP] |
|
Absolute perturbation of values for calculating numerical derivatives
[ Derivatives] |
|
Maximum value for partial derivatives
[ Derivatives] |
|
Relative perturbation of values for calculating numerical derivatives
[ Derivatives] |
|
Minimum absolute value of delta coefficients to be retained
[ Derivatives] |
|
Initial penalty cost multiplier for penalty delta vectors
[ SLP] |
|
Factor for increasing cost multiplier on total penalty delta vectors
[ SLP] |
|
Maximum penalty cost multiplier for penalty delta vectors
[ SLP] |
|
Number of SLP iterations during which to apply XSLP_DELTA_Z
[ SLP] |
|
Bitmap describing the method of calculating derivatives
[ Derivatives] |
|
Reduced cost tolerance on the delta variable when fixing due to the determining column being below XSLP_DRCOLTOL.
[ Cascading, SLP, Tolerances] |
|
The minimum absolute magnitude of a determining column, for which the determined variable is still regarded as well defined
[ Cascading, SLP, Tolerances] |
|
Check feasibility at the point of linearization for extended convergence criteria
[ SLP, SLP-convergence] |
|
Absolute tolerance on testing feasibility at the point of linearization
[ SLP, SLP-convergence, Tolerances] |
|
Relative tolerance on testing feasibility at the point of linearization
[ SLP, SLP-convergence, Tolerances] |
|
Controls if the XSLP message callback should relay messages from the XPRS library.
[ Logging] |
|
Factor by which to decrease the current penalty multiplier when enforcing rows.
[ SLP] |
|
Maximum penalty cost in the objective before enforcing most violating rows
[ SLP] |
|
Initial penalty cost multiplier for penalty error vectors
[ SLP] |
|
Factor for increasing cost multiplier on total penalty error vectors
[ SLP] |
|
Maximum penalty cost multiplier for penalty error vectors
[ SLP] |
|
Factor for increasing cost multiplier on individual penalty error vectors
[ SLP] |
|
Evaluation strategy for user functions
[ User Functions] |
|
Multiplier to increase a step bound
[ SLP] |
|
When set, this defines a target feasibility tolerance to which the linearizations are solved to
[ Linearizations, SLP, Tolerances] |
|
Option for running a heuristic to find a feasible initial point
[ Heuristics] |
|
Bit map for determining the method of evaluating user functions and their derivatives
[ Derivatives, User Functions] |
|
Base for calculating penalty costs
[ SLP] |
|
Bit map selectin which heuristics to run if the problem has variable with an integer delta
[ Heuristics, SLP] |
|
Second order differentiation mode when using analytical derivatives
[ Derivatives] |
|
Value returned by a divide-by-zero in a formula
[ Numerics] |
|
Alternative LP level control values for numerically challengeing problems
[ Linearizations, Numerics, SLP] |
|
Name of the set of initial values to be used
[ File IO] |
|
First order differentiation mode when using analytical derivatives
[ Derivatives] |
|
When set to a nonzero value, the MPS reader will keep the equals column in the problem
[ Misc] |
|
Use linear and quadratic constraints and objective function to further reduce bounds on all variables
[ Presolve] |
|
Iteration in which to active the line search
[ SLP] |
|
Nonzero tolerance for dropping coefficients from the linearization.
[ SLP] |
|
The maximum time in seconds that the SLP optimization will run before it terminates
[ Limits] |
|
Maximum penalty weight for delta or error vectors
[ SLP] |
|
Factor for expanding size of dynamic arrays in memory
[ Memory] |
|
Factor by which step bounds can be decreased beneath XSLP_ATOL_A
[ SLP] |
|
Minimum penalty weight for delta or error vectors
[ SLP] |
|
Bitmap describing the step-bound fixing strategy during MISLP
[ MISLP] |
|
Number of SLP iterations at each node over which to measure objective function variation
[ MISLP, SLP-convergence] |
|
Bitmap describing the step-bound relaxation strategy during MISLP
[ MISLP] |
|
Defines the maximum range inside which initial points are generated by multistart presets
[ Multistart] |
|
The multistart master control.
[ Multistart] |
|
The maximum number of problem objects allowed to pool up before synchronization in the deterministic multistart.
[ Limits, Multistart] |
|
Random seed used for the automatic generation of initial point when loading multistart presets
[ Multistart] |
|
Marginal value tolerance for determining if a constraint is slack
[ SLP, SLP-convergence, Tolerances] |
|
Controls whether to call FICO Xpress Global or one of the local solvers
[ Solution Process] |
|
Assumed maximum value of the objective function in absolute value.
[ SLP] |
|
Factor to estimate initial penalty costs from objective function
[ SLP] |
|
Number of SLP iterations over which to measure objective function variation for static objective (2) convergence criterion
[ SLP, SLP-convergence] |
|
When set, this defines a target optimality tolerance to which the linearizations are solved to
[ Linearizations, SLP, Tolerances] |
|
This control determines whether postsolving should be performed automatically
[ Presolve] |
|
This control determines whether presolving should be performed on the nonlinear problem prior to starting the main algorithm
[ Presolve] |
|
This control determines the level of changes presolve may carry out on the problem and whether column/row indices may change
[ Presolve] |
|
Minimum absolute value for a variable which is identified as nonzero during SLP presolve
[ Presolve, Tolerances] |
|
Decay term for primal integral computation
[ Logging] |
|
Reference solution value to take into account when calculating the primal integral
[ Logging] |
|
This control determines whether probing on a subset of variables should be performed prior to starting the main algorithm.
[ Presolve] |
|
Controls the problem reformulations carried out before augmentation.
[ Presolve] |
|
Number of steps reaching the step bound in the same direction before step bounds are increased
[ SLP] |
|
Number of steps in same direction before damping factor is increased
[ SLP] |
|
SLP iteration after which step bounds are first applied
[ SLP] |
|
Multiplier to reduce a step bound
[ SLP] |
|
Defines an overwrite / adjustment of step bounds for improving iterations
[ SLP] |
|
Selects the library to use for local solves
[ Solution Process] |
|
Stop optimization and return error code if internal function argument is out of range
[ SLP] |
|
Default number of threads to be used
[ Parallel] |
|
The number of consecutive SLP iterations that may have an unfinished status before the solve is terminated.
[ Linearizations, SLP] |
|
Relative tolerance for the XSLPvalidate procedure
[ Tolerances] |
|
Number of SLP iterations over which to measure static objective (3) convergence
[ SLP, SLP-convergence] |
|
Number of SLP iterations after which static objective (3) convergence testing starts
[ SLP, SLP-convergence] |
|
Number of SLP iterations over which to measure the objective for the extended convergence continuation criterion
[ SLP, SLP-convergence] |
|
Number of SLP iterations over which to measure static objective (1) convergence
[ SLP, SLP-convergence] |
|
Number of SLP iterations up to which static objective (1) convergence testing is performed
[ Limits, SLP, SLP-convergence] |
|
Absolute tolerance
[ Tolerances] |
|
SLP iteration at which criteria for deletion of placeholder entries are first activated.
[ SLP] |
Knitro controls
All Knitro controls are available with an 'X' pre-tag. For example the Knitro integer control 'KTR_PARAM_ALGORITHM' can be set using XSLPsetintcontrol using the control ID defined as 'XKTR_PARAM_ALGORITHM'. Please refer to the Xpress Knitro manual for the description of the Knitro controls.
© 2001-2025 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.