BasicBBOptions
Declared in bnb/BranchAndBound.h; the same struct on the site of Doxygen.
-
template<class V = double>
struct BasicBBOptions the options of a B&B with values of type V
A node is pruned when its bound cannot improve the incumbent \( z \) by more than the tolerance \( \max \{ \tau_a , \tau_r |z| \} \), \( \tau_a \) being abs_gap and \( \tau_r \) rel_gap, and the search ends when no open node can. With Selection::plunging, the best child of the node just branched is extracted next (a dive) if its bound is at most \( \underline{\beta} + \gamma ( z - \underline{\beta} ) \), \( \gamma \) being plunge_gap and \( \underline{\beta} \) the least open bound, and always while there is no incumbent. With keep_frontier, the Solution holds the leaves of the tree explored [see BBSolution], from which a later search can start again [see BranchAndBoundSearch::solve()].
Public Members
-
Selection selection = Selection::best_first
the order of the nodes
-
double rel_gap = 0
the relative tolerance on the gap
-
double plunge_gap = 0.5
how far from the best bound a dive goes
a value that the search reads at each extraction and prunes by when it is better than its incumbent, e.g., the incumbent of other searches running at the same time; the Solution has only the feasible values that the search itself finds (or incumbent), so that it is infeasible when none of them is better than the values read, and its bound is still that of the subtrees searched
-
std::size_t node_limit = 0
evaluated nodes (0 = no limit)
-
double time_limit = 0
seconds (0 = no limit)
-
bool keep_frontier = false
keep the leaves of the tree explored
-
Selection selection = Selection::best_first