3 #ifndef _BCP_TM_USER_FUN_H
4 #define _BCP_TM_USER_FUN_H
218 bool after_processing_node);
249 const bool new_solution);
virtual void process_message(BCP_buffer &buf)
Process a message that has been sent by another process' user part to this process' user part...
virtual void display_final_information(const BCP_lp_statistics &lp_stat)
Display information after BCP finished processing the search tree.
double upper_bound() const
Return what is the best known upper bound (might be BCP_DBL_MAX)
virtual void change_candidate_heap(CoinSearchTreeManager &candidates, const bool new_solution)
virtual void initialize_core(BCP_vec< BCP_var_core * > &vars, BCP_vec< BCP_cut_core * > &cuts, BCP_lp_relax *&matrix)
Create the core of the problem by filling out the last three arguments.
dbl_params
Double parameters.
virtual void pack_module_data(BCP_buffer &buf, BCP_process_t ptype)
Pack the initial information (info that the user wants to send over) for the process specified by the...
BCP_process_t
This enumerative constant describes the various process types.
virtual void display_node_information(BCP_tree &search_tree, const BCP_tm_node &node)
Display user information just before a new node is sent to the LP or diving into a node is acknowledg...
BCP_tm_user()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted...
char get_param(const BCP_tm_par::chr_params key) const
virtual bool replace_solution(const BCP_solution *old_sol, const BCP_solution *new_sol)
Decide whether to replace old_sol with new_sol.
This class is a very simple impelementation of a constant length string.
void setTmProblemPointer(BCP_tm_prob *ptr)
Set the pointer.
void send_message(const int target, const BCP_buffer &buf)
Send a message to a particular process.
void set_param(const BCP_tm_par::chr_params key, const bool val)
chr_params
Character parameters.
virtual void init_new_phase(int phase, BCP_column_generation &colgen, CoinSearchTreeBase *&candidates)
Do whatever initialization is necessary before the phase-th phase.
virtual void create_root(BCP_vec< BCP_var * > &added_vars, BCP_vec< BCP_cut * > &added_cuts, BCP_user_data *&user_data)
Create the set of extra variables and cuts that should be added to the formulation in the root node...
virtual BCP_solution * unpack_feasible_solution(BCP_buffer &buf)
Unpack a MIP feasible solution that was packed by the BCP_lp_user::pack_feasible_solution() method...
void broadcast_message(const BCP_process_t proc_type, const BCP_buffer &buf)
Broadcast the message to all processes of the given type.
int_params
Integer parameters.
This class describes the message buffer used for all processes of BCP.
BCP_tm_prob * getTmProblemPointer() const
Get the pointer.
BCP_column_generation
This enumerative constant describes what to do when a search tree node becomes fathomable for the cur...
The BCP_tm_user class is the base class from which the user can derive a problem specific class to be...
int process_id() const
What is the process id of the current process.
virtual void display_feasible_solution(const BCP_solution *sol)
Display a feasible solution.
virtual ~BCP_tm_user()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted...
An object of type BCP_lp_relax holds the description of an lp relaxation.
str_params
String parameters.
double lower_bound() const
Return a global lower bound.
This is the abstract base class for a solution to a Mixed Integer Programming problem.