Initializing help system before first use

ASCII Range Files

Users can display range (sensitivity analysis) information produced by XPRSrange (RANGE) either directly, or by printing it to a file for use. Two functions exist for this purpose, namely XPRSwriteprtrange (WRITEPRTRANGE) and XPRSwriterange (WRITERANGE). The first of these, XPRSwriterange (WRITERANGE) produces two files, problem_name.hdr and problem_name.rsc, both of which have fixed fields and are intended for use as input to another program. By way of contrast, command XPRSwriteprtrange (WRITEPRTRANGE) outputs information in a format intended for sending directly to a printer (problem_name.rrt). The information provided by both functions is essentially the same and the difference lies purely in the intended purpose for the output. The formats of these files are described below.

Solution Header (.hdr) Files

This file contains only one line of characters comprising header information which may be used for controlling the reading of the .rsc file. Its format is identical to that produced by XPRSwritesol (WRITESOL) and is described in Solution Header (.hdr) Files above.

CSV Format Range (.rsc) Files

The bulk of the range information is contained in this file. One line of characters is used for each row and column in the problem, starting with the rows, ordered according to input sequence number. Each line contains 16 fields, separated by commas, as follows:

Field Type Width Description
1 integer 6 input sequence number of variable;
2 string * variable (row or column vector) name;
3 string 3 variable type (C=column; N, L, G, E for rows);
4 string 4 variable status (LL, BS, UL, EQ or **);
5 real 12 value of activity;
6 real 12 slack activity (rows) or input cost (columns);
7 real 12 lower activity;
8 real 12 unit cost down;
9 real 12 lower profit;
10 string * limiting process;
11 string 4 status of limiting process at limit (LL, UL);
12 real 12 upper activity;
13 real 12 unit cost up;
14 real 12 upper profit;
15 string * limiting process;
16 string 4 status of limiting process at limit (LL, UL).
* these fields are variable length depending on the maximum name length

  • The field Type is as for the .hdr file.
  • The variable type (field 3) is defined by:
    C   structural column;
    N   N type row;
    L   L type row;
    G   G type row;
    E   E type row;
  • The variable status (field 4) is defined by:
    LL   non-basic at lower bound;
    **   basic and infeasible;
    BS   basic and feasible;
    UL   non-basic at upper bound;
    EQ   equality row;
    ??   unknown.
  • The status of limiting process at limit (fields 11 and 16) is defined by:
    LL   non-basic at lower bound;
    UL   non-basic at upper bound;
  • A full description of all fields can be found below.

Fixed Format Range (.rrt) Files

This file is the output of the XPRSwriteprtrange (WRITEPRTRANGE ) command and has the same format as is displayed to the console by PRINTRANGE. This format is described below by way of an example.

Output is displayed in three sections, variously showing summary data, row data and column data. The first of these is the same information as displayed by the XPRSwriteprtsol (WRITEPRTSOL) command (see above), resembling the following:

Problem Statistics
Matrix PLAN
Objective C0______
RHS R0______
Problem has 7 rows and 5 structural columns

Solution Statistics
Minimization performed
Optimal solution found after 6 iterations
Objective function value is 15.000000

The next section presents data for the rows, or constraints, of the problem. For each constraint, data are displayed in two lines. In this example the data for just one row is shown:

Rows Section
Vector Activity Lower actvty Unit cost DN Upper cost Limiting AT
Number Slack    Upper actvty Unit cost UP            Process
G C1 10.000000    9.000000  -1.000000                x4       LL
LL 2 .000000     12.000000   1.000000                C6       UL

In the first of the two lines, the row type (N, G, L or E) appears before the row name. The value of the activity follows. Then comes Lower actvty, the level to which the activity may be decreased at a cost per unit of decrease given by the Unit cost DN column. At this level the unit cost changes. The Limiting Process is the name of the row or column that would change its status if the activity of this row were decreased beyond its lower activity. The AT column displays the status of the limiting process when the limit is reached. It is either LL, meaning that it leaves or enters the basis at its lower limit, or UL, meaning that it leaves or enters the basis at its upper limit. In calculating Lower actvty, the lower bound on the row as specified in the RHS section of the matrix is ignored.

The second line starts with the current status of the row and the sequence number. The value of the slack on the row is then shown. The next four pieces of data are exactly analogous to the data above them. Again, in calculating Upper actvty, the upper bound on that activity is ignored.

The columns, or variables, are similarly displayed in two lines. Here we show just two columns:

Columns Section
Vector Activity   Lower actvty Unit costDN Upper cost Limiting AT
Number Input cost Upper actvty Unit costUP Lower cost Process
C x4   1.000000   -2.000000    5.000000    6.000000   C5       LL
BS 8   1.000000    3.000000    1.000000     .000000   C1       LL

C x5   2.000000   -1.000000    2.000000    6.000000   X3       LL
UL 9   4.000000    3.000000   -2.000000  -very large  X2       LL

The vector type is always C, denoting a column. The Activity is the optimal value. The Lower/Upper actvty is the activity level that would result from a cost coefficient increase/decrease from the Input cost to the Upper/Lower cost (assuming a minimization problem). The lower/upper bound on the column is ignored in this calculation. The Unit cost DN/UP is the change in the objective function per unit of change in the activity down/up to the Lower/Upper activity. The interpretation of the Limiting Processes and AT statuses is as for rows. The second line contains the column's status and sequence number.

Note that for non-basic columns, the Unit costs are always the (absolute) values of the reduced costs.

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