77 bool in_strong_branching);
95 const int var_bound_changes_since_logical_fixing,
139 bool force_branch =
false);
BCP_object_origin
This enumerative constant describes the origin (originating process) of an object (variable or cut)...
MY_user_data * p_ud
Pointer on the description of the user data.
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.
virtual void unpack_module_data(BCP_buffer &buf)
Unpack data sent from the tree manager.
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.
BCP_vec< BCP_cut * > algo_cuts
Hold pointers on generated algorithmic cuts.
virtual ~BB_lp()
Destructor.
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.
Class holding data for describing the problem.
virtual void modify_lp_parameters(OsiSolverInterface *lp, const int changeType, bool in_strong_branching)
Modify the parameters of the LP solver.
The BCP_lp_user class is the base class from which the user can derive a problem specific class to be...
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 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.
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_...
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.
Class taking care of interaction between user data and Bcp.
Abstract Base Class for describing an interface to a solver.
std::vector< int > violated_cuts
Hold indices of violated indexed cuts.
double EPS
Hold the value of EPSILON of class BB_prob.
A presolved branching object candidate.
virtual OsiSolverInterface * initialize_solver_interface()
Called only once at the beginning, from the root node.
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 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.
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.
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.