/home/coin/SVN-release/Bcp-1.2.1/Applications/Mkc/include/MKC_tm.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef _MKC_TM_H
00004 #define _MKC_TM_H
00005 
00006 #include <OsiClpSolverInterface.hpp>
00007 
00008 #include "BCP_parameters.hpp"
00009 #include "BCP_tm_user.hpp"
00010 
00011 #include "MKC_tm_param.hpp"
00012 #include "MKC_lp_param.hpp"
00013 #include "MKC_knapsack.hpp"
00014 
00015 //#############################################################################
00016 
00017 class MKC_var;
00018 
00019 //#############################################################################
00020 
00021 class MKC_tm : public BCP_tm_user {
00022 public:
00023   BCP_parameter_set<MKC_tm_par> tm_par;
00024   BCP_parameter_set<MKC_lp_par> lp_par;
00025   MKC_knapsack_set kss;
00026   BCP_vec<MKC_var*> input_vars;
00027   OsiClpSolverInterface* clp;
00028 public:
00029   MKC_tm() : clp(0) {}
00030   ~MKC_tm() {
00031     if (clp) 
00032       delete clp;
00033     purge_ptr_vector(input_vars);
00034   }
00035   //===========================================================================
00036   // Here are the user defined functions. For each of them a default is given
00037   // which can be overridden when the concrete user class is defined.
00038   //===========================================================================
00039   //---------------------------------------------------------------------------
00040   // pack the initial info for the appropriate process
00041   virtual void
00042   pack_module_data(BCP_buffer& buf, BCP_process_t ptype);
00043   //---------------------------------------------------------------------------
00044   // unpack an MIP feasible solution
00045   virtual BCP_solution*
00046   unpack_feasible_solution(BCP_buffer& buf);
00047   //---------------------------------------------------------------------------
00048   virtual void
00049   pack_var_algo(const BCP_var_algo* var, BCP_buffer& buf);
00050   //---------------------------------------------------------------------------
00051   virtual BCP_var_algo*
00052   unpack_var_algo(BCP_buffer& buf);
00053   //---------------------------------------------------------------------------
00054   // setting the base
00055   virtual void
00056   initialize_core(BCP_vec<BCP_var_core*>& vars,
00057                   BCP_vec<BCP_cut_core*>& cuts,
00058                   BCP_lp_relax*& matrix);
00059   //---------------------------------------------------------------------------
00060   // create the root node
00061   virtual void
00062   create_root(BCP_vec<BCP_var*>& added_vars,
00063               BCP_vec<BCP_cut*>& added_cuts,
00064               BCP_user_data*& user_data,
00065               BCP_pricing_status& pricing_status);
00066   //---------------------------------------------------------------------------
00067   // feasible solution displaying
00068   virtual void
00069   display_feasible_solution(const BCP_solution* soln);
00070   //---------------------------------------------------------------------------
00071   // various initializations before a new phase (e.g., pricing strategy)
00072   virtual void
00073   init_new_phase(int phase, BCP_column_generation& colgen);
00074 };
00075 
00076 #endif

Generated on Thu Jan 15 03:00:58 2009 for coin-Bcp by  doxygen 1.4.7