/home/coin/SVN-release/OS-2.4.2/Bcp/src/TM/BCP_tm_msg_node_rec.cpp File Reference

#include <cstdlib>
#include <algorithm>
#include "CoinTime.hpp"
#include "BCP_os.hpp"
#include "BCP_USER.hpp"
#include "BCP_node_change.hpp"
#include "BCP_warmstart.hpp"
#include "BCP_branch.hpp"
#include "BCP_enum_branch.hpp"
#include "BCP_message.hpp"
#include "BCP_vector.hpp"
#include "BCP_tm.hpp"
#include "BCP_tm_user.hpp"
#include "BCP_tm_functions.hpp"

Include dependency graph for BCP_tm_msg_node_rec.cpp:

Go to the source code of this file.

Defines

#define BCP_DEBUG_PRINT   0

Functions

static int BCP_tm_unpack_node_description (BCP_tm_prob &p, BCP_buffer &buf)
static void BCP_tm_create_core_change (BCP_node_change *desc, const int bvarnum, const int bcutnum, const BCP_internal_brobj *brobj, const int childind)
static void BCP_tm_create_var_change (BCP_node_change *desc, const BCP_node_change *parentdesc, const int bvarnum, const BCP_internal_brobj *brobj, const int childind)
static void BCP_tm_create_cut_change (BCP_node_change *desc, const BCP_node_change *parentdesc, const int bcutnum, const BCP_internal_brobj *brobj, const int childind)
static void BCP_tm_unpack_branching_info (BCP_tm_prob &p, BCP_buffer &buf, BCP_tm_node *node)
static BCP_diving_status BCP_tm_shall_we_dive (BCP_tm_prob &p, const double quality)
static void BCP_tm_print_info_line (BCP_tm_prob &p, BCP_tm_node &node)
void BCP_print_memusage (BCP_tm_prob &p)
static BCP_tm_nodeBCP_tm_create_child (BCP_tm_prob &p, const int child_ind, BCP_tm_node *node, const BCP_internal_brobj *brobj, const BCP_vec< BCP_child_action > &action, const BCP_vec< BCP_user_data * > &user_data, const BCP_vec< double > &true_lb, const BCP_vec< double > &qualities)
void BCP_tm_unpack_node_with_branching_info (BCP_tm_prob &p, BCP_buffer &buf)
BCP_tm_nodeBCP_tm_unpack_node_no_branching_info (BCP_tm_prob &p, BCP_buffer &buf)


Define Documentation

#define BCP_DEBUG_PRINT   0

Definition at line 21 of file BCP_tm_msg_node_rec.cpp.


Function Documentation

static int BCP_tm_unpack_node_description ( BCP_tm_prob p,
BCP_buffer buf 
) [static]

Definition at line 111 of file BCP_tm_msg_node_rec.cpp.

References BCP_tm_node::_core_storage, BCP_tm_node::_cut_storage, BCP_tm_node::_data, BCP_tm_node::_data_location, BCP_tm_node_data::_desc, BCP_tm_node::_locally_stored, BCP_tm_node_data::_user, BCP_tm_node::_var_storage, BCP_tm_node::_ws_storage, BCP_tm_prob::active_nodes, BCP_Msg_NodeListDelete, BCP_Storage_NoData, BCP_WarmstartNone, BCP_WarmstartParent, BCP_WarmstartRoot, BCP_tm_prob::core, BCP_node_change::core_change, BCP_node_change::cut_change, BCP_problem_core::cutnum(), BCP_tree::increase_processed(), BCP_tm_prob::lb_multiplier, BCP_tm_prob::lower_bounds, BCP_tm_node::lp, BCP_tm_prob::msg_env, BCP_tm_node::num_local_nodes, BCP_tm_node::num_remote_nodes, BCP_buffer::pack(), BCP_tm_prob::packer, BCP_tm_prob::param(), BCP_tm_par::ReportWhenDefaultIsExecuted, BCP_tm_prob::search_tree, BCP_message_environment::send(), BCP_warmstart::storage(), BCP_obj_set_change::storage(), BCP_problem_core_change::storage(), TMDBG, BCP_obj_set_change::unpack(), BCP_problem_core_change::unpack(), BCP_buffer::unpack(), BCP_tm_prob::unpack_cut(), BCP_user_pack::unpack_user_data(), BCP_tm_prob::unpack_var(), BCP_user_pack::unpack_warmstart(), BCP_node_change::var_change, BCP_problem_core::varnum(), BCP_node_change::warmstart, and BCP_tm_par::WarmstartInfo.

