The OPTQP Procedure |
ODS Tables |
PROC OPTQP creates two ODS (Output Delivery System) tables by default unless you specify a value other than 1 for the PRINTLEVEL= option. The first table, "ProblemSummary," is a summary of the input QP problem. The second table, "SolutionSummary," is a brief summary of the solution status. PROC OPTQP assigns a name to each table it creates. You can use these names to reference the table when using the ODS to select tables and create output data sets. These names are listed in Table 19.2. For more information about ODS, see the SAS Output Delivery System: Procedures Guide.
If you specify a value of 2 for the PRINTLEVEL= option, then a third table, "ProblemStatistics," is produced. This table contains information about the problem data. See the section Problem Statistics for more information.
ODS Table Name |
Description |
PRINTLEVEL= |
---|---|---|
ProblemSummary |
Summary of the input QP problem |
1 (default) |
SolutionSummary |
Summary of the solution status |
1 (default) |
ProblemStatistics |
Description of input problem data |
2 |
A typical output of PROC OPTQP is shown in Output 19.5.
Problem Summary | |
---|---|
Problem Name | BANDM |
Objective Sense | Minimization |
Objective Function | ....1 |
RHS | ZZZZ0001 |
Number of Variables | 472 |
Bounded Above | 0 |
Bounded Below | 472 |
Bounded Above and Below | 0 |
Free | 0 |
Fixed | 0 |
Number of Constraints | 305 |
LE (<=) | 0 |
EQ (=) | 305 |
GE (>=) | 0 |
Range | 0 |
Constraint Coefficients | 2494 |
Hessian Diagonal Elements | 25 |
Hessian Elements Above the Diagonal | 16 |
You can create output data sets from these tables by using the ODS OUTPUT statement. This can be useful, for example, when you want to create a report to summarize multiple PROC OPTQP runs. The output data sets corresponding to the preceding output are shown in Output 19.6, where you can also find (in the row following the heading of each data set in the display) the variable names that are used in the table definition (template) of each table.
Problem Summary |
Obs | Label1 | cValue1 | nValue1 |
---|---|---|---|
1 | Problem Name | BANDM | . |
2 | Objective Sense | Minimization | . |
3 | Objective Function | ....1 | . |
4 | RHS | ZZZZ0001 | . |
5 | . | ||
6 | Number of Variables | 472 | 472.000000 |
7 | Bounded Above | 0 | 0 |
8 | Bounded Below | 472 | 472.000000 |
9 | Bounded Above and Below | 0 | 0 |
10 | Free | 0 | 0 |
11 | Fixed | 0 | 0 |
12 | . | ||
13 | Number of Constraints | 305 | 305.000000 |
14 | LE (<=) | 0 | 0 |
15 | EQ (=) | 305 | 305.000000 |
16 | GE (>=) | 0 | 0 |
17 | Range | 0 | 0 |
18 | . | ||
19 | Constraint Coefficients | 2494 | 2494.000000 |
20 | . | ||
21 | Hessian Diagonal Elements | 25 | 25.000000 |
22 | Hessian Elements Above the Diagonal | 16 | 16.000000 |
Solution Summary |
Obs | Label1 | cValue1 | nValue1 |
---|---|---|---|
1 | Objective Function | ....1 | . |
2 | Solution Status | Optimal | . |
3 | Objective Value | 16352.342414 | 16352 |
4 | . | ||
5 | Primal Infeasibility | 1.693635E-11 | 1.693635E-11 |
6 | Dual Infeasibility | 0 | 0 |
7 | Bound Infeasibility | 0 | 0 |
8 | Duality Gap | 1.5407616E-7 | 0.000000154 |
9 | Complementarity | 0.004075344 | 0.004075 |
10 | . | ||
11 | Iterations | 26 | 26.000000 |
12 | Presolve Time | 0.00 | 0 |
13 | Solution Time | 0.08 | 0.078000 |
Optimizers can encounter difficulty when solving poorly formulated models. Information about data magnitude provides a simple gauge to determine how well a model is formulated. For example, a model whose constraint matrix contains one very large entry (on the order of ) can cause difficulty when the remaining entries are single-digit numbers. The PRINTLEVEL=2 option in the OPTQP procedure causes the ODS table "ProblemStatistics" to be generated. This table provides basic data magnitude information that enables you to improve the formulation of your models.
The example output in Output 19.7 demonstrates the contents of the ODS table "ProblemStatistics."
Problem Statistics | |
---|---|
Number of Constraint Matrix Nonzeros | 4 |
Maximum Constraint Matrix Coefficient | 2 |
Minimum Constraint Matrix Coefficient | 1 |
Average Constraint Matrix Coefficient | 1.25 |
Number of Linear Objective Nonzeros | 2 |
Maximum Linear Objective Coefficient | 3 |
Minimum Linear Objective Coefficient | 2 |
Average Linear Objective Coefficient | 2.5 |
Number of Lower Triangular Hessian Nonzeros | 1 |
Number of Diagonal Hessian Nonzeros | 2 |
Maximum Hessian Coefficient | 20 |
Minimum Hessian Coefficient | 2 |
Average Hessian Coefficient | 6.75 |
Number of RHS Nonzeros | 2 |
Maximum RHS | 100 |
Minimum RHS | 1 |
Average RHS | 50.5 |
Maximum Number of Nonzeros per Column | 2 |
Minimum Number of Nonzeros per Column | 2 |
Average Number of Nonzeros per Column | 2 |
Maximum Number of Nonzeros per Row | 2 |
Minimum Number of Nonzeros per Row | 2 |
Average Number of Nonzeros per Row | 2 |
The variable names in the ODS table "ProblemStatistics" are Label, cValue, and nValue, similar to those shown in Figure 19.6 (but not shown in Figure 19.7).
Copyright © SAS Institute, Inc. All Rights Reserved.