summaryrefslogtreecommitdiff
path: root/sci_gateway/cpp/bonmin.opt
blob: 72fc254d608bd43a6fa7bbce6462e8bca1ff715f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

# registering category: Algorithm choice

bonmin.algorithm                             B-BB      	#Choice of the algorithm.

# registering category: Branch-and-bound options

bonmin.allowable_fraction_gap                0         	#Specify the value of relative gap under which the algorithm stops.
bonmin.allowable_gap                         0         	#Specify the value of absolute gap under which the algorithm stops.
bonmin.cutoff                                1e+100    	#Specify cutoff value.
bonmin.cutoff_decr                           1e-05     	#Specify cutoff decrement.
bonmin.enable_dynamic_nlp                    no        	#Enable dynamic linear and quadratic rows addition in nlp
bonmin.integer_tolerance                     1e-06     	#Set integer tolerance.
bonmin.iteration_limit                       2147483647	#Set the cumulative maximum number of iteration in the algorithm used to process nodes continuous relaxations in the branch-and-bound.
bonmin.nlp_failure_behavior                  stop      	#Set the behavior when an NLP or a series of NLP are unsolved by Ipopt (we call unsolved an NLP for which Ipopt is not able to guarantee optimality within the specified tolerances).
bonmin.node_comparison                       best-bound	#Choose the node selection strategy.
bonmin.node_limit                            2147483647	#Set the maximum number of nodes explored in the branch-and-bound search.
bonmin.num_cut_passes                        1         	#Set the maximum number of cut passes at regular nodes of the branch-and-cut.
bonmin.num_cut_passes_at_root                20        	#Set the maximum number of cut passes at regular nodes of the branch-and-cut.
bonmin.number_before_trust                   8         	#Set the number of branches on a variable before its pseudo costs are to be believed in dynamic strong branching.
bonmin.number_strong_branch                  20        	#Choose the maximum number of variables considered for strong branching.
bonmin.random_generator_seed                 0         	#Set seed for random number generator (a value of -1 sets seeds to time since Epoch).
bonmin.read_solution_file                    no        	#Read a file with the optimal solution to test if algorithms cuts it.
bonmin.solution_limit                        2147483647	#Abort after that much integer feasible solution have been found by algorithm
bonmin.sos_constraints                       enable    	#Whether or not to activate SOS constraints.
bonmin.time_limit                            1e+10     	#Set the global maximum computation time (in secs) for the algorithm.
bonmin.tree_search_strategy                  probed-dive	#Pick a strategy for traversing the tree
bonmin.variable_selection                    strong-branching	#Chooses variable selection strategy

# registering category: ECP cuts generation

bonmin.ecp_abs_tol                           1e-06     	#Set the absolute termination tolerance for ECP rounds.
bonmin.ecp_max_rounds                        5         	#Set the maximal number of rounds of ECP cuts.
bonmin.ecp_probability_factor                10        	#Factor appearing in formula for skipping ECP cuts.
bonmin.ecp_rel_tol                           0         	#Set the relative termination tolerance for ECP rounds.
bonmin.filmint_ecp_cuts                      0         	#Specify the frequency (in terms of nodes) at which some a la filmint ecp cuts are generated.

# registering category: Feasibility checker using OA cuts

bonmin.feas_check_cut_types                  outer-approx	#Choose the type of cuts generated when an integer feasible solution is found
bonmin.feas_check_discard_policy             detect-cycles	#How cuts from feasibility checker are discarded
bonmin.generate_benders_after_so_many_oa     5000      	#Specify that after so many oa cuts have been generated Benders cuts should be generated instead.

# registering category: MILP Solver

bonmin.cpx_parallel_strategy                 0         	#Strategy of parallel search mode in CPLEX.
bonmin.milp_solver                           Cbc_D     	#Choose the subsolver to solve MILP sub-problems in OA decompositions.
bonmin.milp_strategy                         solve_to_optimality	#Choose a strategy for MILPs.
bonmin.number_cpx_threads                    0         	#Set number of threads to use with cplex.

# registering category: MILP cutting planes in hybrid algorithm

