3#ifndef _BCP_TM_USER_FUN_H
4#define _BCP_TM_USER_FUN_H
218 bool after_processing_node);
249 const bool new_solution);
BCP_column_generation
This enumerative constant describes what to do when a search tree node becomes fathomable for the cur...
BCP_process_t
This enumerative constant describes the various process types.
This class describes the message buffer used for all processes of BCP.
An object of type BCP_lp_relax holds the description of an lp relaxation.
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.
void set_param(const BCP_tm_par::chr_params key, const char val)
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 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.
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 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)
char get_param(const BCP_tm_par::chr_params key) const
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.
double lower_bound() const
Return a global lower bound.
double get_param(const BCP_tm_par::dbl_params key) const
void setTmProblemPointer(BCP_tm_prob *ptr)
Set the pointer.
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 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...
void broadcast_message(const BCP_process_t proc_type, const BCP_buffer &buf)
Broadcast the message to all processes of the given type.
double upper_bound() const
Return what is the best known upper bound (might be BCP_DBL_MAX)
void set_param(const BCP_tm_par::str_params key, const char *val)
void send_message(const int target, const BCP_buffer &buf)
Send a message to a particular process.
void set_param(const BCP_tm_par::dbl_params key, const double val)
virtual void display_feasible_solution(const BCP_solution *sol)
Display a feasible solution.
virtual void display_final_information(const BCP_lp_statistics &lp_stat)
Display information after BCP finished processing the search tree.
virtual ~BCP_tm_user()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted.
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...
void set_param(const BCP_tm_par::int_params key, const int val)
BCP_tm_prob * getTmProblemPointer() const
Get the pointer.
virtual void change_candidate_heap(CoinSearchTreeManager &candidates, const bool new_solution)
int process_id() const
What is the process id of the current process.
int get_param(const BCP_tm_par::int_params key) const
virtual void display_node_information(BCP_tree &search_tree, const BCP_tm_node &node, bool after_processing_node)
Display user information.
const BCP_string & get_param(const BCP_tm_par::str_params key) const
The class BCP_vec serves the same purpose as the vector class in the standard template library.
str_params
String parameters.
chr_params
Character parameters.
dbl_params
Double parameters.
int_params
Integer parameters.