00001 #ifndef MCF1_tm_hpp 00002 #define MCF1_tm_hpp 00003 00004 #include "BCP_buffer.hpp" 00005 #include "BCP_tm_user.hpp" 00006 #include "BCP_parameters.hpp" 00007 #include "MCF1_par.hpp" 00008 #include "MCF1_var.hpp" 00009 #include "MCF1_data.hpp" 00010 00011 class MCF1_packer : public BCP_user_pack 00012 { 00014 virtual void 00015 pack_var_algo(const BCP_var_algo* var, BCP_buffer& buf) { 00016 MCF1_pack_var(var, buf); 00017 } 00018 00020 virtual BCP_var_algo* unpack_var_algo(BCP_buffer& buf) { 00021 return MCF1_unpack_var(buf); 00022 } 00023 }; 00024 00025 //############################################################################## 00026 00027 class MCF1_tm : public BCP_tm_user 00028 { 00029 public: 00030 BCP_parameter_set<MCF1_par> par; 00031 MCF1_data data; 00032 00033 public: 00034 MCF1_tm() {} 00035 virtual ~MCF1_tm() {} 00036 00037 virtual void pack_module_data(BCP_buffer& buf, BCP_process_t ptype); 00038 00039 virtual void init_new_phase(int phase, 00040 BCP_column_generation& colgen, 00041 CoinSearchTreeBase*& candidates); 00042 virtual void initialize_core(BCP_vec<BCP_var_core*>& vars, 00043 BCP_vec<BCP_cut_core*>& cuts, 00044 BCP_lp_relax*& matrix); 00045 virtual void create_root(BCP_vec<BCP_var*>& added_vars, 00046 BCP_vec<BCP_cut*>& added_cuts, 00047 BCP_user_data*& user_data); 00048 virtual void display_feasible_solution(const BCP_solution* sol); 00049 }; 00050 00051 #endif