- advance {1}[1] #ADVIND. No auto. Normally {0,1,2}, but requires a basis supplied by user, so N/A. Cat. C4 barrier_algorithm {0,1,2,3}[0] #BARALG. No auto. Some numerical issues. Cat. - barrier_colnonzeros {0}[0] #BARCOLNZ. 0=Auto, poorly informed. N+. {0,5,20,80,320,1280} - barrier_convergetol {1e-08}[1e-08] #BAREPCOMP. No auto. Numerical, left at default. R+, >= 1e-12 C4 barrier_crossover {-1,0,1,2}[0] #BARCROSSALG. 0=Auto. Cat. - barrier_limits_corrections {-1}[-1] #BARMAXCOR. -1=Auto. Numerical, left at default. {-1,0,N+} N5 barrier_limits_growth {1e+6,1e+8,1e+10,1e+12,1e+14}[1e+12] #BARGROWTH. No auto. Somewhat numerical. R+, >=1.0 C4 barrier_ordering {0,1,2,3} [0] #BARORDER. 0=Auto. Cat. - barrier_qcpconvergetol {1e-07}[1e-07] #BARQCPEPCOMP. No auto. Numerical, left at default. R+, >= 1e-12 C4 barrier_startalg {1,2,3,4}[1] #BARSTARTALG. No auto. Cat. C2 emphasis_memory {yes,no}[no] #MEMORYEMPHASIS. No auto. Binary. C5 emphasis_mip {0,1,2,3,4}[0] #MIPEMPHASIS. No auto. Cat. C2 emphasis_numerical {yes,no}[no] #NUMERICALEMPHASIS. No auto. Binary. C6 feasopt_mode{0,1,2,3,4,5}[0] #FEASOPTMODE. No auto. Cat. N3 feasopt_tolerance{1e-04,1e-06,1e-08}[1e-06] #EPRELAX. Not sure if this is a tuning parameter. R+, >1e-8 C6 lpmethod {0,1,3,4,5,6}[0] #LPMETHOD. 0=Auto. Cat. If threads = 1 (for us always) 2 is the same as 0. C5 mip_cuts_cliques {-1,0,1,2,3}[0] # CLIQUES. 0=Auto. Cat. C5 mip_cuts_covers {-1,0,1,2,3}[0] #COVERS. 0=Auto. Cat. C5 mip_cuts_disjunctive {-1,0,1,2,3}[0] #DISJCUTS. 0=Auto. Cat. C4 mip_cuts_flowcovers {-1,0,1,2}[0] #FLOWCOVERS. 0=Auto. Cat. C4 mip_cuts_gomory {-1,0,1,2}[0] #FRACCUTS. 0=Auto. Cat. C4 mip_cuts_gubcovers {-1,0,1,2}[0] #GUBCOVERS. 0=Auto. Cat. C4 mip_cuts_implied {-1,0,1,2}[0] #IMPLBD. 0=Auto. Cat. C4 mip_cuts_mircut {-1,0,1,2}[0] #MIRCUTS. 0=Auto. Cat. C4 mip_cuts_pathcut {-1,0,1,2}[0] #FLOWPATHS. 0=Auto. Cat. I6 mip_limits_aggforcut {0,1,2,3,5,10} [3] #AGGCUTLIM. No auto. - mip_limits_cutpasses {0}[0] #CUTPASS. 0=Auto. Poorly informed. {-1,0,1,4,16,64} N5 mip_limits_cutsfactor {1,2,4,8,16}[4] #CUTSFACTOR. No auto. R+ I5 mip_limits_gomorycand {50,100,200,400,800}[200] #FRACCAND. No auto. N+ - mip_limits_gomorypass {0}[0] #FRACPASS. 0=Auto. poorly informed. N+. {0,1,4,16,64} - mip_limits_polishtime {0}[0] #POLISHTIME. This is an important parameter, but only for optimization problems, not for prooving optimality. It should also be set relative to allowed runtime. N5 mip_limits_probetime {2,5,10,100,1e+75}[1e+75] #PROBETIME. No auto. R+. Setting this fairly low should allow us to use aggressive probing up to a cutoff time. - mip_limits_repairtries {0}[0] #REPAIRTRIES. Only if user provides MIP starting solution. No auto. N+. N/A I5 mip_limits_strongcand {2,5,10,20,40}[10] #STRONGCANDLIM. No auto. N+ - mip_limits_strongit {0}[0] #STRONGITLIM. 0=Auto. N+. Poorly informed. {0,5,10,20,40,80} I5 mip_limits_submipnodelim {125,250,500,1000,2000}[500] #SUBMIPNODELIM. No auto. N+ C4 mip_ordertype {0,1,2,3}[0] #MIPORDIND. No auto. Cat. N5 mip_strategy_backtrack {0.99, 0.999, 0.9999, 0.99999, 0.999999}[0.9999] #BTTOL. No auto. R+ in interval 0 to 1. I6 mip_strategy_bbinterval {0,2,4,7,15,30}[7] #BBINTERVAL. N+_0. No auto. C3 mip_strategy_branch {-1,0,1}[0] #BRDIR. 0=Auto. Cat. C4 mip_strategy_dive {0,1,2,3}[0] #DIVETYPE. 0=Auto. Cat. C2 mip_strategy_file {0,1}[1] #NODEFILEIND. No auto. Cat. DISALLOW values 2 and 3 => they write files to disk (stuff will break and we run out of space) I7 mip_strategy_heuristicfreq {-1,0,5,10,20,40,80}[0] #HEURFREQ. 0=Auto. 20 may be good setting. N+ C2 mip_strategy_lbheur {yes,no} [no] #LBHEUR. No auto. Binary. C4 mip_strategy_nodeselect {0,1,2,3}[1] #NODESEL. No auto. Cat. C2 mip_strategy_order{yes,no}[yes] #MIPORDIND. No auto. Binary. C4 mip_strategy_presolvenode {-1,0,1,2}[0] #PRESLVND. 0=Auto. Cat. C5 mip_strategy_probe {-1,0,1,2,3}[0] #PROBE. 0=Auto. Cat. But if I remember correctly, this is one of the most important tuning params. I7 mip_strategy_rinsheur {-1,0,5,10,20,40,80}[0] #RINSHEUR. 0=Auto. N+. 20 might be a good value. C7 mip_strategy_startalgorithm {0,1,2,3,4,5,6}[0] #STARTALG. 0=Auto. Cat. C6 mip_strategy_subalgorithm {0,1,2,3,4,5}[0] #SUBALG. 0=Auto. Cat. C6 mip_strategy_variableselect {-1,0,1,2,3,4}[0] #VARSEL. 0=Auto. Cat. C3 network_netfind {1,2,3}[2] #NETFIND. No auto. Cat. C3 network_pricing {0,1,2}[0] #NETPPRIIND. 0=Auto, but currently equivalent to (now thus hidden) option 3. Cat. - preprocessing_aggregator {-1}[-1] #AGGIND. -1=Auto. poorly informed. N+ {-1,0,1,4,16} C3 preprocessing_boundstrength {-1,0,1}[-1] #BNDSTRENIND. -1=Auto. Cat. C3 preprocessing_coeffreduce {0,1,2}[2] #COEREDIND. No auto. Cat. C5 preprocessing_dependency {-1,0,1,2,3}[-1] #DEPIND. -1=Auto. Cat. C3 preprocessing_dual {-1,0,1}[0] #PREDUAL. 0=Auto. Cat. I5 preprocessing_fill {2,5,10,20,40}[10] #AGGFILL. No auto. - preprocessing_numpass {-1}[-1] #PREPASS. -1=Auto. N+. Poorly informed. 0 is redundant (no preproc)) {-1,1,2,4,8,16} C2 preprocessing_presolve {yes,no}[yes] #PREIND. No auto. Binary. C2 preprocessing_qpmakepsd {yes,no}[yes] #QPMAKEPSDIND. No auto. Binary. C4 preprocessing_reduce {0,1,2,3}[3] #REDUCE. No auto. Cat. C3 preprocessing_relax {-1,0,1}[-1] #RELAXPREIND. -1=Auto. Cat. C5 preprocessing_repeatpresolve {-1,0,1,2,3}[-1] #REPEATPRESOLVE. -1=Auto. Cat. 5C preprocessing_symmetry {-1,0,1,2,3}[-1] #SYMMETRY. -1=Auto. Cat. 5C qpmethod {0,1,2,3,4}[0] #QPMETHOD. 0=Automatic. Cat. 3C read_scale {-1,0,1}[0] #SCAIND. No auto. Cat. 5C sifting_algorithm {0,1,2,3,4}[0] #SIFTALG. 0=Auto. Cat. 3C simplex_crash {-1,0,1}[1] #CRAIND. No auto. Cat. 6C simplex_dgradient {0,1,2,3,4,5}[0] #DPRIIND. 0=Auto. Cat. - simplex_limits_perturbation {0}[0] #PERLIM. 0=Auto. Poorly informed. N+ {0,10,100,1000} 5I simplex_limits_singularity {2,5,10,20,40}[10] #SINGLIM. No auto. N+ 2C simplex_perturbation {no 1e-06, yes 1e-06}[no 1e-06] #PERIND. So annoying, two variables in one! PERIND is the indicator, leave the constant at its value. No auto. Binary & R+ for the two params. 6C simplex_pgradient {-1,0,1,2,3,4}[0] #PPRIIND. No auto. Cat. - simplex_pricing {0}[0] #PRICELIM. 0=Auto. N+. Size of simplex pricing candidate list. Poorly informed. {0,5,10,20,40,80} - simplex_refactor {0} [0] #REINV. 0=Auto. N+. Simplex refactorization interval. Hoyt's LP notes say Chvtal suggests an optimal refactorization interval of 16. {0,4,8,16,32,64} - simplex_tolerances_feasibility {1e-06}[1e-06] # EPINT. Numerical - use default for now. R+, > 1e-5 - simplex_tolerances_markowitz {0.01}[0.01] # EPMRK. No auto. Numerical - use default for now. R+ in interval 0.0001 to 0.99999. - simplex_tolerances_optimality {1e-06}[1e-06] # EPOPT. Numerical - use default for now. R+, > 1e-5 Conditionals: mip_limits_gomorycand | mip_cuts_gomory in {0,1,2} # mip_cuts_gomory just can't be -1 mip_limits_strongcand | mip_strategy_variableselect in {3} mip_limits_strongit | mip_strategy_variableselect in {3} mip_limits_submipnodelim | mip_strategy_rinsheur in {0,5,10,20,40,80} # RINSHEUR not -1 mip_strategy_bbinterval | mip_strategy_nodeselect in {2} preprocessing_numpass | preprocessing_presolve in {yes} mip_strategy_order | mip_ordertype in {1,2,3} 50 categorical, 2 to 7 values 5 continuous numerical, 3 to 5 values 8 integer numerical, 5 to 7 values All numbers of values considered - 4 - - 4 - 5 4 - 4 2 5 2 6 3 6 5 5 5 4 4 4 4 4 4 6 - 5 5 - - 5 - 5 - 5 4 5 6 3 4 2 7 2 4 2 4 5 7 7 6 6 3 3 - 3 3 5 3 5 - 2 2 4 3 5 5 5 3 5 3 6 - 5 2 6 - - - - - 1 4 1 1 4 1 5 4 1 4 2 5 2 6 3 6 5 5 5 4 4 4 4 4 4 6 1 5 5 1 1 5 1 5 1 5 4 5 6 3 4 2 7 2 4 2 4 5 7 7 6 6 3 3 1 3 3 5 3 5 1 2 2 4 3 5 5 5 3 5 3 6 1 5 2 6 1 1 1 1 1 Product: 1.7836 * 10^{38} Taking into account conditionals: mip_limits_gomorycand and mip_cuts_gomory together 1+3*5=16 vals instead of 4*5=20 vals mip_limits_strongcand, mip_strategy_variableselect, and mip_limits_strongit together: 5+1*5=10 vals instead of 6*5=30vals (mip_limits_strongit deactivated) mip_limits_submipnodelim and mip_strategy_rinsheur together: 1+6*5=31 vals instead of 7*5=35 vals mip_strategy_bbinterval and mip_strategy_nodeselect together: 3+1*6=9 vals instead of 4*6=24 vals preprocessing_numpass and preprocessing_presolve together: 1+1=2 vals instead of 2*1=2 vals (preprocessing_numpass deactivated) mip_strategy_order and mip_ordertype together: 1+3*2=7 vals instead of 4*2=8 vals Size of feasiable configuration space: 1.7836 * 10^{38} * (16/20) * (10/30) * (31/35) * (9/24) * (2/2) * (7/8) = 1.3823 * 10^{37}