The OPTMILP Option Tuner

Getting Started: The OPTMILP Option Tuner

(View the complete code for this example.)

This example illustrates how to use the OPTMILP option tuner.

The standard set of MILP benchmark cases is called MIPLIB (Bixby et al. 1998; Achterberg, Koch, and Martin 2003) and can be found at http://miplib.zib.de/. Suppose you want to solve the problems air04 and air05 from this set. You have stored the SAS data sets air04 and air05, both in MPS format, in library a. Suppose you want to tune the CUTCLIQUE=, CUTGOMORY=, and HEURISTICS options in these two problems.

The following DATA step generates the data set probs, which contains the list of problems to be solved, and the data set optvals, which contains the list of options to be tuned:

data probs;
   input name $1-8;
   datalines;
a.air04
a.air05
;

data optvals;
   input option $1-10;
   datalines;
cutclique
cutgomory
heuristics
;

The following statements call the OPTMILP procedure and enable the option tuner:

proc optmilp maxtime=300;
   tuner maxtime=1200 problems=probs optionvalues=optvals tunerout=out;
run;

The MAXTIME= option in the PROC OPTMILP statement sets the maximum run time that the procedure can use to solve one problem for each option configuration. The MAXTIME= option in the TUNER statement sets a limit on the total time that the option tuner can use to solve the problems on the list by using the generated sequence of configurations. The PROBLEMS= option specifies the name of the SAS data set that contains the list of problems to be solved. The OPTIONVALUES= option specifies the name of the SAS data set that contains the list of options to be tuned. The TUNEROUT= option specifies the name of the SAS data set that contains detailed results of the tuning process. The ODS OUTPUT statement creates an output data set from the TunerResults table. For more information about the options available in the PROC OPTMILP statement, see the section PROC OPTMILP Statement.

Figure 1 shows a selection of tuning results that include the initial option configuration, the best option configurations, and the worst option configurations.

Figure 1: PROC OPTMILP Output

The OPTMILP Procedure

Performance Information
Execution ModeSingle-Machine
Number of Threads4

Tuner Information
Target SolverMILP
Number of Tuning Options3
Number of Tuning Instances2
Tuning Option SetUSER
Performance GoalGEOMEAN
Tuner Time Limit1200
Tuner Configurations Limit2147483647

Tuner Summary
Actual Tuning Time730.46
Initial Run Time (geomean)16.79
Initial Run Time (sum)33.81
Best Run Time (geomean)12.69
Best Run Time (sum)26.20
Number of Improved Configurations25
Number of Tested Configurations80

Tuner Results
 Config 0 Config 1 Config 2 Config 3 Config 4 Config 5 Config 6 Config 7 Config 8 Config 9 Config 10
cutclique-11-1-111-12222
cutgomory-1-1-11102012-1
heuristics-10000000000
Mean of Run Times16.7912.6812.8312.8513.2713.3622.5323.223.5723.6823.85
Sum of Run Times33.826.1926.3926.527.3627.9945.7747.6347.9848.2548.64
Percentage Successful100100100100100100100100100100100


Last updated: August 11, 2020