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 17.2. For more information about ODS, see the SAS Output Delivery System: User's 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.

Table 17.2: ODS Tables Produced by PROC OPTQP
ODS Table Name Description PRINTLEVEL=
ProblemSummarySummary of the input QP problem1 (default)
SolutionSummarySummary of the solution status1 (default)
ProblemStatisticsDescription of input problem data2

A typical output of PROC OPTQP is shown in Output 17.5.

The OPTQP Procedure

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



The OPTQP Procedure

Solution Summary
Objective Function ....1
Solution Status Optimal
Objective Value 16352.342414
   
Primal Infeasibility 1.693635E-11
Dual Infeasibility 0
Bound Infeasibility 0
Duality Gap 1.5407616E-7
Complementarity 0.004075344
   
Iterations 26
Presolve Time 0.00
Solution Time 0.44


Figure 17.5: Typical OPTQP Output

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 17.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.44 0.438000


Figure 17.6: ODS Output Data Sets

Problem Statistics

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 10^9) 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 17.7 demonstrates the contents of the ODS table "ProblemStatistics."

The OPTQP Procedure

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


Figure 17.7: ODS Table ProblemStatistics

The variable names in the ODS table "ProblemStatistics" are Label1, cValue1, and nValue1, similar to those shown in Figure 17.6 (but not shown in Figure 17.7).

Previous Page | Next Page | Top of Page