3 #ifndef _BCP_TM_USER_FUN_H
4 #define _BCP_TM_USER_FUN_H
218 bool after_processing_node);
233 CoinSearchTreeBase*& candidates);
249 const bool new_solution);
virtual void display_feasible_solution(const BCP_solution *sol)
Display a feasible solution.
double upper_bound() const
Return what is the best known upper bound (might be BCP_DBL_MAX)
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...
virtual void change_candidate_heap(CoinSearchTreeManager &candidates, const bool new_solution)
dbl_params
Double parameters.
BCP_process_t
This enumerative constant describes the various process types.
virtual void display_final_information(const BCP_lp_statistics &lp_stat)
Display information after BCP finished processing the search tree.
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
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.
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 set_param(const BCP_tm_par::chr_params key, const bool val)
chr_params
Character parameters.
void fint fint fint * phase
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 init_new_phase(int phase, BCP_column_generation &colgen, CoinSearchTreeBase *&candidates)
Do whatever initialization is necessary before the phase-th phase.
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.
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...
This class describes the message buffer used for all processes of BCP.
BCP_tm_prob * getTmProblemPointer() const
Get the pointer.
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.
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...
virtual bool replace_solution(const BCP_solution *old_sol, const BCP_solution *new_sol)
Decide whether to replace old_sol with new_sol.
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...
int process_id() const
What is the process id of the current process.
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.