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.