The OPTMILP Option Tuner

Example 14.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 set named probs that contains the list of tuning problems. This data set is the same as in the section Getting Started: The OPTMILP Option Tuner.

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

data optvals;
   input option $1-10 values $12-28 initial $30-31;
   datalines;
cutclique   -1, 0, 2          -1 
cutgomory                      1
heuristics
;

The optvals data set 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. The options for which initial values are not specified (in this case, the HEURISTICS= option) are tuned with the default initial value.

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

proc optmilp maxtime=60;
     tuner problems=probs  optionvalues=optvals  optionmode=user 
           maxtime=120 tunerout=tout;        
     performance nthreads=4;
run;

title "Tuner Output";
proc print data=tout;
run;

The output is shown in Output 14.2.1.

Output 14.2.1: Multiple Problems with Specified Tuning Options: Output

The OPTMILP Procedure

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 0 0 0 0 0 0 2 -1 2 0 2
cutgomory -1 -1 1 1 0 -1 1 -1 -1 2 2
heuristics -1 3 0 3 -1 2 2 2 1 2 2
Run Time (Mean) 5.674735 5.627049 5.704002 5.722245 5.723145 5.731514 6.377241 6.449139 6.46392 6.60572 6.645542
Run Time (Sum) 11.388 11.28 11.419 11.466 11.466 11.48 12.762 12.901 12.932 13.213 13.292
Num of Failed 0 0 0 0 0 0 0 0 0 0 0

Tuner Output

Obs _RANK_ _INSTANCE_ cutclique cutgomory heuristics _STATUS_ _SOLUTION_STATUS_ _OBJECTIVE_ _RELATIVE_GAP_ _ABSOLUTE_GAP_ _NODES_ _SOLUTION_TIME_
1 0 air04 0 -1 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.16200
2 0 air05 0 -1 -1 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.22600
3 1 air04 0 -1 3 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.02200
4 1 air05 0 -1 3 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.25800
5 2 air04 0 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.96000
6 2 air05 0 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 1 5.45900
7 3 air04 0 1 3 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.08400
8 3 air05 0 1 3 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.38200
9 4 air04 0 0 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.06900
10 4 air05 0 0 -1 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.39700
11 5 air04 0 -1 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.05200
12 5 air05 0 -1 2 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.42800
13 6 air04 0 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.05300
14 6 air05 0 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 1 5.46000
15 7 air04 0 1 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.14700
16 7 air05 0 1 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 1 5.38100
17 8 air04 0 2 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.14600
18 8 air05 0 2 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 1 5.39800
19 9 air04 0 1 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.09900
20 9 air05 0 1 -1 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.44400
21 10 air04 2 -1 3 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.13100
22 10 air05 2 -1 3 OK TIME_LIM_SOL 26849 0.037538 971.391 0 5.42900
23 11 air04 0 1 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.09900
24 11 air05 0 1 2 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.46000
25 12 air04 0 0 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.08500
26 12 air05 0 0 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 1 5.53900
27 13 air04 -1 2 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.94400
28 13 air05 -1 2 -1 OK TIME_LIM_SOL 26849 0.034897 905.350 0 5.83400
29 14 air04 -1 -1 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.03600
30 14 air05 -1 -1 -1 OK TIME_LIM_SOL 26849 0.034897 905.350 0 5.80200
31 15 air04 0 0 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.22300
32 15 air05 0 0 2 OK TIME_LIM_SOL 26849 0.037538 971.391 1 5.63200
33 16 air04 -1 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.10000
34 16 air05 -1 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.77100
35 17 air04 2 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.17700
36 17 air05 2 -1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.74000
37 18 air04 2 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.06900
38 18 air05 2 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.86600
39 19 air04 2 0 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.06800
40 19 air05 2 0 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.89800
41 20 air04 -1 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.13100
42 20 air05 -1 1 0 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.89700
43 21 air04 -1 0 -1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.16200
44 21 air05 -1 0 -1 OK TIME_LIM_SOL 26849 0.034404 892.994 0 5.91300
45 22 air04 -1 -1 3 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.34900
46 22 air05 -1 -1 3 OK TIME_LIM_SOL 26849 0.037538 971.391 0 6.22400
47 23 air04 2 -1 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 5.56900
48 23 air05 2 -1 2 OK TIME_LIM_SOL 26849 0.034172 887.157 0 7.11400
49 24 air04 -1 2 3 OK TIME_LIM_SOL 56426 0.016036 890.564 0 5.99000
50 24 air05 -1 2 3 OK TIME_LIM_SOL 26849 0.037538 971.391 0 6.63000
51 25 air04 2 1 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.16200
52 25 air05 2 1 2 OK TIME_LIM_SOL 26849 0.034897 905.350 0 6.60000
53 26 air04 -1 -1 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.58300
54 26 air05 -1 -1 2 OK TIME_LIM_SOL 26849 0.034897 905.350 0 6.31800
55 27 air04 2 -1 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.63000
56 27 air05 2 -1 1 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.30200
57 28 air04 0 2 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.50500
58 28 air05 0 2 2 OK TIME_LIM_SOL 26849 0.037538 971.391 0 6.70800
59 29 air04 2 2 2 OK TIME_LIM_NOSOL 1.7977E308 1.8E308 1.7977E308 0 6.56800
60 29 air05 2 2 2 OK TIME_LIM_SOL 26849 0.034172 887.157 0 6.72400