123 bool in_strong_branching);
151 const bool final_lp_solution);
184 bool force_branch =
false);
241 const double old_lower_bound,
242 double& true_lower_bound,
BCP_object_origin
This enumerative constant describes the origin (originating process) of an object (variable or cut)...
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.
OS_prob * os_prob
Pointer on the description of the problem.
BCP_vec< BCP_cut * > algo_cuts
Hold pointers on generated algorithmic cuts.
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.
double EPS
Hold the value of EPSILON of class OS_prob.
The BCP_lp_user class is the base class from which the user can derive a problem specific class to be...
virtual void process_lp_result(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const double old_lower_bound, double &true_lower_bound, BCP_solution *&sol, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows, BCP_vec< BCP_var * > &new_vars, BCP_vec< BCP_col * > &new_cols)
Process the result of an iteration.
void fint fint fint real fint real real real real real real real real real fint real fint * lp
OsiSolverInterface * cg_lp
virtual void display_lp_solution(const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const bool final_lp_solution)
Test feasibility of the LP solution.
OS_lp()
Default constructor.
int in_strong
in_strong = 1 if and only if in strong branching phase
std::vector< int > violated_cuts
Hold indices of violated indexed cuts.
MY_user_data * p_ud
Pointer on the description of the user data.
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.
virtual void unpack_module_data(BCP_buffer &buf)
Unpack data sent from the tree manager.
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.
A presolved branching object candidate.
virtual ~OS_lp()
Destructor.
BCP_vec< BCP_var * > algo_vars
Hold pointers on generated variables.
virtual OsiSolverInterface * initialize_solver_interface()
Pack algorithmic cuts.
This class describes the message buffer used for all processes of BCP.
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.
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.
Class holding data for describing the problem.
This class holds the results after solving an LP relaxation.
virtual void modify_lp_parameters(OsiSolverInterface *lp, bool in_strong_branching)
Modify the parameters of the LP solver.
Class for operations at the node level.
virtual void vars_to_cols(const BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_var * > &vars, BCP_vec< BCP_col * > &cols, const BCP_lp_result &lpres, BCP_object_origin origin, bool allow_multiple)
Convert a set of variables into corresponding columns for the current LP relaxation.
This is the abstract base class for a solution to a Mixed Integer Programming problem.