Control Parameters
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_. It is possible to use the above functions with 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:
XSLP_ALGORITHM |
Bit map describing the SLP algorithm(s) to be used
|
XSLP_ANALYZE |
Bit map activating additional options supporting model / solution path analyzis
|
XSLP_ATOL_A |
Absolute delta convergence tolerance
|
XSLP_ATOL_R |
Relative delta convergence tolerance
|
XSLP_AUGMENTATION |
Bit map describing the SLP augmentation method(s) to be used
|
XSLP_AUTOSAVE |
Frequency with which to save the model
|
XSLP_BARCROSSOVERSTART |
Default crossover activation behaviour for barrier start
|
XSLP_BARLIMIT |
Number of initial SLP iterations using the barrier method
|
XSLP_BARSTALLINGLIMIT |
Number of iterations to allow numerical failures in barrier before switching to dual
|
XSLP_BARSTALLINGOBJLIMIT |
Number of iterations over which to measure the objective change for barrier iterations with no crossover
|
XSLP_BARSTALLINGTOL |
Required change in the objective when progress is measured in barrier iterations without crossover
|
XSLP_BARSTARTOPS |
Controls behaviour when the barrier is used to solve the linearizations
|
XSLP_CALCTHREADS |
Number of threads used for formula and derivatives evaluations
|
XSLP_CASCADE |
Bit map describing the cascading to be used
|
XSLP_CASCADENLIMIT |
Maximum number of iterations for cascading with non-linear determining rows
|
XSLP_CASCADETOL_PA |
Absolute cascading print tolerance
|
XSLP_CASCADETOL_PR |
Relative cascading print tolerance
|
XSLP_CDTOL_A |
Absolute tolerance for deducing constant derivatives
|
XSLP_CDTOL_R |
Relative tolerance for deducing constant derivatives
|
XSLP_CLAMPSHRINK |
Shrink ratio used to impose strict convergence on variables converged in extended criteria only
|
XSLP_CLAMPVALIDATIONTOL_A |
Absolute validation tolerance for applying XSLP_CLAMPSHRINK
|
XSLP_CLAMPVALIDATIONTOL_R |
Relative validation tolerance for applying XSLP_CLAMPSHRINK
|
XSLP_CONTROL |
Bit map describing which Xpress NonLinear functions also activate the corresponding Optimizer Library function
|
XSLP_CONVERGENCEOPS |
Bit map describing which convergence tests should be carried out
|
XSLP_CTOL |
Closure convergence tolerance
|
XSLP_CVNAME |
Name of the set of character variables to be used
|
XSLP_DAMP |
Damping factor for updating values of variables
|
XSLP_DAMPEXPAND |
Multiplier to increase damping factor during dynamic damping
|
XSLP_DAMPMAX |
Maximum value for the damping factor of a variable during dynamic damping
|
XSLP_DAMPMIN |
Minimum value for the damping factor of a variable during dynamic damping
|
XSLP_DAMPSHRINK |
Multiplier to decrease damping factor during dynamic damping
|
XSLP_DAMPSTART |
SLP iteration at which damping is activated
|
XSLP_DCLIMIT |
Default iteration delay for delayed constraints
|
XSLP_DCLOG |
Amount of logging information for activcation of delayed constraints
|
XSLP_DEFAULTIV |
Default initial value for an SLP variable if none is explicitly given
|
XSLP_DEFAULTSTEPBOUND |
Minimum initial value for the step bound of an SLP variable if none is explicitly given
|
XSLP_DELAYUPDATEROWS |
Number of SLP iterations before update rows are fully activated
|
XSLP_DELTA_A |
Absolute perturbation of values for calculating numerical derivatives
|
XSLP_DELTA_R |
Relative perturbation of values for calculating numerical derivatives
|
XSLP_DELTA_X |
Minimum absolute value of delta coefficients to be retained
|
XSLP_DELTA_Z |
Tolerance used when calculating derivatives
|
XSLP_DELTA_ZERO |
Absolute zero acceptance tolerance used when calculating derivatives
|
XSLP_DELTACOST |
Initial penalty cost multiplier for penalty delta vectors
|
XSLP_DELTACOSTFACTOR |
Factor for increasing cost multiplier on total penalty delta vectors
|
XSLP_DELTAFORMAT |
Formatting string for creation of names for SLP delta vectors
|
XSLP_DELTAMAXCOST |
Maximum penalty cost multiplier for penalty delta vectors
|
XSLP_DELTAOFFSET |
Position of first character of SLP variable name used to create name of delta vector
|
XSLP_DELTAZLIMIT |
Number of SLP iterations during which to apply XSLP_DELTA_Z
|
XSLP_DERIVATIVES |
Bitmap describing the method of calculating derivatives
|
XSLP_DETERMINISTIC |
Determines if the parallel features of SLP should be guaranteed to be deterministic
|
XSLP_DJTOL |
Tolerance on DJ value for determining if a variable is at its step bound
|
XSLP_DRCOLTOL |
The minimum absolute magnitude of a determining column, for which the determined variable is still regarded as well defined
|
XSLP_ECFCHECK |
Check feasibility at the point of linearization for extended convergence criteria
|
XSLP_ECFTOL_A |
Absolute tolerance on testing feasibility at the point of linearization
|
XSLP_ECFTOL_R |
Relative tolerance on testing feasibility at the point of linearization
|
XSLP_ECHOXPRSMESSAGES |
Controls if the XSLP message callback should relay messages from the XPRS library.
|
XSLP_ENFORCECOSTSHRINK |
Factor by which to decrease the current penalty multiplier when enforcing rows.
|
XSLP_ENFORCEMAXCOST |
Maximum penalty cost in the objective before enforcing most violating rows
|
XSLP_ERRORCOST |
Initial penalty cost multiplier for penalty error vectors
|
XSLP_ERRORCOSTFACTOR |
Factor for increasing cost multiplier on total penalty error vectors
|
XSLP_ERRORMAXCOST |
Maximum penalty cost multiplier for penalty error vectors
|
XSLP_ERROROFFSET |
Position of first character of constraint name used to create name of penalty error vectors
|
XSLP_ERRORTOL_A |
Absolute tolerance for error vectors
|
XSLP_ERRORTOL_P |
Absolute tolerance for printing error vectors
|
XSLP_ESCALATION |
Factor for increasing cost multiplier on individual penalty error vectors
|
XSLP_ETOL_A |
Absolute tolerance on penalty vectors
|
XSLP_ETOL_R |
Relative tolerance on penalty vectors
|
XSLP_EVALUATE |
Evaluation strategy for user functions
|
XSLP_EVTOL_A |
Absolute tolerance on total penalty costs
|
XSLP_EVTOL_R |
Relative tolerance on total penalty costs
|
XSLP_EXPAND |
Multiplier to increase a step bound
|
XSLP_FEASTOLTARGET |
When set, this defines a target feasibility tolerance to which the linearizations are solved to
|
XSLP_FILTER |
Bit map for controlling solution updates
|
XSLP_FINDIV |
Option for running a heuristic to find a feasible initial point
|
XSLP_FUNCEVAL |
Bit map for determining the method of evaluating user functions and their derivatives
|
XSLP_GRANULARITY |
Base for calculating penalty costs
|
XSLP_GRIDHEURSELECT |
Bit map selectin which heuristics to run if the problem has variable with an integer delta
|
XSLP_HESSIAN |
Second order differentiation mode when using analytical derivatives
|
XSLP_HEURSTRATEGY |
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.
|
XSLP_INFEASLIMIT |
The maximum number of consecutive infeasible SLP iterations which can occur before Xpress-SLP terminates
|
XSLP_INFINITY |
Value returned by a divide-by-zero in a formula
|
XSLP_ITERFALLBACKOPS |
Alternative LP level control values for numerically challengeing problems
|
XSLP_ITERLIMIT |
The maximum number of SLP iterations
|
XSLP_ITOL_A |
Absolute impact convergence tolerance
|
XSLP_ITOL_R |
Relative impact convergence tolerance
|
XSLP_IVNAME |
Name of the set of initial values to be used
|
XSLP_JACOBIAN |
First order differentiation mode when using analytical derivatives
|
XSLP_LINQUADBR |
Use linear and quadratic constraints and objective function to further reduce bounds on all variables
|
XSLP_LOG |
Level of printing during SLP iterations
|
XSLP_LSITERLIMIT |
Number of iterations in the line search
|
XSLP_LSPATTERNLIMIT |
Number of iterations in the pattern search preceding the line search
|
XSLP_LSSTART |
Iteration in which to active the line search
|
XSLP_LSZEROLIMIT |
Maximum number of zero length line search steps before line search is deactivated
|
XSLP_MATRIXTOL |
Provides an override value for XPRS_MATRIXTOL, which controls the smallest magnitude of matrix coefficents
|
XSLP_MAXTIME |
The maximum time in seconds that the SLP optimization will run before it terminates
|
XSLP_MAXWEIGHT |
Maximum penalty weight for delta or error vectors
|
XSLP_MEMORYFACTOR |
Factor for expanding size of dynamic arrays in memory
|
XSLP_MERITLAMBDA |
Factor by which the net objective is taken into account in the merit function
|
XSLP_MINSBFACTOR |
Factor by which step bounds can be decreased beneath XSLP_ATOL_A
|
XSLP_MINUSDELTAFORMAT |
Formatting string for creation of names for SLP negative penalty delta vectors
|
XSLP_MINUSERRORFORMAT |
Formatting string for creation of names for SLP negative penalty error vectors
|
XSLP_MINWEIGHT |
Minimum penalty weight for delta or error vectors
|
XSLP_MIPALGORITHM |
Bitmap describing the MISLP algorithms to be used
|
XSLP_MIPCUTOFF_A |
Absolute objective function cutoff for MIP termination
|
XSLP_MIPCUTOFF_R |
Absolute objective function cutoff for MIP termination
|
XSLP_MIPCUTOFFCOUNT |
Number of SLP iterations to check when considering a node for cutting off
|
XSLP_MIPCUTOFFLIMIT |
Number of SLP iterations to check when considering a node for cutting off
|
XSLP_MIPDEFAULTALGORITHM |
Default algorithm to be used during the global search in MISLP
|
XSLP_MIPERRORTOL_A |
Absolute penalty error cost tolerance for MIP cut-off
|
XSLP_MIPERRORTOL_R |
Relative penalty error cost tolerance for MIP cut-off
|
XSLP_MIPFIXSTEPBOUNDS |
Bitmap describing the step-bound fixing strategy during MISLP
|
XSLP_MIPITERLIMIT |
Maximum number of SLP iterations at each node
|
XSLP_MIPLOG |
Frequency with which MIP status is printed
|
XSLP_MIPOCOUNT |
Number of SLP iterations at each node over which to measure objective function variation
|
XSLP_MIPOTOL_A |
Absolute objective function tolerance for MIP termination
|
XSLP_MIPOTOL_R |
Relative objective function tolerance for MIP termination
|
XSLP_MIPRELAXSTEPBOUNDS |
Bitmap describing the step-bound relaxation strategy during MISLP
|
XSLP_MSMAXBOUNDRANGE |
Defines the maximum range inside which initial points are generated by multistart presets
|
XSLP_MTOL_A |
Absolute effective matrix element convergence tolerance
|
XSLP_MTOL_R |
Relative effective matrix element convergence tolerance
|
XSLP_MULTISTART |
The multistart master control. Defines if the multistart search is to be initiated, or if only the baseline model is to be solved.
|
XSLP_MULTISTART_MAXSOLVES |
The maximum number of jobs to create during the multistart search.
|
XSLP_MULTISTART_MAXTIME |
The maximum total time to be spent in the mutlistart search.
|
XSLP_MULTISTART_POOLSIZE |
The maximum number of problem objects allowed to pool up before synchronization in the deterministic multistart.
|
XSLP_MULTISTART_SEED |
Random seed used for the automatic generation of initial point when loading multistart presets
|
XSLP_MULTISTART_THREADS |
The maximum number of threads to be used in multistart
|
XSLP_MVTOL |
Marginal value tolerance for determining if a constraint is slack
|
XSLP_OBJSENSE |
Objective function sense
|
XSLP_OBJTOPENALTYCOST |
Factor to estimate initial penalty costs from objective function
|
XSLP_OCOUNT |
Number of SLP iterations over which to measure objective function variation for static objective (2) convergence criterion
|
XSLP_OPTIMALITYTOLTARGET |
When set, this defines a target optimality tolerance to which the linearizations are solved to
|
XSLP_OTOL_A |
Absolute static objective (2) convergence tolerance
|
XSLP_OTOL_R |
Relative static objective (2) convergence tolerance
|
XSLP_PENALTYCOLFORMAT |
Formatting string for creation of the names of the SLP penalty transfer vectors
|
XSLP_PENALTYINFOSTART |
Iteration from which to record row penalty information
|
XSLP_PENALTYROWFORMAT |
Formatting string for creation of the names of the SLP penalty rows
|
XSLP_PLUSDELTAFORMAT |
Formatting string for creation of names for SLP positive penalty delta vectors
|
XSLP_PLUSERRORFORMAT |
Formatting string for creation of names for SLP positive penalty error vectors
|
XSLP_POSTSOLVE |
This control determines whether postsolving should be performed automatically
|
XSLP_PRESOLVE |
This control determines whether presolving should be performed prior to starting the main algorithm
|
XSLP_PRESOLVELEVEL |
This control determines the level of changes presolve may carry out on the problem
|
XSLP_PRESOLVEOPS |
Bitmap indicating the SLP presolve actions to be taken
|
XSLP_PRESOLVEPASSLIMIT |
Maximum number of passes through the problem to improve SLP bounds
|
XSLP_PRESOLVEZERO |
Minimum absolute value for a variable which is identified as nonzero during SLP presolve
|
XSLP_PRIMALINTEGRALREF |
Reference solution value to take into account when calculating the primal integral
|
XSLP_PROBING |
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.
|
XSLP_REFORMULATE |
Controls the problem reformulations carried out before augmentation. This allows SLP to take advantage of dedicated algorithms for special problem classes.
|
XSLP_SAMECOUNT |
Number of steps reaching the step bound in the same direction before step bounds are increased
|
XSLP_SAMEDAMP |
Number of steps in same direction before damping factor is increased
|
XSLP_SBLOROWFORMAT |
Formatting string for creation of names for SLP lower step bound rows
|
XSLP_SBNAME |
Name of the set of initial step bounds to be used
|
XSLP_SBROWOFFSET |
Position of first character of SLP variable name used to create name of SLP lower and upper step bound rows
|
XSLP_SBSTART |
SLP iteration after which step bounds are first applied
|
XSLP_SBUPROWFORMAT |
Formatting string for creation of names for SLP upper step bound rows
|
XSLP_SCALE |
When to re-scale the SLP problem
|
XSLP_SCALECOUNT |
Iteration limit used in determining when to re-scale the SLP matrix
|
XSLP_SHRINK |
Multiplier to reduce a step bound
|
XSLP_SHRINKBIAS |
Defines an overwrite / adjustment of step bounds for improving iterations
|
XSLP_SLPLOG |
Frequency with which SLP status is printed
|
XSLP_SOLVER |
First order differentiation mode when using analytical derivatives
|
XSLP_STOL_A |
Absolute slack convergence tolerance
|
XSLP_STOL_R |
Relative slack convergence tolerance
|
XSLP_STOPOUTOFRANGE |
Stop optimization and return error code if internal function argument is out of range
|
XSLP_THREADS |
Default number of threads to be used
|
XSLP_THREADSAFEUSERFUNC |
Defines if user functions are allowed to be called in parallel
|
XSLP_TIMEPRINT |
Print additional timings during SLP optimization
|
XSLP_TOLNAME |
Name of the set of tolerance sets to be used
|
XSLP_TRACEMASK |
Mask of variable or row names that are to be traced through the SLP iterates
|
XSLP_TRACEMASKOPS |
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.
|
XSLP_UNFINISHEDLIMIT |
Number of times within one SLP iteration that an unfinished LP optimization will be continued
|
XSLP_UPDATEFORMAT |
Formatting string for creation of names for SLP update rows
|
XSLP_UPDATEOFFSET |
Position of first character of SLP variable name used to create name of SLP update row
|
XSLP_VALIDATIONTARGET_K |
Optimality target tolerance
|
XSLP_VALIDATIONTARGET_R |
Feasiblity target tolerance
|
XSLP_VALIDATIONTOL_A |
Absolute tolerance for the XSLPvalidate procedure
|
XSLP_VALIDATIONTOL_R |
Relative tolerance for the XSLPvalidate procedure
|
XSLP_VCOUNT |
Number of SLP iterations over which to measure static objective (3) convergence
|
XSLP_VLIMIT |
Number of SLP iterations after which static objective (3) convergence testing starts
|
XSLP_VTOL_A |
Absolute static objective (3) convergence tolerance
|
XSLP_VTOL_R |
Relative static objective (3) convergence tolerance
|
XSLP_WCOUNT |
Number of SLP iterations over which to measure the objective for the extended convergence continuation criterion
|
XSLP_WTOL_A |
Absolute extended convergence continuation tolerance
|
XSLP_WTOL_R |
Relative extended convergence continuation tolerance
|
XSLP_XCOUNT |
Number of SLP iterations over which to measure static objective (1) convergence
|
XSLP_XLIMIT |
Number of SLP iterations up to which static objective (1) convergence testing starts
|
XSLP_XTOL_A |
Absolute static objective function (1) tolerance
|
XSLP_XTOL_R |
Relative static objective function (1) tolerance
|
XSLP_ZERO |
Absolute tolerance
|
XSLP_ZEROCRITERION |
Bitmap determining the behavior of the placeholder deletion procedure
|
XSLP_ZEROCRITERIONCOUNT |
Number of consecutive times a placeholder entry is zero before being considered for deletion
|
XSLP_ZEROCRITERIONSTART |
SLP iteration at which criteria for deletion of placeholder entries are first activated.
|
© 2001-2020 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.