coin-Bcp
BCP_tm_functions.hpp
Go to the documentation of this file.
1 // Copyright (C) 2000, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #ifndef _BCP_TM_FUNCTIONS_H
4 #define _BCP_TM_FUNCTIONS_H
5 
6 #include <utility> // for pair
7 
8 #include "BCP_string.hpp"
9 #include "BCP_vector.hpp"
10 #include "BCP_message_tag.hpp"
11 #include "BCP_parameters.hpp"
12 #include "BCP_enum_tm.hpp"
13 #include "BCP_enum_process_t.hpp"
14 
15 #define BCP__DUMP_PROCINFO 0
16 
17 class BCP_buffer;
18 class BCP_tm_prob;
19 class BCP_lp_prob;
20 class BCP_cg_prob;
21 class BCP_vg_prob;
22 class BCP_tm_node;
23 class BCP_var;
24 class BCP_cut;
25 class BCP_problem_core;
27 class BCP_tm_node;
28 class BCP_var_set_change;
29 class BCP_cut_set_change;
30 class USER_packing;
31 
32 //-----------------------------------------------------------------------------
33 // BCP_tm_commandline.cpp
34 void
36  const int argnum, const char* const * arglist);
37 //-----------------------------------------------------------------------------
38 // BCP_tm_main.cpp
43 
44 //-----------------------------------------------------------------------------
45 // BCP_tm_trimming.cpp
46 void BCP_tm_trim_tree_wrapper(BCP_tm_prob& p, const bool between_phases);
48 
49 //-----------------------------------------------------------------------------
50 // BCP_tm_nodes_to_storage.cpp
53 
54 //-----------------------------------------------------------------------------
55 // BCP_tm_msgproc.cpp
61 void BCP_tm_remove_lp(BCP_tm_prob& p, const int index);
62 void BCP_tm_remove_cg(BCP_tm_prob& p, const int index);
63 void BCP_tm_remove_vg(BCP_tm_prob& p, const int index);
66  int num, const int* pids);
70 
71 //-----------------------------------------------------------------------------
72 // BCP_tm_msg_node_send.cpp
73 void BCP_tm_send_node(BCP_tm_prob& p, const BCP_tm_node* node,
74  const BCP_message_tag msgtag);
75 
76 //-----------------------------------------------------------------------------
77 // BCP_tm_msg_node_rec.cpp
79 
80 BCP_vec<int>* BCP_tm_unpack_noncore_vars(USER_packing& user,
81  BCP_buffer& buf,
82  BCP_var_set_change& var_ch,
83  BCP_vec<BCP_var*>& varlist);
84 BCP_vec<int>* BCP_tm_unpack_noncore_cuts(USER_packing& user,
85  BCP_buffer& buf,
86  BCP_cut_set_change& cut_ch,
87  BCP_vec<BCP_cut*>& cutlist);
88 
91  BCP_buffer& buf);
92 //-----------------------------------------------------------------------------
93 // BCP_tm_functions.cpp
95 BCP_tm_identify_process(BCP_vec< std::pair<int, int> >& proclist, int proc);
101 
102 //-----------------------------------------------------------------------------
103 // BCP_tm_statistics.cpp
106  BCP_cg_prob* cg, BCP_vg_prob* vg, bool final_stat);
107 
108 #ifdef BCP__DUMP_PROCINFO
109 #if (BCP__DUMP_PROCINFO == 1)
110 void dump_procinfo(BCP_tm_prob& p, const char* str);
111 #endif
112 #endif
113 
114 #endif
This class describes changes in the core of the problem.
BCP_problem_core * BCP_tm_create_core(BCP_tm_prob &p)
void BCP_tm_notify_about_new_phase(BCP_tm_prob &p)
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
void BCP_tm_notify_process_type(BCP_tm_prob &p, BCP_process_t ptype, int num, const int *pids)
void BCP_tm_send_node(BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag msgtag)
void BCP_tm_unpack_priced_root(BCP_tm_prob &p, BCP_buffer &buf)
Abstract base class that defines members common to all types of cuts.
Definition: BCP_cut.hpp:29
void BCP_tm_list_candidates(BCP_tm_prob &p)
BCP_process_t
This enumerative constant describes the various process types.
BCP_tm_node * BCP_tm_unpack_node_no_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
bool BCP_tm_is_data_balanced(BCP_tm_prob &p)
This class is the central class of the Cut Generator process.
Definition: BCP_cg.hpp:32
NO OLD DOC.
Definition: BCP_lp.hpp:102
bool BCP_tm_balance_data(BCP_tm_prob &p)
void BCP_tm_stop_processes(BCP_tm_prob &p)
void BCP_tm_start_processes(BCP_tm_prob &p)
void BCP_tm_remove_vg(BCP_tm_prob &p, const int index)
void BCP_tm_parse_command_line(BCP_tm_prob &p, const int argnum, const char *const *arglist)
void BCP_tm_remove_lp(BCP_tm_prob &p, const int index)
bool BCP_tm_assign_processes(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_unpack_node_with_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
BCP_node_start_result BCP_tm_start_new_nodes(BCP_tm_prob &p)
void BCP_tm_tasks_before_new_phase(BCP_tm_prob &p)
NO OLD DOC.
Definition: BCP_tm.hpp:136
void BCP_tm_trim_tree_wrapper(BCP_tm_prob &p, const bool between_phases)
bool BCP_tm_do_one_phase(BCP_tm_prob &p)
BCP_node_start_result
This enumerative constant describes ...
Definition: BCP_enum_tm.hpp:19
void BCP_tm_free_procs_of_node(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_idle_processes(BCP_tm_prob &p)
void BCP_sanity_checks(BCP_tm_prob &p)
void BCP_tm_wrapup(BCP_tm_prob *tm, BCP_lp_prob *lp, BCP_cg_prob *cg, BCP_vg_prob *vg, bool final_stat)
void BCP_print_memusage(BCP_tm_prob &p)
Abstract base class that defines members common to all types of variables.
Definition: BCP_var.hpp:28
BCP_vec< int > * BCP_tm_unpack_noncore_cuts(USER_packing &user, BCP_buffer &buf, BCP_cut_set_change &cut_ch, BCP_vec< BCP_cut * > &cutlist)
void BCP_tm_notify_processes(BCP_tm_prob &p)
This class describes the message buffer used for all processes of BCP.
Definition: BCP_buffer.hpp:39
void BCP_tm_save_root_cuts(BCP_tm_prob *tm)
void BCP_tm_remove_explored(BCP_tm_prob &p, BCP_tm_node *node)
BCP_tm_node * BCP_tm_create_root(BCP_tm_prob &p)
This class is the central class of the Variable Generator process.
Definition: BCP_vg.hpp:32
void BCP_tm_modify_pool_counters(BCP_tm_prob &p, BCP_tm_node *node)
BCP_vec< std::pair< int, int > >::iterator BCP_tm_identify_process(BCP_vec< std::pair< int, int > > &proclist, int proc)
BCP_vec< int > * BCP_tm_unpack_noncore_vars(USER_packing &user, BCP_buffer &buf, BCP_var_set_change &var_ch, BCP_vec< BCP_var * > &varlist)
void BCP_tm_remove_cg(BCP_tm_prob &p, const int index)
bool BCP_tm_test_machine(BCP_tm_prob &p)
void BCP_check_parameters(BCP_tm_prob &p)