77 bool in_strong_branching);
95 const int var_bound_changes_since_logical_fixing,
139 bool force_branch =
false);
virtual BCP_branching_decision select_branching_candidates(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_lp_var_pool &local_var_pool, const BCP_lp_cut_pool &local_cut_pool, BCP_vec< BCP_lp_branching_object * > &cands, bool force_branch=false)
Called at the end of each iteration.
BCP_object_origin
This enumerative constant describes the origin (originating process) of an object (variable or cut)...
virtual OsiSolverInterface * initialize_solver_interface()
Called only once at the beginning, from the root node.
MY_user_data * p_ud
Pointer on the description of the user data.
virtual void generate_cuts_in_lp(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows)
Cut generation.
BCP_vec< BCP_cut * > algo_cuts
Hold pointers on generated algorithmic cuts.
virtual void logical_fixing(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_vec< BCP_obj_status > &var_status, const BCP_vec< BCP_obj_status > &cut_status, const int var_bound_changes_since_logical_fixing, BCP_vec< int > &changed_pos, BCP_vec< double > &new_bd)
Perform fixing of variables.
virtual ~BB_lp()
Destructor.
virtual void unpack_module_data(BCP_buffer &buf)
Unpack data sent from the tree manager.
Class holding data for describing the problem.
virtual void cuts_to_rows(const BCP_vec< BCP_var * > &vars, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows, const BCP_lp_result &lpres, BCP_object_origin origin, bool allow_multiple)
Describes how to get a row of the matrix from the representation of the cut.
The BCP_lp_user class is the base class from which the user can derive a problem specific class to be...
virtual void initialize_new_search_tree_node(const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_vec< BCP_obj_status > &var_status, const BCP_vec< BCP_obj_status > &cut_status, BCP_vec< int > &var_changed_pos, BCP_vec< double > &var_new_bd, BCP_vec< int > &cut_changed_pos, BCP_vec< double > &cut_new_bd)
Initialize data members at the start of processing a new subproblem.
void fint fint fint real fint real real real real real real real real real fint real fint * lp
virtual BCP_solution * test_feasibility(const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts)
Test feasibility of the LP solution.
int in_strong
in_strong = 1 if and only if in strong branching phase
BCP_branching_decision
This enumerative constant is the return value of the select_branching_candidates() method in [BCP_lp_...
Class taking care of interaction between user data and Bcp.
std::vector< int > violated_cuts
Hold indices of violated indexed cuts.
double EPS
Hold the value of EPSILON of class BB_prob.
virtual BCP_solution * generate_heuristic_solution(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts)
Simple rounding heuristic.
virtual void modify_lp_parameters(OsiSolverInterface *lp, const int changeType, bool in_strong_branching)
Modify the parameters of the LP solver.
A presolved branching object candidate.
This class describes the message buffer used for all processes of BCP.
Class for operations at the node level.
This class holds the results after solving an LP relaxation.
virtual void set_user_data_for_children(BCP_presolved_lp_brobj *best, const int selected)
Set up the user data for the children according to the chosen branching object.
BB_prob * p_desc
Pointer on the description of the problem.
This is the abstract base class for a solution to a Mixed Integer Programming problem.
BB_lp()
Default constructor.