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.
data probs; input name $1-8; datalines; a.air04 a.air05 ;
The following DATA step creates an OPTIONVALUES=
data set named optvals
that is different from the default set, which is described in the section Default Set of Tuning Options:
data optvals; input option $1-10 values $12-28 initial $30-32; 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 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 set:
proc optmilp maxtime=300; tuner problems=probs optionvalues=optvals optionmode=user maxtime=1200 tunerout=out; performance nthreads=4; run; title "Tuner Output"; proc print data=out(obs=20); run;
The output is shown in Output 16.2.1.
Output 16.2.1: Multiple Problems with Specified Tuning Options: Output
Tuner Output |
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 | -1 | 0 | 2 | 0 | 0 | 2 | -1 | -1 | 0 | 2 | 0 |
cutgomory | 1 | -1 | 0 | -1 | 0 | -1 | -1 | 1 | -1 | -1 | 1 |
heuristics | -1 | 0 | 0 | 2 | -1 | 1 | 3 | 3 | 1 | 2 | 2 |
Mean of Run Times | 72.01 | 65.03 | 66.1 | 66.41 | 66.95 | 67.26 | 84.49 | 85.67 | 65.6 | 1.91 | 29.14 |
Sum of Run Times | 144.22 | 131.35 | 133 | 132.83 | 133.92 | 135.03 | 172.73 | 175.5 | 132.08 | 4.58 | 59.1 |
Percentage Successful | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 50 | 0 | 0 |
Tuner Output |
Obs | RANK | PROBLEM | OBJSENSE | cutclique | cutgomory | heuristics | STATUS | SOLUTION_STATUS | OBJECTIVE | RELATIVE_GAP | ABSOLUTE_GAP | NODES | SOLUTION_TIME |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | air04 | MIN | -1 | 1 | -1 | OK | OPTIMAL | 56137.00 | 0 | 0.00000 | 317 | 75.87 |
2 | 0 | air05 | MIN | -1 | 1 | -1 | OK | OPTIMAL_RGAP | 26374.00 | .000082258 | 2.16929 | 481 | 68.34 |
3 | 1 | air04 | MIN | 0 | -1 | 0 | OK | OPTIMAL_RGAP | 56137.00 | .000097336 | 5.46360 | 293 | 74.83 |
4 | 1 | air05 | MIN | 0 | -1 | 0 | OK | OPTIMAL_RGAP | 26374.00 | .000081807 | 2.15741 | 641 | 56.51 |
5 | 2 | air04 | MIN | 2 | 0 | 0 | OK | OPTIMAL_RGAP | 56138.00 | .000069234 | 3.88636 | 252 | 73.80 |
6 | 2 | air05 | MIN | 2 | 0 | 0 | OK | OPTIMAL_RGAP | 26374.00 | .000094203 | 2.48428 | 488 | 59.20 |
7 | 3 | air04 | MIN | 0 | -1 | 2 | OK | OPTIMAL_RGAP | 56137.00 | .000053423 | 2.99886 | 266 | 65.97 |
8 | 3 | air05 | MIN | 0 | -1 | 2 | OK | OPTIMAL_RGAP | 26374.00 | .000068555 | 1.80795 | 663 | 66.86 |
9 | 4 | air04 | MIN | 0 | 0 | -1 | OK | OPTIMAL_RGAP | 56137.00 | .000053423 | 2.99886 | 266 | 67.71 |
10 | 4 | air05 | MIN | 0 | 0 | -1 | OK | OPTIMAL_RGAP | 26374.00 | .000068555 | 1.80795 | 663 | 66.20 |
11 | 5 | air04 | MIN | 2 | -1 | 1 | OK | OPTIMAL_RGAP | 56138.00 | .000069234 | 3.88636 | 252 | 73.28 |
12 | 5 | air05 | MIN | 2 | -1 | 1 | OK | OPTIMAL_RGAP | 26374.00 | .000094203 | 2.48428 | 488 | 61.74 |
13 | 6 | air04 | MIN | 2 | 0 | 1 | OK | OPTIMAL_RGAP | 56138.00 | .000069234 | 3.88636 | 252 | 74.50 |
14 | 6 | air05 | MIN | 2 | 0 | 1 | OK | OPTIMAL_RGAP | 26374.00 | .000094203 | 2.48428 | 488 | 60.88 |
15 | 7 | air04 | MIN | 0 | 2 | 2 | OK | OPTIMAL_RGAP | 56137.00 | .000053423 | 2.99886 | 266 | 67.18 |
16 | 7 | air05 | MIN | 0 | 2 | 2 | OK | OPTIMAL_RGAP | 26374.00 | .000068555 | 1.80795 | 663 | 67.78 |
17 | 8 | air04 | MIN | 0 | -1 | -1 | OK | OPTIMAL_RGAP | 56137.00 | .000053423 | 2.99886 | 266 | 68.15 |
18 | 8 | air05 | MIN | 0 | -1 | -1 | OK | OPTIMAL_RGAP | 26374.00 | .000068555 | 1.80795 | 663 | 66.86 |
19 | 9 | air04 | MIN | -1 | -1 | 2 | OK | OPTIMAL | 56137.00 | 0 | 0.00000 | 317 | 73.30 |
20 | 9 | air05 | MIN | -1 | -1 | 2 | OK | OPTIMAL_RGAP | 26374.00 | .000082258 | 2.16929 | 481 | 63.14 |