bonmin.2mir_cuts                             0         	#Frequency (in terms of nodes) for generating 2-MIR cuts in branch-and-cut
bonmin.Gomory_cuts                           -5        	#Frequency (in terms of nodes) for generating Gomory cuts in branch-and-cut.
bonmin.clique_cuts                           -5        	#Frequency (in terms of nodes) for generating clique cuts in branch-and-cut
bonmin.cover_cuts                            0         	#Frequency (in terms of nodes) for generating cover cuts in branch-and-cut
bonmin.flow_cover_cuts                       -5        	#Frequency (in terms of nodes) for generating flow cover cuts in branch-and-cut
bonmin.lift_and_project_cuts                 0         	#Frequency (in terms of nodes) for generating lift-and-project cuts in branch-and-cut
bonmin.mir_cuts                              -5        	#Frequency (in terms of nodes) for generating MIR cuts in branch-and-cut
bonmin.reduce_and_split_cuts                 0         	#Frequency (in terms of nodes) for generating reduce-and-split cuts in branch-and-cut

# registering category: NLP interface

bonmin.nlp_solver                            Ipopt     	#Choice of the solver for local optima of continuous NLP's
bonmin.warm_start                            none      	#Select the warm start method

# registering category: NLP solution robustness

bonmin.max_consecutive_failures              10        	#(temporarily removed) Number $n$ of consecutive unsolved problems before aborting a branch of the tree.
bonmin.max_random_point_radius               100000    	#Set max value r for coordinate of a random point.
bonmin.num_iterations_suspect                -1        	#Number of iterations over which a node is considered "suspect" (for debugging purposes only, see detailed documentation).
bonmin.num_retry_unsolved_random_point       0         	#Number $k$ of times that the algorithm will try to resolve an unsolved NLP with a random starting point (we call unsolved an NLP for which Ipopt is not able to guarantee optimality within the specified tolerances).
bonmin.random_point_perturbation_interval    1         	#Amount by which starting point is perturbed when choosing to pick random point by perturbing starting point
bonmin.random_point_type                     Jon       	#method to choose a random starting point
bonmin.resolve_on_small_infeasibility        0         	#If a locally infeasible problem is infeasible by less than this, resolve it with initial starting point.

# registering category: NLP solves in hybrid algorithm (B-Hyb)

bonmin.nlp_solve_frequency                   10        	#Specify the frequency (in terms of nodes) at which NLP relaxations are solved in B-Hyb.
bonmin.nlp_solve_max_depth                   10        	#Set maximum depth in the tree at which NLP relaxations are solved in B-Hyb.
bonmin.nlp_solves_per_depth                  1e+100    	#Set average number of nodes in the tree at which NLP relaxations are solved in B-Hyb for each depth.

# registering category: Nonconvex problems

bonmin.coeff_var_threshold                   0.1       	#Coefficient of variation threshold (for dynamic definition of cutoff_decr).
bonmin.dynamic_def_cutoff_decr               no        	#Do you want to define the parameter cutoff_decr dynamically?
bonmin.first_perc_for_cutoff_decr            -0.02     	#The percentage used when, the coeff of variance is smaller than the threshold, to compute the cutoff_decr dynamically.
bonmin.max_consecutive_infeasible            0         	#Number of consecutive infeasible subproblems before aborting a branch.
bonmin.num_resolve_at_infeasibles            0         	#Number $k$ of tries to resolve an infeasible node (other than the root) of the tree with different starting point.
bonmin.num_resolve_at_node                   0         	#Number $k$ of tries to resolve a node (other than the root) of the tree with different starting point.
bonmin.num_resolve_at_root                   0         	#Number $k$ of tries to resolve the root node with different starting points.
bonmin.second_perc_for_cutoff_decr           -0.05     	#The percentage used when, the coeff of variance is greater than the threshold, to compute the cutoff_decr dynamically.

# registering category: Outer Approximation Decomposition (B-OA)

bonmin.oa_decomposition                      no        	#If yes do initial OA decomposition

# registering category: Outer Approximation cuts generation

bonmin.add_only_violated_oa                  no        	#Do we add all OA cuts or only the ones violated by current point?
bonmin.oa_cuts_scope                         global    	#Specify if OA cuts added are to be set globally or locally valid
bonmin.oa_rhs_relax                          1e-08     	#Value by which to relax OA cut
bonmin.tiny_element                          1e-08     	#Value for tiny element in OA cut
bonmin.very_tiny_element                     1e-17     	#Value for very tiny element in OA cut

