10 #include "OsiSolverInterface.hpp"
41 printf(
"LP statistics:\n");
73 var_bound_changes_since_logical_fixing(0),
117 const int bcpind = var.
bcpind();
122 const double obj = var.
obj();
123 const double lb = var.
lb();
124 const double ub = var.
ub();
133 throw BCP_fatal_error(
"BCP_lp_prob::_pack_var(): unexpected obj_t.\n");
163 throw BCP_fatal_error(
"BCP_lp_prob::_unpack_var(): unexpected obj_t.\n");
176 const int bcpind = cut.
bcpind();
180 const double lb = cut.
lb();
181 const double ub = cut.
ub();
190 throw BCP_fatal_error(
"BCP_lp_prob::_pack_cut(): unexpected obj_t.\n");
215 throw BCP_fatal_error(
"BCP_lp_prob::_unpack_cut(): unexpected obj_t.\n");
This class describes changes in the core of the problem.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
BCP_buffer & pack(const T &value)
Pack a single object of type T.
BCP_lp_node * node
Description he current search tree node.
BCP_buffer & unpack(T &value)
Unpack a single object of type T.
void set_var_type(const BCP_var_t type)
Set the integrality type of the variable.
BCP_lp_parent * parent
Description of the parent of the current node.
void add(const BCP_lp_statistics &stat)
Add the argument statistics to this one.
Abstract base class that defines members common to all types of cuts.
virtual BCP_cut_algo * unpack_cut_algo(BCP_buffer &buf)
Unpack an algorithmic cut.
void set_bcpind(const int bcpind)
Set the internal index of the cut.
void set_bcpind(const int bcpind)
Set the internal index of the variable.
OsiSolverInterface * master_lp
A class that holds the methods about how to pack things.
Core cuts are the cuts that always stay in the LP formulation.
double ub() const
Return the upper bound on the cut.
void pack_var(const BCP_var &var)
Core variables are the variables that always stay in the LP formulation.
double time_var_generation
BCP_obj_status
This enumerative constant gives the status of an object (variable or cut).
void change_bounds(const double lb, const double ub)
Change the lower and upper bounds to the given values.
double lb() const
Return the lower bound on the cut.
BCP_lp_cut_pool * local_cut_pool
double ub() const
Return the upper bound.
virtual void pack_cut_algo(const BCP_cut_algo *cut, BCP_buffer &buf)
Pack an algorithmic cut.
BCP_lp_user * user
A class that holds the methods about how to pack things.
BCP_lp_prob(const BCP_lp_prob &)
void unpack(BCP_buffer &buf)
OsiSolverInterface * lp_solver
A class that holds the methods about how to pack things.
BCP_lp_result * lp_result
void fint fint fint * phase
CoinWarmStart * warmstartRoot
Description of the warmstart info from the end of the root node.
BCP_obj_status status() const
Return the status of the cut.
double obj() const
Return the objective coefficient.
void set_status(const BCP_obj_status stat)
Set the status of the cut.
BCP_lp_var_pool * local_var_pool
virtual BCP_object_t obj_type() const =0
Return the type of the variable.
BCP_var_t var_type() const
Return the integrality type of the variable.
void pack_cut(const BCP_cut &cut)
Abstract base class that defines members common to all types of variables.
Currently there isn't any error handling in BCP.
void display() const
Print out the statistics.
int bcpind() const
Return the internal index of the variable.
BCP_vec< BCP_cut * > slack_pool
BCP_obj_status status() const
Return the status of the variable.
virtual BCP_var_algo * unpack_var_algo(BCP_buffer &buf)
Unpack an algorithmic variable.
This class describes the message buffer used for all processes of BCP.
void change_bounds(const double lb, const double ub)
Change just the lower/upper bounds.
void set_obj(const double obj)
Set the objective coefficient.
virtual void pack_var_algo(const BCP_var_algo *var, BCP_buffer &buf)
Pack an algorithmic variable.
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real real fint real fint real char real * user
double lb() const
Return the lower bound.
void purge_ptr_vector(BCP_vec< T * > &pvec, typename BCP_vec< T * >::iterator first, typename BCP_vec< T * >::iterator last)
This function purges the entries [first,last) from the vector of pointers pvec.
This class holds the results after solving an LP relaxation.
void set_status(const BCP_obj_status status)
Set the status of the variable.
BCP_problem_core_change * core_as_change
void pack(BCP_buffer &buf)
int bcpind() const
Return the internal index of the cut.
double time_cut_generation
BCP_object_t
This enumerative constant describes the possible types of objects (variables and cuts).
virtual BCP_object_t obj_type() const =0
Return the type of the variable.
BCP_var_t
This enumerative constant describes the integrality type of a variable.
BCP_user_pack * packer
A class that holds the methods about how to pack things.