Referenced by BCP_tm_unpack_node_no_branching_info(), and BCP_tm_unpack_node_with_branching_info().

static void BCP_tm_create_core_change ( BCP_node_change desc,
const int  bvarnum,
const int  bcutnum,
const BCP_internal_brobj brobj,
const int  childind 
) [static]

Definition at line 270 of file BCP_tm_msg_node_rec.cpp.

References BCP_problem_core_change::_storage, BCP_internal_brobj::affected_cutnum(), BCP_internal_brobj::affected_varnum(), BCP_ObjNotRemovable, BCP_Storage_NoData, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_node_change::core_change, BCP_internal_brobj::cut_bounds_child(), BCP_problem_core_change::cut_ch, BCP_problem_core_change::cut_pos, BCP_internal_brobj::cut_positions(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_vec< T >::unchecked_push_back(), BCP_internal_brobj::var_bounds_child(), BCP_problem_core_change::var_ch, BCP_problem_core_change::var_pos, and BCP_internal_brobj::var_positions().

Referenced by BCP_tm_create_child().

static void BCP_tm_create_var_change ( BCP_node_change desc,
const BCP_node_change parentdesc,
const int  bvarnum,
const BCP_internal_brobj brobj,
const int  childind 
) [static]

Definition at line 350 of file BCP_tm_msg_node_rec.cpp.

References BCP_obj_set_change::_change, BCP_obj_set_change::_del_change_pos, BCP_obj_set_change::_storage, BCP_obj_set_change::added_num(), BCP_ObjNotRemovable, BCP_Storage_Explicit, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_obj_set_change::storage(), BCP_vec< T >::unchecked_push_back(), BCP_internal_brobj::var_bounds_child(), BCP_node_change::var_change, and BCP_internal_brobj::var_positions().

Referenced by BCP_tm_create_child().

static void BCP_tm_create_cut_change ( BCP_node_change desc,
const BCP_node_change parentdesc,
const int  bcutnum,
const BCP_internal_brobj brobj,
const int  childind 
) [static]

Definition at line 396 of file BCP_tm_msg_node_rec.cpp.

References BCP_obj_set_change::_change, BCP_obj_set_change::_del_change_pos, BCP_obj_set_change::_storage, BCP_obj_set_change::added_num(), BCP_ObjNotRemovable, BCP_Storage_Explicit, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_internal_brobj::cut_bounds_child(), BCP_node_change::cut_change, BCP_internal_brobj::cut_positions(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_obj_set_change::storage(), and BCP_vec< T >::unchecked_push_back().

Referenced by BCP_tm_create_child().

static void BCP_tm_unpack_branching_info ( BCP_tm_prob p,
BCP_buffer buf,
BCP_tm_node node 
) [static]

Definition at line 519 of file BCP_tm_msg_node_rec.cpp.

References BCP_tm_node::_index, BCP_ActiveNode, BCP_DoDive, BCP_DoNotDive, BCP_KeepChild, BCP_Msg_DivingInfo, BCP_print_memusage(), BCP_ProcessedNode, BCP_TestBeforeDive, BCP_tm_create_child(), BCP_tm_free_procs_of_node(), BCP_tm_identify_process(), BCP_tm_is_data_balanced(), BCP_tm_shall_we_dive(), BCP_vec< T >::begin(), BCP_tm_prob::candidate_list, BCP_tm_node::cg, BCP_tm_node::child(), BCP_tm_node::child_num(), BCP_internal_brobj::child_num(), BCP_buffer::clear(), BCP_tm_node::cp, BCP_tm_user::display_node_information(), BCP_vec< T >::end(), BCP_tm_node::index(), BCP_vec< T >::insert(), BCP_tm_prob::lb_multiplier, BCP_tm_prob::leaves_per_cp, BCP_tm_prob::leaves_per_vp, BCP_tm_prob::lower_bounds, BCP_tm_node::lp, BCP_tm_prob::msg_env, BCP_buffer::pack(), BCP_tm_prob::packer, BCP_tm_node::reserve_child_num(), BCP_tm_prob::search_tree, BCP_message_environment::send(), BCP_vec< T >::size(), BCP_tm_prob::start_time, BCP_tm_node::status, TMDBG, tt, BCP_internal_brobj::unpack(), BCP_buffer::unpack(), BCP_user_pack::unpack_user_data(), BCP_tm_prob::user, BCP_tm_node::vg, and BCP_tm_node::vp.

Referenced by BCP_tm_unpack_node_with_branching_info().

static BCP_diving_status BCP_tm_shall_we_dive ( BCP_tm_prob p,
const double  quality 
) [inline, static]

Definition at line 236 of file BCP_tm_msg_node_rec.cpp.

References BCP_DoDive, BCP_DoNotDive, BCP_TestBeforeDive, BCP_tm_prob::candidate_list, BCP_tm_prob::has_ub(), BCP_tm_prob::param(), BCP_tm_par::QualityRatioToAllowDiving_HasUB, BCP_tm_par::QualityRatioToAllowDiving_NoUB, ratio(), and BCP_tm_par::UnconditionalDiveProbability.

Referenced by BCP_tm_unpack_branching_info().

static void BCP_tm_print_info_line ( BCP_tm_prob p,
BCP_tm_node node 
) [static]

Definition at line 47 of file BCP_tm_msg_node_rec.cpp.

References BCP_tm_prob::candidate_list, BCP_tm_prob::param(), BCP_tree::processed(), BCP_tm_prob::search_tree, BCP_tree::size(), BCP_tm_par::TmVerb_SingleLineInfoFrequency, and BCP_tm_prob::ub().

Referenced by BCP_tm_unpack_node_no_branching_info(), and BCP_tm_unpack_node_with_branching_info().

void BCP_print_memusage ( BCP_tm_prob p  ) 

Definition at line 94 of file BCP_tm_msg_node_rec.cpp.

References BCP_used_heap().

Referenced by BCP_tm_start_one_node(), BCP_tm_unpack_branching_info(), and BCP_tm_unpack_node_no_branching_info().

static BCP_tm_node* BCP_tm_create_child ( BCP_tm_prob p,
const int  child_ind,
BCP_tm_node node,
const BCP_internal_brobj brobj,
const BCP_vec< BCP_child_action > &  action,
const BCP_vec< BCP_user_data * > &  user_data,
const BCP_vec< double > &  true_lb,
const BCP_vec< double > &  qualities 
) [static]

Definition at line 442 of file BCP_tm_msg_node_rec.cpp.

References BCP_tm_node::_birth_index, BCP_tm_node::_core_storage, BCP_tm_node::_cut_storage, BCP_tm_node::_data, BCP_tm_node_data::_desc, BCP_tm_node::_index, BCP_tm_node::_parent, BCP_tm_node_data::_user, BCP_tm_node::_var_storage, BCP_tm_node::_ws_storage, BCP_CandidateNode, BCP_FathomChild, BCP_KeepChild, BCP_PrunedNode_Discarded, BCP_ReturnChild, BCP_Storage_NoData, BCP_tm_create_core_change(), BCP_tm_create_cut_change(), BCP_tm_create_var_change(), BCP_tm_node::child_num(), BCP_tm_prob::core, BCP_node_change::core_change, BCP_tm_node::cp, BCP_node_change::cut_change, BCP_problem_core::cutnum(), BCP_warmstart::empty_wrt_this(), BCP_tree::insert(), BCP_tm_node::new_child(), BCP_tm_prob::search_tree, BCP_tm_node::status, BCP_warmstart::storage(), BCP_obj_set_change::storage(), BCP_problem_core_change::storage(), tt, BCP_node_change::var_change, BCP_problem_core::varnum(), BCP_tm_node::vp, and BCP_node_change::warmstart.

Referenced by BCP_tm_unpack_branching_info().

void BCP_tm_unpack_node_with_branching_info ( BCP_tm_prob p,
BCP_buffer buf 
)

Definition at line 707 of file BCP_tm_msg_node_rec.cpp.

References BCP_tm_balance_data(), BCP_tm_print_info_line(), BCP_tm_unpack_branching_info(), BCP_tm_unpack_node_description(), BCP_tm_prob::need_a_TS, and BCP_tm_prob::search_tree.

Referenced by BCP_tm_prob::process_message().

BCP_tm_node* BCP_tm_unpack_node_no_branching_info ( BCP_tm_prob p,
BCP_buffer buf 
)

Definition at line 721 of file BCP_tm_msg_node_rec.cpp.

References BCP_print_memusage(), BCP_tm_balance_data(), BCP_tm_free_procs_of_node(), BCP_tm_is_data_balanced(), BCP_tm_print_info_line(), BCP_tm_unpack_node_description(), BCP_tm_prob::need_a_TS, and BCP_tm_prob::search_tree.

Referenced by BCP_tm_prob::process_message().


Generated on Wed Nov 30 03:06:03 2011 by  doxygen 1.4.7