22 if (t_event != InvalidSolution) {
26 if (m_last_node_id == this->
node().
id()) {
29 m_last_node_id = this->
node().id();
33 const double best_obj = this->best_obj();
34 const double current_obj = this->
relaxation().get_best_obj();
35 const double tol_mip_absolute_gap =
original_model.optimizer().get_tol_mip_absolute_gap();
39 double reduced_cost =
relaxation.get_var_reduced_cost(var);
41 if (current_obj + reduced_cost > best_obj + tol_mip_absolute_gap) {
42 const double relaxation_lb =
relaxation.get_var_lb(var);
43 const double current_ub =
relaxation.get_var_ub(var);
45 this->add_local_variable_branching(var, LessOrEqual, relaxation_lb);
49 if (current_obj - reduced_cost > best_obj + tol_mip_absolute_gap) {
50 const double relaxation_ub =
relaxation.get_var_ub(var);
51 const double current_lb =
relaxation.get_var_lb(var);
53 this->add_local_variable_branching(var, GreaterOrEqual, relaxation_ub);