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 16.2 describes the valid values of the GOAL= option.

Table 16.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 that has an option configuration is counted toward the measure that is 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.

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 16.3 describes the valid values of the LOGLEVEL= option.

Table 16.3: 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.

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 positive integer up to the largest four-byte signed integer, which is $2^{31} - 1$. The default is $2^{31} - 1$. This option is an alternative way for the tuner to control the termination.

MAXTIME=number

specifies the maximum time allowed for the tuner to evaluate option configurations in tuning problems. You must specify either this option or the MAXCONFIGS= option so that the tuner can terminate properly.

It is recommended that you specify a value for number that is large enough 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, you must limit the time the procedure spends solving each combination of problem and configuration. You can limit the time by specifying the MAXTIME= option in the PROC OPTMILP statement. If you prefer not to stop the option tuner as a result of elapsed time, you can specify the MAXCONFIGS= option.

OPTIONMODE=number | string

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

Table 16.4: Values of OPTIONMODE= Option

number

string

Description

–1

AUTOMATIC

Uses an option set that is determined by the tuner

0

NONE

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

1

USER

Uses the option set that is 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 the 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.

When OPTIONMODE=NONE, the options PRIMALOUT= and DUALOUT= of PROC OPTMILP can be used to output primal and dual solutions of all the problems that are listed in the PROBLEMS= data set. All primal or dual solutions are appended to the PRIMALOUT= or DUAL= data set. An additional variable _PROBLEM_ is created for each data set to store problem names.

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. For more information, see the section Variables in the OPTIONVALUES= Data Set and the section Default Set of Tuning Options.

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.

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. For more information, see the section Variables in the PROBLEMS= Data Set. 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 to contain detailed results for each tuning problem over all the option configurations that are evaluated. This data set helps you rank the performance with your own rules, especially when some problems are not optimal but the integer solutions are acceptable for some configurations. For more information, see the section Variables in the TUNEROUT= Data Set.