The Quadratic Programming Solver

QP Solver Options

This section describes the options recognized by the QP solver. These options can be specified after a forward slash (/) in the SOLVE statement, provided that the QP solver is explicitly specified using a WITH clause.

The QP solver does not provide an intermediate solution if the solver terminates before reaching optimality.

Solver Options

IIS=number $\mid $ string

specifies whether the QP solver attempts to identify a set of constraints and variables that form an irreducible infeasible set (IIS). Table 11.2 describes the valid values of the IIS= option.

Table 11.2: Values for IIS= Option

number

string

Description

0

OFF

Disables IIS detection.

1

ON

Enables IIS detection.


If an IIS is found, you can find information about the infeasibilities in the .status values of the constraints and variables. The default value of this option is OFF. See the section Irreducible Infeasible Set for details about the IIS= option. See the section Suffixes for details about the .status suffix.

Control Options

LOGFREQ=k
PRINTFREQ=k

specifies that the printing of the solution progress to the iteration log is to occur after every k iterations. The print frequency, k, is an integer between zero and the largest four-byte signed integer, which is $2^{31} - 1$.

The value k = 0 disables the printing of the progress of the solution. The default value of this option is 1.

MAXITER=k

specifies the maximum number of iterations. The value k can be any integer between one and the largest four-byte signed integer, which is $2^{31} - 1$. If you do not specify this option, the procedure does not stop based on the number of iterations performed.

MAXTIME=t

specifies an upper limit of t units of time for the optimization process, including problem generation time and solution time. The value of the TIMETYPE= option determines the type of units used. If you do not specify the MAXTIME= option, the solver does not stop based on the amount of time elapsed. The value of t can be any positive number; the default value is the positive number that has the largest absolute value that can be represented in your operating environment.

PRESOLVER=number | string
PRESOL=number | string

specifies one of the following presolve options:

number

string

Description

0

NONE

Disables presolver.

–1

AUTOMATIC

Applies presolver by using default setting.

You can specify the PRESOLVER= value either by a character-valued option or by an integer. The default option is AUTOMATIC.

Interior Point Algorithm Options

STOP_DG=$\delta $

specifies the desired relative duality gap, $\delta \in $ [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 Interior Point Algorithm: Overview for details.

STOP_DI=$\beta $

specifies the maximum allowed relative dual constraints violation, $\beta \in $ [1E–9, 1E–4]. The default value is 1E–6. See the section Interior Point Algorithm: Overview for details.

STOP_PI=$\alpha $

specifies the maximum allowed relative bound and primal constraints violation, $\alpha \in $ [1E–9, 1E–4]. The default value is 1E–6. See the section Interior Point Algorithm: Overview for details.

TIMETYPE=number $\mid $ string

specifies the units of time used by the MAXTIME= option and reported by the PRESOLVE_TIME and SOLUTION_TIME terms in the _OROPTMODEL_ macro variable. Table 11.3 describes the valid values of the TIMETYPE= option.

Table 11.3: Values for TIMETYPE= Option

number

string

Description

0

CPU

Specifies units of CPU time.

1

REAL

Specifies units of real time.


The "Optimization Statistics" table, an output of the OPTMODEL procedure if you specify PRINTLEVEL=2 in the PROC OPTMODEL statement, also includes the same time units for Presolver Time and Solver Time. The other times (such as Problem Generation Time) in the "Optimization Statistics" table are also in the same units.

The default value of the TIMETYPE= option depends on the value of the NTHREADS= option in the PERFORMANCE statement of the OPTMODEL procedure. Table 11.4 describes the detailed logic for determining the default; the first context in the table that applies determines the default value. For more information about the NTHREADS= option, see the section PERFORMANCE Statement in Chapter 4: Shared Concepts and Topics.

Table 11.4: Default Value for TIMETYPE= Option

Context

Default

Solver is invoked in an OPTMODEL COFOR loop

REAL

NTHREADS= value is greater than 1

REAL

NTHREADS= 1

CPU