# registering category: Output

bonmin.bb_log_interval                       100       	#Interval at which node level output is printed.
bonmin.bb_log_level                          1         	#specify main branch-and-bound log level.
bonmin.file_print_level                      5         	#Verbosity level for output file.
bonmin.file_solution                         no        	#Write a file bonmin.sol with the solution
bonmin.fp_log_frequency                      100       	#display an update on lower and upper bounds in FP every n seconds
bonmin.fp_log_level                          1         	#specify FP iterations log level.
bonmin.inf_pr_output                         original  	#Determines what value is printed in the "inf_pr" output column.
bonmin.lp_log_level                          0         	#specify LP log level.
bonmin.milp_log_level                        0         	#specify MILP solver log level.
bonmin.nlp_log_at_root                       0         	# Specify a different log level for root relaxation.
bonmin.nlp_log_level                         1         	#specify NLP solver interface log level (independent from ipopt print_level).
bonmin.oa_cuts_log_level                     0         	#level of log when generating OA cuts.
bonmin.oa_log_frequency                      100       	#display an update on lower and upper bounds in OA every n seconds
bonmin.oa_log_level                          1         	#specify OA iterations log level.
bonmin.option_file_name                                	#File name of options file (to overwrite default).
bonmin.output_file                                     	#File name of desired output file (leave unset for no file output).
bonmin.print_frequency_iter                  1         	#Determines at which iteration frequency the summarizing iteration output line should be printed.
bonmin.print_frequency_time                  0         	#Determines at which time frequency the summarizing iteration output line should be printed.
bonmin.print_info_string                     no        	#Enables printing of additional info string at end of iteration output.
bonmin.print_level                           5         	#Output verbosity level.
bonmin.print_options_documentation           no        	#Switch to print all algorithmic options.
bonmin.print_timing_statistics               no        	#Switch to print timing statistics.
bonmin.print_user_options                    no        	#Print all options set by the user.
bonmin.replace_bounds                        no        	#Indicates if all variable bounds should be replaced by inequality constraints
bonmin.skip_finalize_solution_call           no        	#Indicates if call to NLP::FinalizeSolution after optimization should be suppressed

# registering category: Primal Heuristics

bonmin.feasibility_pump_objective_norm       1         	#Norm of feasibility pump objective function
bonmin.fp_pass_infeasible                    no        	#Say whether feasibility pump should claim to converge or not
bonmin.heuristic_RINS                        no        	#if yes runs the RINS heuristic
bonmin.heuristic_dive_MIP_fractional         no        	#if yes runs the Dive MIP Fractional heuristic
bonmin.heuristic_dive_MIP_vectorLength       no        	#if yes runs the Dive MIP VectorLength heuristic
bonmin.heuristic_dive_fractional             no        	#if yes runs the Dive Fractional heuristic
bonmin.heuristic_dive_vectorLength           no        	#if yes runs the Dive VectorLength heuristic
bonmin.heuristic_feasibility_pump            no        	#whether the heuristic feasibility pump should be used
bonmin.pump_for_minlp                        no        	#whether to run the feasibility pump heuristic for MINLP

# registering category: Strong branching setup

bonmin.candidate_sort_criterion              best-ps-cost	#Choice of the criterion to choose candidates in strong-branching
bonmin.maxmin_crit_have_sol                  0.1       	#Weight towards minimum in of lower and upper branching estimates when a solution has been found.
bonmin.maxmin_crit_no_sol                    0.7       	#Weight towards minimum in of lower and upper branching estimates when no solution has been found yet.
bonmin.min_number_strong_branch              0         	#Sets minimum number of variables for strong branching (overriding trust)
bonmin.number_before_trust_list              0         	#Set the number of branches on a variable before its pseudo costs are to be believed during setup of strong branching candidate list.
bonmin.number_look_ahead                     0         	#Sets limit of look-ahead strong-branching trials
bonmin.number_strong_branch_root             2147483647	#Maximum number of variables considered for strong branching in root node.
bonmin.setup_pseudo_frac                     0.5       	#Proportion of strong branching list that has to be taken from most-integer-infeasible list.
bonmin.trust_strong_branching_for_pseudo_cost yes       	#Whether or not to trust strong branching results for updating pseudo costs.