#include <BCP_tm_node.hpp>
Public Member Functions | |
Constructor and destructor | |
Query methods | |
BCP_vec< BCP_tm_node * >::iterator | begin () |
BCP_vec< BCP_tm_node * >::iterator | end () |
BCP_tm_node * | root () |
BCP_tm_node * | operator[] (int index) |
size_t | size () const |
int | maxdepth () const |
Modifying methods | |
double | true_lower_bound (const BCP_tm_node *node) const |
void | enumerate_leaves (BCP_tm_node *node, const double obj_limit) |
void | insert (BCP_tm_node *node) |
Private Attributes | |
BCP_vec< BCP_tm_node * > | _tree |
int | maxdepth_ |
Definition at line 199 of file BCP_tm_node.hpp.
|
Return the worst true lower bound in the search tree Definition at line 74 of file BCP_tm_node.cpp. References BCP_tm_node::_children, BCP_vec< BCP_tm_node * >::begin(), BCP_tm_node::child_num(), BCP_vec< BCP_tm_node * >::end(), BCP_tm_node::status, and BCP_tm_node::true_lower_bound().
00075 { 00076 double worstlb = DBL_MAX; 00077 if (node->child_num() == 0) { 00078 const BCP_tm_node_status st = node->status; 00079 if (st == BCP_ActiveNode || st == BCP_CandidateNode) 00080 worstlb = node->true_lower_bound(); 00081 } else { 00082 BCP_vec<BCP_tm_node*>::const_iterator child; 00083 BCP_vec<BCP_tm_node*>::const_iterator lastchild = node->_children.end(); 00084 for (child = node->_children.begin(); child != lastchild; ++child) { 00085 const double childlb = true_lower_bound(*child); 00086 if (childlb < worstlb) 00087 worstlb = childlb; 00088 } 00089 } 00090 return worstlb; 00091 } |