Initializing help system before first use

SLPDATA

SLPDATA is a new section which holds additional information for solving the non-linear problem using SLP.

Many of the data items have a setname. This works in the same way as the BOUND, RANGE or RHS name, in that a number of different values can be given, each with a different set name, and the one which is actually used is then selected by specifying the appropriate setname before reading the problem.

Record type IV and the tolerance records Tx, Rx can have "=" as the variable name. This provides a default value for the record type, which will be used if no specific information is given for a particular variable.

Note that only linear BOUND types can be included in the SLPDATA section. Bound types for global entities (discrete variables and special ordered sets) must be provided in the normal BOUNDS section and the variables must also appear explicitly in the COLUMNS section.

All of the items in the SLPDATA section can be loaded into a model using Xpress NonLinear function calls.

CV (Character variable)

CV  setname  variable  value

The CV record defines a character variable. This is only required for user functions which have character arguments (for example, file names). The value field begins with the first non-blank character after the variable name, and the value of the variable is made up of all the characters from that point to the end of the record. The normal free-format rules do not apply in the value field, and all spacing will be retained exactly as in the original record.

Examples:

CV  CVSET1  MyCV1  Program Files\MyLibs\MyLib1
This defines the character variable named MyCV1. It is required because there is an embedded space in the path name which it holds.

CV  CVSET1  MyCV1  Program Files\MyLibs\MyLib1
CV  CVSET2  MyCV1  Program Files\MyLibs\MyLib2
This defines the character variable named MyCV1. There are two definitions, and the appropriate one is selected by setting the string control variable XSLP_CVNAME before calling XSLPreadprob to load the problem.

DR (Determining row)

DR  variable  rowname  [weighting]

The DR record defines the determining row for a variable.

In most non-linear problems, there are some variables which are effectively defined by means of an equation in terms of other variables. Such an equation is called a determining row. If Xpress NonLinear knows the determining rows for the variables which appear in coefficients, then it can provide better linear approximations for the problem and can then solve it more quickly. Optionally, a non-zero integer value can be included in the weighting field. Variables which have weights will generally be evaluated in order of increasing weight. Variables without weights will generally be evaluated after those which do have weights. However, if a variable A (with or without a weight) is dependent through its determining row on another variable B, then B will always be evaluated first.

Example:

DR  X  Row1
This defines Row1 as the determining row for the variable X. If Row1 is
X - Y * Z = 6
then Y and Z will be recalculated first before X is recalculated as Y*Z+6.

EC (Enforced constraint)

EC  rowname

The EC record defines an enforced constraint. Penalty error vectors are never added to enforced constraints, so the effect of such constraints is maintained at all times.

Note that this means the linearized version of the enforced constraint will be active, so it is important to appreciate that enforcing too many constraints can easily lead to infeasible linearizations which will make it hard to solve the original nonlinear problem.

Example:

EC  Row1
This defines Row1 as an enforced constraint. When the SLP is augmented, no penalty error vectors will be added to the constraint, so the linearized version of Row1 will constrain the linearized problem in the same sense (L, G or E) as the nonlinear version of Row1 constrains the original nonlinear problem.

FR (Free variable)

FR  boundname  variable

An FR record performs the same function in the SLPDATA section as it does in the BOUNDS section. It can be used for bounding variables which do not appear as explicit columns in the matrix.

FX (Fixed variable)

FX  boundname  variable  value

An FX record performs the same function in the SLPDATA section as it does in the BOUNDS section. It can be used for bounding variables which do not appear as explicit columns in the matrix.

IV (Initial value)

IV  setname  variable  [value  |  = formula]

An IV record specifies the initial value for a variable. All variables which appear in coefficients or terms, or which have non-linear coefficients, should have an IV record.

A formula provided as the initial value for a variable can contain references to other variables. It will be evaluated based on the initial values of those variables (which may themselves be calculated by formula). It is the user's responsibility to ensure that there are no circular references within the formulae. Formulae are typically used to calculate consistent initial values for dependent variables based on the values of independent variables.

If an IV record is provided for the equals column (the column whose name is "=" and which has a fixed value of 1.0), the value provided will be used for all SLP variables which do not have an explicit initial value of their own.

If there is no explicit or implied initial value for an SLP variable, the value of control parameter XSLP_DEFAULTIV will be used.

If the initial value is greater than the upper bound of the variable, the upper bound will be used; if the initial value is less than the lower bound of the variable, the lower bound will be used.

If both a formula and a value are provided, then the explicit value will be used.

Example:

