Initializing help system before first use

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 describing the SLP algorithm(s) to be used
Bit map activating additional options supporting model / solution path analyzis
Absolute delta convergence tolerance
Relative delta convergence tolerance
Bit map describing the SLP augmentation method(s) to be used
Frequency with which to save the model
Default crossover activation behaviour for barrier start
Number of initial SLP iterations using the barrier method
Number of iterations to allow numerical failures in barrier before switching to dual
Number of iterations over which to measure the objective change for barrier iterations with no crossover
Required change in the objective when progress is measured in barrier iterations without crossover
Controls behaviour when the barrier is used to solve the linearizations
The maximum size of a bound that can be introduced by nonlinear presolve.
Number of threads used for formula and derivatives evaluations
Bit map describing the cascading to be used
Maximum number of iterations for cascading with non-linear determining rows
Absolute cascading print tolerance
Relative cascading print tolerance
Absolute tolerance for deducing constant derivatives
Relative tolerance for deducing constant derivatives
Shrink ratio used to impose strict convergence on variables converged in extended criteria only
Absolute validation tolerance for applying XSLP_CLAMPSHRINK
Relative validation tolerance for applying XSLP_CLAMPSHRINK
Bit map describing which Xpress NonLinear functions also activate the corresponding Optimizer Library function
Bit map describing which convergence tests should be carried out
Closure convergence tolerance
Determines whihc cuts to apply in the MISLP search when the default SLP-in-MIP strategy is used.
Damping factor for updating values of variables
Multiplier to increase damping factor during dynamic damping
Maximum value for the damping factor of a variable during dynamic damping
Minimum value for the damping factor of a variable during dynamic damping
Multiplier to decrease damping factor during dynamic damping
SLP iteration at which damping is activated
Default initial value for an SLP variable if none is explicitly given
Minimum initial value for the step bound of an SLP variable if none is explicitly given
Number of SLP iterations before update rows are fully activated
Absolute perturbation of values for calculating numerical derivatives
Maximum value for partial derivatives
Relative perturbation of values for calculating numerical derivatives
Minimum absolute value of delta coefficients to be retained
Tolerance used when calculating derivatives
Absolute zero acceptance tolerance used when calculating derivatives
Initial penalty cost multiplier for penalty delta vectors
Factor for increasing cost multiplier on total penalty delta vectors
Formatting string for creation of names for SLP delta vectors
Maximum penalty cost multiplier for penalty delta vectors
Position of first character of SLP variable name used to create name of delta vector
Number of SLP iterations during which to apply XSLP_DELTA_Z
Bitmap describing the method of calculating derivatives
Determines if the parallel features of SLP should be guaranteed to be deterministic
Tolerance on DJ value for determining if a variable is at its step bound
Reduced cost tolerance on the delta variable when fixing due to the determining column being below XSLP_DRCOLTOL.
The minimum absolute magnitude of a determining column, for which the determined variable is still regarded as well defined
The range around the previous value where variables are fixed in cascading if the determining column is below XSLP_DRCOLTOL.
Check feasibility at the point of linearization for extended convergence criteria
Absolute tolerance on testing feasibility at the point of linearization
Relative tolerance on testing feasibility at the point of linearization
Controls if the XSLP message callback should relay messages from the XPRS library.
Factor by which to decrease the current penalty multiplier when enforcing rows.
Maximum penalty cost in the objective before enforcing most violating rows
Initial penalty cost multiplier for penalty error vectors
Factor for increasing cost multiplier on total penalty error vectors
Maximum penalty cost multiplier for penalty error vectors
Position of first character of constraint name used to create name of penalty error vectors
Absolute tolerance for error vectors
Absolute tolerance for printing error vectors
Factor for increasing cost multiplier on individual penalty error vectors
Absolute tolerance on penalty vectors
Relative tolerance on penalty vectors
Evaluation strategy for user functions
Absolute tolerance on total penalty costs
Relative tolerance on total penalty costs
Multiplier to increase a step bound
When set, this defines a target feasibility tolerance to which the linearizations are solved to
Bit map for controlling solution updates
Option for running a heuristic to find a feasible initial point
Bit map for determining the method of evaluating user functions and their derivatives
Base for calculating penalty costs
Bit map selectin which heuristics to run if the problem has variable with an integer delta
Second order differentiation mode when using analytical derivatives
Branch and Bound: This specifies the MINLP heuristic strategy. On some problems it is worth trying more comprehensive heuristic strategies by setting HEURSTRATEGY to 2 or 3.
The maximum number of consecutive infeasible SLP iterations which can occur before Xpress-SLP terminates
Value returned by a divide-by-zero in a formula
Alternative LP level control values for numerically challengeing problems
The maximum number of SLP iterations
Absolute impact convergence tolerance
Relative impact convergence tolerance
Name of the set of initial values to be used
First order differentiation mode when using analytical derivatives
When set to a nonzero value, the MPS reader will keep the equals column in the problem
Use linear and quadratic constraints and objective function to further reduce bounds on all variables
Level of printing during SLP iterations
Number of iterations in the line search
Number of iterations in the pattern search preceding the line search
Iteration in which to active the line search
Maximum number of zero length line search steps before line search is deactivated
Nonzero tolerance for dropping coefficients from the linearization.
The maximum time in seconds that the SLP optimization will run before it terminates
Maximum penalty weight for delta or error vectors
Factor for expanding size of dynamic arrays in memory
Factor by which the net objective is taken into account in the merit function
Factor by which step bounds can be decreased beneath XSLP_ATOL_A
Formatting string for creation of names for SLP negative penalty delta vectors
Formatting string for creation of names for SLP negative penalty error vectors
Minimum penalty weight for delta or error vectors
Bitmap describing the MISLP algorithms to be used
Absolute objective function cutoff for MIP termination
Absolute objective function cutoff for MIP termination
Number of SLP iterations to check when considering a node for cutting off
Number of SLP iterations to check when considering a node for cutting off
Default algorithm to be used during the tree search in MISLP
Absolute penalty error cost tolerance for MIP cut-off
Relative penalty error cost tolerance for MIP cut-off
Bitmap describing the step-bound fixing strategy during MISLP
Maximum number of SLP iterations at each node
Frequency with which MIP status is printed
Number of SLP iterations at each node over which to measure objective function variation
Absolute objective function tolerance for MIP termination
Relative objective function tolerance for MIP termination
Bitmap describing the step-bound relaxation strategy during MISLP
Defines the maximum range inside which initial points are generated by multistart presets
Absolute effective matrix element convergence tolerance
Relative effective matrix element convergence tolerance
The multistart master control. Defines if the multistart search is to be initiated, or if only the baseline model is to be solved.
The level of logging during the multistart run.
The maximum number of jobs to create during the multistart search.
The maximum total time to be spent in the mutlistart search.
The maximum number of problem objects allowed to pool up before synchronization in the deterministic multistart.
Random seed used for the automatic generation of initial point when loading multistart presets
The maximum number of threads to be used in multistart
Marginal value tolerance for determining if a constraint is slack
Controls whether to call FICO Xpress Global or one of the local solvers
Objective function sense.
Assumed maximum value of the objective function in absolute value.
Factor to estimate initial penalty costs from objective function
Number of SLP iterations over which to measure objective function variation for static objective (2) convergence criterion
When set, this defines a target optimality tolerance to which the linearizations are solved to
Absolute static objective (2) convergence tolerance
Relative static objective (2) convergence tolerance
Formatting string for creation of the names of the SLP penalty transfer vectors
Iteration from which to record row penalty information
Formatting string for creation of the names of the SLP penalty rows
Formatting string for creation of names for SLP positive penalty delta vectors
Formatting string for creation of names for SLP positive penalty error vectors
This control determines whether postsolving should be performed automatically
This control determines whether presolving should be performed prior to starting the main algorithm
Tolerance for nonlinear eliminations during SLP presolve
This control determines the level of changes presolve may carry out on the problem and whether column/row indices may change
Bitmap indicating the SLP presolve actions to be taken
Minimum absolute value for a variable which is identified as nonzero during SLP presolve
Decay term for primal integral computation
Reference solution value to take into account when calculating the primal integral
This control determines whether probing on a subset of variables should be performed prior to starting the main algorithm. Probing runs multiple times bound reduction in order to further tighten the bounding box.
Controls the problem reformulations carried out before augmentation. This allows SLP to take advantage of dedicated algorithms for special problem classes.
Number of steps reaching the step bound in the same direction before step bounds are increased
Number of steps in same direction before damping factor is increased
Formatting string for creation of names for SLP lower step bound rows
Name of the set of initial step bounds to be used
Position of first character of SLP variable name used to create name of SLP lower and upper step bound rows
SLP iteration after which step bounds are first applied
Formatting string for creation of names for SLP upper step bound rows
When to re-scale the SLP problem
Iteration limit used in determining when to re-scale the SLP matrix
Multiplier to reduce a step bound
Defines an overwrite / adjustment of step bounds for improving iterations
Frequency with which SLP status is printed
Selects the library to use for local solves
Absolute slack convergence tolerance
Relative slack convergence tolerance
Stop optimization and return error code if internal function argument is out of range
Default number of threads to be used
Defines if user functions are allowed to be called in parallel
Name of the set of tolerance sets to be used
Mask of variable or row names that are to be traced through the SLP iterates
Controls the information printed for XSLP_TRACEMASK. The order in which the information is printed is determined by the order of bits in XSLP_TRACEMASKOPS.
The number of consecutive SLP iterations that may have an unfinished status before the solve is terminated.
Formatting string for creation of names for SLP update rows
Position of first character of SLP variable name used to create name of SLP update row
Minimum improvement in validation targets to continue iterating
Optimality target tolerance
Feasiblity target tolerance
Absolute tolerance for the XSLPvalidate procedure
Relative tolerance for the XSLPvalidatekkt procedure
Relative tolerance for the XSLPvalidate procedure
Number of SLP iterations over which to measure static objective (3) convergence
Number of SLP iterations after which static objective (3) convergence testing starts
Absolute static objective (3) convergence tolerance
Relative static objective (3) convergence tolerance
Number of SLP iterations over which to measure the objective for the extended convergence continuation criterion
Absolute extended convergence continuation tolerance
Relative extended convergence continuation tolerance
Number of SLP iterations over which to measure static objective (1) convergence
Number of SLP iterations up to which static objective (1) convergence testing starts
Absolute static objective function (1) tolerance
Relative static objective function (1) tolerance
Absolute tolerance
Bitmap determining the behavior of the placeholder deletion procedure
Number of consecutive times a placeholder entry is zero before being considered for deletion
SLP iteration at which criteria for deletion of placeholder entries are first activated.

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-2024 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.