53#define BCP_ONLY_LP_PROCESS_HANDLING_WORKS
93 double* sumQueueLength;
102 sumQueueLength(NULL),
103 numQueueLength(NULL),
107 delete[] sumQueueLength;
108 delete[] numQueueLength;
112 delete[] sumQueueLength;
113 delete[] numQueueLength;
115 wait_time =
new double[num+1];
116 sumQueueLength =
new double[num+1];
117 numQueueLength =
new int[num+1];
118 for (
int i = 0; i <= num_lp; ++i) {
120 sumQueueLength[i] = 0;
121 numQueueLength[i] = 0;
126 sumQueueLength[i] += len;
143 BCP_tm_prob& operator=(
const BCP_tm_prob&);
323 inline bool ub(
double new_ub) {
BCP_column_generation
This enumerative constant describes what to do when a search tree node becomes fathomable for the cur...
This class describes the message buffer used for all processes of BCP.
Abstract base class that defines members common to all types of cuts.
This is an abstract base class that describes the message passing environment.
This class stores data about how an object set (set of vars or set of cuts) changes.
This is the class serves as a holder for a set of parameters.
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_process(int self, int my_parent)
This is the abstract base class for a solution to a Mixed Integer Programming problem.
This class is a very simple impelementation of a constant length string.
bool over_ub(const double lb) const
virtual void process_message()
char param(BCP_tm_par::chr_params key) const
std::multiset< double > lower_bounds
std::map< int, BCP_tm_node_to_send * > nodes_to_send
std::map< int, BCP_tm_node * > active_nodes
A map from the process ids to the nodes (what they work on)
std::map< int, Coin::SmartPtr< BCP_cut > > cuts_local
int param(BCP_tm_par::int_params key) const
static double lb_multiplier
The lower bounds of the unexplored search tree nodes.
int next_var_index_set_start
std::map< int, int > ts_space
void pack_var(const BCP_var &var)
double root_node_received_
int next_cut_index_set_start
const BCP_vec< BCP_string > & param(BCP_tm_par::str_array_params key) const
BCP_parameter_set< BCP_tm_par > par
std::map< int, int > vars_remote
std::vector< int > lp_procs
BCP_user_pack * packer
A class that holds the methods about how to pack things.
BCP_var * unpack_var_without_bcpind(BCP_buffer &buf)
double param(BCP_tm_par::dbl_params key) const
BCP_scheduler lp_scheduler
BCP_message_environment * msg_env
std::map< int, Coin::SmartPtr< BCP_var > > vars_local
double granularity() const
BCP_lp_statistics * lp_stat
CoinSearchTreeManager candidate_list
std::map< int, int > cuts_remote
std::vector< int > ts_procs
virtual BCP_buffer & get_message_buffer()
BCP_problem_core_change * core_as_change
BCP_cut * unpack_cut_without_bcpind(BCP_buffer &buf)
BCP_vec< std::pair< int, int > > leaves_per_vp
BCP_slave_params slave_pars
BCP_vec< std::pair< int, int > > leaves_per_cp
BCP_vec< BCP_tm_node * > next_phase_nodes
a vector of nodes to be processed in the next phase
double root_node_sent_
members to measure how long it took to process the root node.
BCP_vec< BCP_tm_node * > nodes_to_free
void pack_cut(const BCP_cut &cut)
const BCP_string & param(BCP_tm_par::str_params key) const
BCP_column_generation current_phase_colgen
void print(bool final, double t)
void update_wait_time(int i, double t)
void update_queue_length(int i, int len)
The BCP_tm_user class is the base class from which the user can derive a problem specific class to be...
Abstract base class that defines members common to all types of variables.
The class BCP_vec serves the same purpose as the vector class in the standard template library.
Warmstarting information for the LP solver.
BCP_parameter_set< BCP_cg_par > cg
BCP_parameter_set< BCP_lp_par > lp
BCP_parameter_set< BCP_vg_par > vg
BCP_parameter_set< BCP_ts_par > ts
bool root_pricing_unpacked
Set to true if the result of root pricing is already unpacked.
str_params
String parameters.
chr_params
Character parameters.
dbl_params
Double parameters.
int_params
Integer parameters.