Initializing help system before first use

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_EXCELVISIBLE
Display of Excel when evaluating user functions written in Excel
XSLP_EXPAND
Multiplier to increase a step bound
XSLP_EXTRACVS
Expansion number for character variables
XSLP_EXTRAUFS
Expansion number for user functions
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_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-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.