PROC OPTLP Statement
- PROC OPTLP < options > ;
You can specify the following options in the PROC OPTLP statement.
-
DATA=SAS-data-set
-
specifies the input data set corresponding to the LP model. If this option is not specified,
PROC OPTLP will use the most recently created SAS data set. See Chapter 14, "The MPS-Format SAS Data Set,"
for more details about the input data set.
-
DUALIN=SAS-data-set
- DIN=SAS-data-set
-
specifies the input data set corresponding to the dual solution that is required for
warm starting the simplex solvers. See the section "Data Input and Output" for details.
-
DUALOUT=SAS-data-set
- DOUT=SAS-data-set
-
specifies the output data set for the dual solution. This data set contains the
dual solution information. See the section "Data Input and Output" for details.
-
OBJSENSE=option
-
specifies whether the LP model is a minimization or a maximization problem. You
specify OBJSENSE=MIN for a minimization problem and OBJSENSE=MAX for a maximization problem.
Alternatively, you can specify the objective sense in the input data set; see the section "ROWS Section" for details.
If for some reason the objective sense is specified differently in these two places, this option supersedes the
objective sense specified in the input data set. If the objective sense is not specified
anywhere, then PROC OPTLP interprets and solves the linear program as a minimization problem.
-
PRIMALIN=SAS-data-set
- PIN=SAS-data-set
-
specifies the input data set corresponding to the primal solution that is required for
warm starting the simplex solvers. See the section "Data Input and Output" for details.
-
PRIMALOUT=SAS-data-set
- POUT=SAS-data-set
-
specifies the output data set for the primal solution. This data set contains the
primal solution information. See the section "Data Input and Output" for details.
-
SAVE_ONLY_IF_OPTIMAL
-
specifies that the PRIMALOUT= and DUALOUT= data sets be saved only if the
final solution obtained by the solver at termination is optimal. If the PRIMALOUT=
and DUALOUT= options are specified, then by default (that is, omitting the
SAVE_ONLY_IF_OPTIMAL option), PROC OPTLP always saves the solutions
obtained at termination, regardless of the final status. If the SAVE_ONLY_IF_OPTIMAL option is not specified, the output data sets can contain an intermediate solution, if one is available.
-
IIS=OFF(0) ON(1) (experimental)
-
specifies whether PROC OPTLP performs detection of an irreducible infeasible set (IIS). When IIS=ON, PROC OPTLP tries to identify a set of constraints and variables that form an IIS. If an IIS is found, information about infeasible constraints or variable bounds can be found in the DUALOUT= and PRIMALOUT= data sets. If no IIS is detected, then the presolver is applied and a solver is called to continue solving the problem. The default of this option is OFF. See the section "Irreducible Infeasible Set" for details.
-
SOLVER=option
- SOL=option
-
specifies one of the following LP solvers:
Option
|
Description
|
PRIMAL (PS) | Use primal simplex solver. |
DUAL (DS) | Use dual simplex solver. |
ITERATIVE (II), experimental | Use interior point solver. |
The valid abbreviated value for each option is indicated in parentheses.
By default, the dual simplex solver is used.
-
PRESOLVER=option
- PRESOL=option
-
specifies one of the following presolve options:
Option
|
Description
|
NONE (0) | Disable presolver. |
AUTOMATIC (-1) | Apply presolver by using default setting. |
BASIC (1) | Perform basic presolve like
removing empty rows, columns, and fixed variables. |
MODERATE (2) | Perform basic presolve and
apply other inexpensive presolve techniques. |
AGGRESSIVE (3) | Perform moderate presolve and apply other aggressive (but expensive) presolve techniques. |
You can also specify the option by specifying an integer from -1 to 3.
The integer value for each option is indicated in parentheses.
The default option is AUTOMATIC (-1). See the section "Presolve" for details.
-
FEASTOL=
-
specifies the feasibility tolerance [1E - 9, 1E - 4] for determining the feasibility of a variable value. The default value is 1E - 6.
-
MAXITER=
-
specifies the maximum number of iterations. The value can be any integer between one and the largest four-byte signed integer, which is . If you do not specify this option, the procedure does not stop based on the number of iterations performed.
-
MAXTIME=
-
specifies an upper limit of seconds of time for reading in the data and performing the optimization process. The timer used by this option is determined by the value
of the TIMETYPE= option.
If you do not specify this option, the procedure does
not stop based on the amount of time elapsed.
-
OPTTOL=
-
specifies the optimality tolerance [1E - 9, 1E - 4] for declaring optimality. The default value is 1E - 6.
-
PRINTFREQ=
-
specifies that the printing of the solution progress to the iteration log is to occur after every iterations. The print frequency, , is an integer between zero and the largest four-byte signed integer, which is .
The value disables the printing of the progress of the solution.
If the PRINTFREQ= option is not specified, then PROC OPTLP displays the iteration log with a dynamic frequency according to the problem size if one of the simplex solvers is used, or with frequency 1 if the interior point solver is used.
-
PRINTLEVEL=0 1 2
-
specifies whether a summary of the problem and solution should be printed. If PRINTLEVEL=1,
then two ODS (Output Delivery System) tables named "ProblemSummary"
and "SolutionSummary" are produced and printed. If PRINTLEVEL=2,
then the "ProblemSummary" and "SolutionSummary" tables are produced and printed along with a third table called "ProblemStatistics." If PRINTLEVEL=0, then no ODS tables are produced or printed. The default value of this option is 1.
For details about the ODS tables created by PROC OPTLP, see the section "ODS Tables".
-
TIMETYPE=CPU(0) REAL(1)
-
specifies type of the time used in a PROC OPTLP call. Numeric values of time can be specified in the MAXTIME= option or reported in the _OROPTLP_ macro variable. The value of this option determines whether such time is CPU time or real time. The default value of this option is CPU.
-
BASIS=option
-
specifies the following options for generating an initial basis:
Option
|
Description
|
CRASH (0) | Generate an initial basis by using crash techniques (Maros 2003). The procedure creates a triangular basic matrix consisting of both decision variables and slack variables. |
SLACK (1) | Generate an initial basis by using all slack variables. |
WARMSTART (2) | Start the simplex solvers with a user-specified initial basis. The PRIMALIN= and DUALIN=
data sets are required to specify an initial basis. |
You can also specify the option by specifying an integer from 0 to 2.
The integer value for each option is indicated in parentheses.
The default option for the primal simplex solver is CRASH (0). The default option for the
dual simplex solver is SLACK(1).
-
PRICETYPE=option
-
specifies one of the following pricing strategies for the simplex solvers:
Option
|
Description
|
HYBRID (0) | Use a hybrid of Devex and steepest-edge pricing strategies. Available for the primal simplex solver only. |
PARTIAL (1) | Use the Dantzig's rule on a queue of decision variables. Optionally, you can specify QUEUESIZE=. Available for the primal simplex solver only. |
FULL (2) | Use the Dantzig's rule on all decision variables. |
DEVEX (3) | Use Devex pricing strategy. |
STEEPESTEDGE (4) | Use steepest-edge pricing strategy. |
You can also specify the option by specifying an integer from 0 to 4.
The integer value for each option is indicated in parentheses.
The default pricing strategy for the primal simplex solver is
HYBRID (0) and for the dual simplex solver is STEEPESTEDGE (4).
See the section "Pricing Strategies for the Simplex Solvers" for details.
-
QUEUESIZE=
-
specifies the queue size , where is the number of decision variables. This queue is used for finding an entering variable in the simplex iteration. The default value is chosen adaptively based on the number of decision variables. This option is used only when PRICETYPE=PARTIAL.
-
SCALE=option
-
specifies one of the following scaling options:
Option
|
Description
|
NONE (0) | Disable scaling. |
AUTOMATIC (-1) | Automatically apply scaling procedure if necessary. |
You can also specify the option by specifying the integer -1 or 0.
The integer value for each option is indicated in parentheses.
The default option is AUTOMATIC ( - 1).
-
STOP_DG=
-
specifies the desired relative duality gap [1E - 9, 1E - 4]. This is the
relative difference between the primal and dual objective function values and
is the primary solution quality parameter. The default value is 1E - 6.
See the section "The Interior Point Algorithm: Overview" for details.
-
STOP_DI=
-
specifies the maximum allowed relative dual constraints violation [1E - 9, 1E - 4].
The default value is 1E - 6. See the section "The Interior Point Algorithm: Overview" for details.
-
STOP_PI=
-
specifies the maximum allowed relative bound and primal constraints violation [1E - 9, 1E - 4].
The default value is 1E - 6. See the section "The Interior Point Algorithm: Overview" for details.
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.