IV  IVSET1  Col99  1.4971
IV  IVSET2  Col99  2.5793
This sets the initial value of column Col99. The initial value to be used is selected using control parameter XSLP_IVNAME. If no selection is made, the first initial value set found will be used.

If Col99 is bounded in the range 1≤Col99≤2 then in the second case (when IVSET2 is selected), an initial value of 2 will be used because the value given is greater than the upper bound.

IV  IVSET2  Col98  = Col99 * 2
This sets the value of Col98 to twice the initial value of Col99 when IVSET2 is the selected initial value set.

LO (Lower bounded variable)

LO  boundname  variable  value

A LO record performs the same function in the SLPDATA section as it does in the BOUNDS section. It can be used for bounding variables which do not appear as explicit columns in the matrix.

Rx, Tx (Relative and absolute convergence tolerances)

Rx  setname  variable  value

Tx  setname  variable  value

The Tx and Rx records (where "x" is one of the defined tolerance types) define specific tolerances for convergence of the variable. See the section "convergence criteria" for a list of convergence tolerances. The same tolerance set name (setname) is used for all the tolerance records.

Example:

RA  TOLSET1  Col99  0.005
TA  TOLSET1  Col99  0.05
RI  TOLSET1  Col99  0.015
RA  TOLSET1  Col01  0.01
RA  TOLSET2  Col01  0.015
These records set convergence tolerances for variables Col99 and Col01. Tolerances RA (relative convergence tolerance), TA (absolute convergence tolerance) and RI (relative impact tolerance) are set for Col99 using the tolerance set named TOLSET1.
Tolerance RA is set for variable Col01 using tolerance sets named TOLSET1 and TOLSET2.
If control parameter XSLP_TOLNAME is set to the name of a tolerance set before the problem is read using XSLPreadprob, then only the tolerances on records with that tolerance set will be used. If XSLP_TOLNAME is blank or not set, then the name of the set on the first tolerance record will be used.

SB (Initial step bound)

SB  setname  variable  value

An SB record defines the initial step bounds for a variable. Step bounds are symmetric (i.e. the bounds on the delta are -SB≤delta≤+SB). If a value of 1.0E+20 is used (equivalent to XPRS_PLUSINFINITY in programming), the delta will never have step bounds applied, and will almost always be regarded as converged.

If there is no explicit initial step bound for an SLP variable, a value will be estimated either from the size of the coefficients in the initial linearization, or from the values of the variable during the early SLP iterations. The value of control parameter XSLP_DEFAULTSTEPBOUND provides a lower limit for the step bounds in such cases.

If there is no explicit initial step bound, then the closure convergence tolerance cannot be applied to the variable.

Example:

SB  SBSET1  Col99  1.5
SB  SBSET2  Col99  7.5
This sets the initial step bound of column Col99. The value to be used is selected using control parameter XSLP_SBNAME. If no selection is made, the first step bound set found will be used.

UF (User function)

UF  funcname  [= extname]  (arguments)  linkage  [= [param1]  [= [param2]  [= [param3] ] ] ]

A UF record defines a user function.
The definition includes the list of required arguments, and the linkage or calling mechanism. For details of the fields, see the section on Function Declaration in Xpress NonLinear.

Example:

UF  MyFunc  (  DOUBLE  ,  INTEGER  )  DLL  =  UserLib
This defines a user function called MyFunc. It takes two arguments (an array of type double precision and an array of type integer). The linkage is DLL (free-standing user library or DLL) and the function is in file UserLib.

UP (Free variable)

UP  boundname  variable  value

An UP record performs the same function in the SLPDATA section as it does in the BOUNDS section. It can be used for bounding variables which do not appear as explicit columns in the matrix.

WT (Explicit row weight)

WT  rowname  value

The WT record is a way of setting the initial penalty weighting for a row. If value is positive, then the default initial weight is multiplied by the value given. If value is negative, then the absolute value will be used instead of the default weight.

Increasing the penalty weighting of a row makes it less attractive to violate the constraint during the SLP iterations.

Examples:

WT  Row1  3
This changes the initial weighting on Row1 by multiplying by 3 the default weight calculated by Xpress-SLP during problem augmentation.

WT  Row1  -3
This sets the initial weighting on Row1 to 3.

DL (variable specific Determining row cascade iteration Limit)

DL  columnname  limit

A DL record specififies a variable specific iteration limit to be emposed on the number of iterations when cascading the variable. This can be used to overwrite the setting of XSLP_CASCADENLIMIT for a specific variable.


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