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.