The OPTMILP Option Tuner

TUNER Statement

TUNER <tuner-options> ;

You can specify the following options.

GOAL=number | string

specifies a goal for the option tuner. Table 14.2 describes the valid values of the GOAL= option.

Table 14.2: Values of GOAL= Option

number

string

Description

0

GEOMEAN

Minimizes the geometric mean of the solution times of the tuning problems

1

SUM

Minimizes the sum of the solution times of the tuning problems


Every attempt to solve a tuning problem with an option configuration is counted toward the measure specified by the GOAL= option.

The default is GEOMEAN. If only one problem is used for option tuning, then GOAL=GEOMEAN and GOAL=SUM are equivalent.

MAXCONFIGS=number

specifies the maximum number of option configurations that the tuner can evaluate in each problem in the PROBLEMS= data set. The value of number can be any nonnegative integer up to the largest four-byte signed integer, which is $2^{31} - 1$. The default is $2^{31} - 1$.

MAXTIME=number

specifies the maximum time allowed for the tuner to evaluate option configurations in tuning problems. The default is 36,000 seconds.

It is recommended that you specify a value of number large enough so that the tuner can run several different option configurations. This value depends on two quantities: the number of tuning problems and the OPTMILP procedure’s average run time for the tuning problems. To prevent the procedure from spending too much time running a single configuration in a single problem, it is recommended that you limit the time the procedure spends solving each combination of problem and configuration. You can do this by specifying the MAXTIME= option in the PROC OPTMILP statement. If you prefer not to stop the option tuner based on elapsed time, you can specify the MAXCONFIGS= option.

OPTIONMODE=number | string

specifies which set of options to tune. Table 14.3 describes the valid values of the OPTIONMODE= option.

Table 14.3: Values of OPTIONMODE= Option

number

string

Description

–1

AUTOMATIC

Uses an option set determined by the tuner

0

NONE

Solves the problems specified by the PROBLEMS= option without tuning any OPTMILP options

1

USER

Uses the option set specified by the OPTIONVALUES= option

2

FULL

Uses the full set of solver options that are available for tuning


The tuner interprets the OPTIONMODE= option in accordance with the following logic:

  1. If you specify neither the OPTIONMODE= nor OPTIONVALUES= option, the tuner runs with OPTIONMODE=AUTOMATIC.

  2. If you specify the OPTIONVALUES= option, you are not required to specify the OPTIONMODE= option, but you can specify OPTIONMODE=USER. Specifying any other value for the OPTIONMODE= option causes the tuner to terminate with an error.

  3. If you do not specify the OPTIONVALUES= option, you can specify either OPTIONMODE=FULL or OPTIONMODE=AUTOMATIC. Specifying OPTIONMODE=USER causes the tuner to terminate with an error.

OPTIONVALUES=SAS-data-set
OPTVALS=SAS-data-set

specifies an input data set that contains a list of options to be tuned and ranges of values over which each option should be tuned. You can specify an initial tuning value for each option in the list. If you do not specify a range for a tuning option, the tuner uses the default range of that option. If you do not specify an initial value for a tuning option, the tuner uses the default value of that option. If the option’s default value is not in the specified tuning range, the tuner uses the first (smallest) value in the tuning range. If the data set that is specified by the OPTIONVALUES= option is not found, a default set of options is used. See the section Variables in the OPTIONVALUES= Data Set and the section Default Set of Tuning Options for more information.

Note: An option value that you specify in the PROC OPTMILP statement is applied to all tuning problems, unless you specify that option in the OPTIONVALUES= data set. In that case, the value that you specify in the PROC OPTMILP statement is ignored.

LOGFREQ=number

specifies how often tuning information is printed in the log. The value of number represents the number of problems solved by the tuner between log updates. The value of number can be any nonnegative integer. Specifying LOGFREQ=0 disables log updates. The default is 1.

LOGLEVEL=number | string

controls the amount of information that the tuner displays in the SAS log. Table 14.4 describes the valid values of the LOGLEVEL= option.

Table 14.4: Values of LOGLEVEL= Option

number

string

Description

0

NONE

Disables tuner-related messages in the SAS log

1

BASIC

Displays a tuner summary after stopping

2

MODERATE

Prints a tuner summary and a tuning log by using the interval dictated by the LOGFREQ= option


The default is MODERATE.

PROBLEMS=SAS-data-set
PROBS=SAS-data-set

specifies the input data set that contains a list of MILP problems to be used for option tuning. This list includes the name of each problem, its library location, and (optionally) its objective sense. See the section Variables in the PROBLEMS= Data Set for more information. The tuning problems should be stored in MPS-format SAS data sets. To perform option tuning on a single problem, you can omit the PROBLEMS= option in the TUNER statement and specify the DATA= option in the PROC OPTMILP statement. For more information about this option, see the section Data Set Options.

TUNEROUT=SAS-data-set
TOUT=SAS-data-set

specifies the output data set that contains detailed results for each tuning problem over all the option configurations that are evaluated. See the section Variables in the TUNEROUT= Data Set for more information.