idol
A C++ Framework for Optimization
|
Public Member Functions | |
BranchAndBound (const Model &t_model, const OptimizerFactory &t_node_optimizer, const BranchingRuleFactory< NodeInfoT > &t_branching_rule_factory, const NodeSelectionRuleFactory< NodeInfoT > &t_node_selection_rule_factory, AbstractBranchAndBoundCallbackI< NodeInfoT > *t_callback, const Logs::BranchAndBound::Factory< NodeInfoT > &t_logger_factory) | |
std::string | name () const override |
void | solve (TreeNode &t_node, unsigned int t_relaxation_id) const |
virtual void | set_subtree_depth (unsigned int t_depth) |
unsigned int | subtree_depth () const |
virtual void | add_callback (BranchAndBoundCallback< NodeInfoT > *t_cb) |
void | submit_heuristic_solution (NodeInfoT *t_info) |
void | submit_lower_bound (double t_lower_bound) |
unsigned int | n_created_nodes () const |
unsigned int | n_solved_nodes () const |
unsigned int | n_active_nodes () const |
const Model & | relaxation () const |
Model & | relaxation () |
double | root_node_best_bound () const |
double | root_node_best_obj () const |
BranchingRule< NodeInfoT > & | branching_rule () |
const BranchingRule< NodeInfoT > & | branching_rule () const |
bool | has_incumbent () const |
const TreeNode & | incumbent () const |
double | get_var_primal (const Var &t_var) const override |
double | get_var_reduced_cost (const Var &t_var) const override |
double | get_var_ray (const Var &t_var) const override |
double | get_ctr_dual (const Ctr &t_ctr) const override |
double | get_ctr_farkas (const Ctr &t_ctr) const override |
unsigned int | get_n_solutions () const override |
unsigned int | get_solution_index () const override |
void | set_solution_index (unsigned int t_index) override |
void | terminate () override |
SolutionStatus | get_status () const override |
SolutionReason | get_reason () const override |
double | get_best_obj () const override |
double | get_best_bound () const override |
double | get_relative_gap () const override |
double | get_absolute_gap () const override |
Protected Member Functions | |
void | build () override |
void | hook_before_optimize () override |
void | hook_optimize () override |
void | hook_after_optimize () override |
void | add (const Var &t_var) override |
void | add (const Ctr &t_ctr) override |
void | add (const QCtr &t_ctr) override |
void | remove (const Var &t_var) override |
void | remove (const Ctr &t_ctr) override |
void | remove (const QCtr &t_ctr) override |
void | update () override |
void | write (const std::string &t_name) override |
void | detect_integer_objective () |
void | create_relaxations () |
Node< NodeInfoT > | create_root_node () |
void | explore (TreeNode &t_node, unsigned int t_relaxation_id, SetOfActiveNodes &t_active_nodes, unsigned int t_step) |
void | analyze (const TreeNode &t_node, unsigned int t_relaxation_id, bool *t_explore_children_flag, bool *t_reoptimize_flag) |
Node< NodeInfoT > | select_node_for_branching (SetOfActiveNodes &t_active_nodes) |
std::vector< TreeNode > | create_child_nodes (const TreeNode &t_node) |
void | backtrack (SetOfActiveNodes &t_actives_nodes, SetOfActiveNodes &t_sub_active_nodes) |
void | set_as_incumbent (const TreeNode &t_node) |
bool | gap_is_closed () const |
void | prune_nodes_by_bound (SetOfActiveNodes &t_active_nodes) |
void | update_lower_bound (const SetOfActiveNodes &t_active_nodes) |
bool | is_valid (const TreeNode &t_node) const |
void | log_node_after_solve (const Node< NodeInfoT > &t_node) |
void | log_after_termination () |
SideEffectRegistry | call_callbacks (CallbackEvent t_event, const TreeNode &t_node, unsigned int t_relaxation_id) |
void | update_obj_sense () override |
void | update_obj () override |
void | update_rhs () override |
void | update_obj_constant () override |
void | update_mat_coeff (const Ctr &t_ctr, const Var &t_var) override |
void | update_ctr_type (const Ctr &t_ctr) override |
void | update_ctr_rhs (const Ctr &t_ctr) override |
void | update_var_type (const Var &t_var) override |
void | update_var_lb (const Var &t_var) override |
void | update_var_ub (const Var &t_var) override |
void | update_var_obj (const Var &t_var) override |
void | set_status (SolutionStatus t_status) override |
void | set_reason (SolutionReason t_reason) override |
void | set_best_bound (double t_value) override |
void | set_best_obj (double t_value) override |
Definition at line 30 of file Optimizers_BranchAndBound.h.
|
explicit |
Definition at line 424 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 877 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 174 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 884 of file Optimizers_BranchAndBound.h.
|
virtual |
Definition at line 414 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 669 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 848 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 139 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 141 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 419 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 404 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 825 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 442 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 462 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 195 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 552 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 842 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 343 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 335 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 255 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 250 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 359 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 351 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 215 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 143 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 543 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 473 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 500 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 145 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 181 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 223 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 238 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 129 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 125 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 127 of file Optimizers_BranchAndBound.h.
|
inlineoverride |
Definition at line 111 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 786 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 133 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 131 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 863 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 167 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 870 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 135 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 137 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 812 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 764 of file Optimizers_BranchAndBound.h.
|
overrideprotectedvirtual |
Reimplemented from idol::Algorithm.
Definition at line 897 of file Optimizers_BranchAndBound.h.
|
overrideprotectedvirtual |
Reimplemented from idol::Algorithm.
Definition at line 891 of file Optimizers_BranchAndBound.h.
|
overrideprotectedvirtual |
Reimplemented from idol::Algorithm.
Definition at line 903 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 243 of file Optimizers_BranchAndBound.h.
|
overrideprotectedvirtual |
Reimplemented from idol::Algorithm.
Definition at line 909 of file Optimizers_BranchAndBound.h.
|
inlinevirtual |
Definition at line 115 of file Optimizers_BranchAndBound.h.
void idol::Optimizers::BranchAndBound< NodeInfoT >::solve | ( | TreeNode & | t_node, |
unsigned int | t_relaxation_id | ||
) | const |
Definition at line 639 of file Optimizers_BranchAndBound.h.
void idol::Optimizers::BranchAndBound< NodeInfoT >::submit_heuristic_solution | ( | NodeInfoT * | t_info | ) |
Definition at line 383 of file Optimizers_BranchAndBound.h.
void idol::Optimizers::BranchAndBound< NodeInfoT >::submit_lower_bound | ( | double | t_lower_bound | ) |
Definition at line 369 of file Optimizers_BranchAndBound.h.
|
inline |
Definition at line 117 of file Optimizers_BranchAndBound.h.
|
override |
Definition at line 189 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 856 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 295 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 288 of file Optimizers_BranchAndBound.h.
|
protected |
Definition at line 772 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 281 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 260 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 274 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 330 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 267 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 309 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 323 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 302 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 316 of file Optimizers_BranchAndBound.h.
|
overrideprotected |
Definition at line 820 of file Optimizers_BranchAndBound.h.