190 BCP_tree() : _tree(), maxdepth_(0), processed_(0) {}
193 for (
int i = _tree.
size() - 1; i >= 0; --i) {
211 inline size_t size()
const {
return _tree.
size(); }
244 static std::map<int, BCP_tm_node_to_send*>
waiting;
270 int explicit_core_level;
271 int explicit_var_level;
272 int explicit_cut_level;
273 int explicit_ws_level;
274 int explicit_all_level;
277 int missing_desc_num;
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
BCP_tm_node_status
Node status in the Tree Manager.
@ BCP_NextPhaseNode_OverUB
@ BCP_PrunedNode_Discarded
@ BCP_NextPhaseNode_Infeas
This class describes the message buffer used for all processes of BCP.
This class stores data about how an object set (set of vars or set of cuts) changes.
Coin::SmartPtr< BCP_node_change > _desc
Coin::SmartPtr< BCP_user_data > _user
BCP_tm_node_data(BCP_node_change *d=NULL)
BCP_tm_node_to_send(BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag tag)
bool receive_vars(BCP_buffer &buf)
return true if has everything to send the thing off to the LP.
bool receive_node_desc(BCP_buffer &buf)
return true if has everything to send the thing off to the LP.
bool receive_cuts(BCP_buffer &buf)
return true if has everything to send the thing off to the LP.
bool send()
return true or false depending on whether the node was really sent out or it's still waiting for some...
static std::map< int, BCP_tm_node_to_send * > waiting
void remove_child(BCP_tm_node *node)
int mark_descendants_for_deletion()
static int num_remote_nodes
const BCP_tm_node * parent() const
void reserve_child_num(int num)
void new_child(BCP_tm_node *node)
BCP_tm_node_status status
BCP_tm_node * child(int ind)
BCP_vec< BCP_tm_node * > _children
BCP_tm_node(int level, BCP_node_change *desc)
static int num_local_nodes
const BCP_tm_node * child(int ind) const
BCP_tm_node * operator[](int index)
BCP_vec< BCP_tm_node * >::iterator begin()
void increase_processed()
BCP_vec< BCP_tm_node * >::iterator end()
void insert(BCP_tm_node *node)
void enumerate_leaves(BCP_tm_node *node, const double obj_limit)
double true_lower_bound(const BCP_tm_node *node) const
Return the worst true lower bound in the search tree.
The class BCP_vec serves the same purpose as the vector class in the standard template library.
void push_back(const_reference x)
Append x to the end of the vector.
iterator end()
Return an iterator to the end of the object.
size_t size() const
Return the current number of entries.
iterator begin()
Return an iterator to the beginning of the object.
reference front()
Return a reference to the first entry.
void reserve(const size_t n)
Reallocate the object to make space for n entries.