The OPTMILP Option Tuner

Example 20.2 Tuning a Defined Set of Options for Multiple Problems

This example demonstrates how to specify a set of tuning options and tune them for multiple problems.

The following DATA step creates a PROBLEMS= data table named mylib.probs that contains the list of tuning problems. This data table is the same as in the section Getting Started: The OPTMILP Option Tuner.

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

The following DATA step creates an OPTIONVALUES= data table named mylib.optvals that is different from the default set, which is described in the section Default Set of Tuning Options:

data mylib.optvals;
   input option $1-12 values $13-41 initial $43-53;
   datalines;
cutclique   automatic, none, aggressive   automatic
cutgomory                                 moderate
heuristics
;

The mylib.optvals data table contains a nondefault list of tuning values for the CUTCLIQUE= option in addition to initial values for the CUTCLIQUE= and CUTGOMORY= options. The options for which sets of tuning values are not specified (in this case, the CUTGOMORY= and HEURISTICS= options) are tuned for all available values if the number of values is finite. The options for which initial values are not specified (in this case, the HEURISTICS= option) are tuned by using the default initial value.

The following statements call the OPTMILP option tuner and then print the ODS table TunerResults and the TUNEROUT= data table:

proc optmilp maxtime=300;
   tuner problems=mylib.probs  optionvalues=mylib.optvals  optionmode=user
         maxtime=1200 tunerout=mylib.out;
run;

title "Tuner Output";
proc print data=mylib.out(obs=16);
run;

The output is shown in Output 20.2.1.

Output 20.2.1: Multiple Problems with Specified Tuning Options: Output

The OPTMILP Procedure

Tuner Results
ConfigurationcutCliquecutGomoryheuristicsMean of Run TimesSum of Run TimesPercentage Successful
0automaticmoderateautomatic8.6417.36100
1noneaggressivenone7.916100
2nonenonenone7.9416.07100
3noneautomaticnone8.0216.3100
4automaticnonenone8.0416.25100
5automaticaggressivenone8.0416.26100
6nonemoderatenone8.0616.36100
7nonemoderatebasic8.2516.56100
8noneautomaticbasic8.2516.56100
9nonenonebasic8.2516.58100
10automaticautomaticnone8.3516.98100
11automaticmoderatenone8.3516.99100
12automaticnonebasic8.3516.76100
13nonemoderatemoderate8.3716.83100
14automaticmoderatebasic8.3716.8100
15automaticautomaticbasic8.3916.84100
16noneautomaticmoderate8.3916.87100
17nonenonemoderate8.4216.92100
18automaticnonemoderate8.4817.03100
19automaticaggressivebasic8.4817.05100
20automaticmoderatemoderate8.517.09100
21nonenoneautomatic8.5417.16100
22noneautomaticautomatic8.5417.17100
23nonemoderateautomatic8.5417.17100
24automaticautomaticmoderate8.5517.19100
25noneaggressivebasic8.5717.27100
26automaticnoneautomatic8.6617.39100
27automaticautomaticautomatic8.6817.43100
28nonemoderateaggressive9.0618.14100
29nonenoneaggressive9.0618.16100
30noneautomaticaggressive9.0818.2100
31automaticautomaticaggressive9.1918.4100
32automaticmoderateaggressive9.1918.4100
33automaticnoneaggressive9.1918.4100
34automaticaggressivemoderate10.6222.25100
35automaticaggressiveautomatic10.8222.66100
36noneaggressivemoderate10.9223.23100
37noneaggressiveautomatic11.1423.62100
38automaticaggressiveaggressive11.4323.64100
39noneaggressiveaggressive11.6924.48100
40aggressivenonenone43.9118.53100
41aggressiveautomaticnone44118.72100
42aggressiveaggressivenone44.05118.79100
43aggressivemoderatenone44.35119.06100
44aggressivenonebasic51.53126.19100
45aggressivemoderatebasic51.57126.12100
46aggressiveaggressivebasic51.67126.28100
47aggressiveautomaticbasic51.74126.63100
48aggressiveautomaticmoderate51.98126.49100
49aggressivenonemoderate52.03126.71100
50aggressivemoderatemoderate52.06126.63100
51aggressivenoneautomatic52.2126.96100
52aggressivemoderateautomatic52.24127.3100
53aggressiveaggressivemoderate52.35127.05100
54aggressiveautomaticautomatic52.46127.63100
55aggressiveaggressiveautomatic52.51127.72100
56aggressiveautomaticaggressive74.91231.88100
57aggressiveaggressiveaggressive74.93232.32100
58aggressivemoderateaggressive75.23232.18100
59aggressivenoneaggressive75.35232.94100

Tuner Output

ObsRANKPROBLEMOBJSENSEcutCliquecutGomoryheuristicsSTATUSSOLUTION_STATUSOBJECTIVERELATIVE_GAPABSOLUTE_GAPNODESSOLUTION_TIME
10AIR04MINautomaticmoderateautomaticOKOPTIMAL56137005349.52
20AIR05MINautomaticmoderateautomaticOKOPTIMAL263740011667.83
31AIR04MINnoneaggressivenoneOKOPTIMAL56137002989.24
41AIR05MINnoneaggressivenoneOKOPTIMAL26374009156.76
52AIR04MINnonenonenoneOKOPTIMAL56137005969.22
62AIR05MINnonenonenoneOKOPTIMAL26374009156.84
73AIR04MINnoneautomaticnoneOKOPTIMAL56137007059.55
83AIR05MINnoneautomaticnoneOKOPTIMAL26374009156.74
94AIR04MINautomaticnonenoneOKOPTIMAL56137005969.30
104AIR05MINautomaticnonenoneOKOPTIMAL26374009156.94
115AIR04MINautomaticaggressivenoneOKOPTIMAL56137002989.30
125AIR05MINautomaticaggressivenoneOKOPTIMAL26374009156.96
136AIR04MINnonemoderatenoneOKOPTIMAL56137007059.56
146AIR05MINnonemoderatenoneOKOPTIMAL26374009156.79
157AIR04MINnonemoderatebasicOKOPTIMAL56137004358.99
167AIR05MINnonemoderatebasicOKOPTIMAL263740012767.57


Last updated: June 22, 2026