10 #include "CoinSearchTree.hpp"
11 #include "CoinSmartPtr.hpp"
53 Coin::SmartPtr<BCP_node_change>
_desc;
54 Coin::SmartPtr<BCP_user_data>
_user;
193 for (
int i =
_tree.
size() - 1; i >= 0; --i) {
232 inline void remove(
int index) {
244 static std::map<int, BCP_tm_node_to_send*>
waiting;
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
const BCP_tm_node * parent() const
This class stores data about how an object set (set of vars or set of cuts) changes.
BCP_obj_set_change cut_set
static int num_local_nodes
int missing_cut_num
-1/nonneg unset/value : how many cut is missing
void increase_processed()
BCP_obj_set_change var_set
The explicit description of the vars/cuts of the parent as a BCP_obj_set_change and the vars/cuts the...
BCP_vec< BCP_tm_node * > _children
void insert(BCP_tm_node *node)
Return the worst true lower bound in the search tree.
void enumerate_leaves(BCP_tm_node *node, const double obj_limit)
Return the worst true lower bound in the search tree.
BCP_tm_node_status status
BCP_tm_node(const BCP_tm_node &)
The copy constructor is declared but not defined to disable it.
void reserve_child_num(int num)
int * child_index
at each level the index of the child in the parent's list
static int num_remote_nodes
iterator begin()
Return an iterator to the beginning of the object.
BCP_tm_node & operator=(const BCP_tm_node &)
The assignment operator is declared but not defined to disable it.
BCP_vec< BCP_tm_node * >::iterator end()
void reserve(const size_t n)
Reallocate the object to make space for n entries.
const BCP_tm_node ** root_path
the path to the root.
void push_back(const_reference x)
Append x to the end of the vector.
BCP_vec< BCP_tm_node * >::iterator begin()
const int ID
An identifier of this object.
Coin::SmartPtr< BCP_node_change > _desc
reference front()
Return a reference to the first entry.
const BCP_tm_node * child(int ind) const
BCP_vec< Coin::SmartPtr< BCP_cut > > cuts
bool receive_cuts(BCP_buffer &buf)
return true if has everything to send the thing off to the LP.
BCP_tm_node * child(int ind)
BCP_tm_node_to_send(BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag tag)
int mark_descendants_for_deletion()
void new_child(BCP_tm_node *node)
BCP_vec< Coin::SmartPtr< BCP_var > > vars
The list of vars/cuts of the node when the changes of the node are applied to var_set and cut_set...
Coin::SmartPtr< BCP_user_data > _user
BCP_tm_node_status
Node status in the Tree Manager.
BCP_message_tag msgtag
the message tag to be used when finally the node is sent off
void remove_child(BCP_tm_node *node)
double true_lower_bound(const BCP_tm_node *node) const
Return the worst true lower bound in the search tree.
size_t size() const
Return the current number of entries.
iterator end()
Return an iterator to the end of the object.
This class describes the message buffer used for all processes of BCP.
int level
the level of node to be sent
static std::map< int, BCP_tm_node_to_send * > waiting
bool receive_vars(BCP_buffer &buf)
return true if has everything to send the thing off to the LP.
BCP_vec< BCP_tm_node * > _tree
int missing_desc_num
-1/nonneg unset/value : how many desc is missing
BCP_tm_node * operator[](int index)
BCP_tm_node_data * node_data_on_root_path
the node data on each level (well, up to the point where we have encountered an explicit description ...
int missing_var_num
-1/nonneg unset/value : how many var is missing
bool receive_node_desc(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...
BCP_tm_node_data(BCP_node_change *d=NULL)
int explicit_core_level
where the various pieces start to be explicit (or wrt.