/home/coin/SVN-release/Bcp-1.2.3/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   // setting the base
00049   virtual void
00050   initialize_core(BCP_vec<BCP_var_core*>& vars,
00051                   BCP_vec<BCP_cut_core*>& cuts,
00052                   BCP_lp_relax*& matrix);
00053   //---------------------------------------------------------------------------
00054   // create the root node
00055   virtual void
00056   create_root(BCP_vec<BCP_var*>& added_vars,
00057               BCP_vec<BCP_cut*>& added_cuts,
00058               BCP_user_data*& user_data);
00059   //---------------------------------------------------------------------------
00060   // feasible solution displaying
00061   virtual void
00062   display_feasible_solution(const BCP_solution* soln);
00063   //---------------------------------------------------------------------------
00064   // various initializations before a new phase (e.g., pricing strategy)
00065   virtual void
00066   init_new_phase(int phase,
00067                  BCP_column_generation& colgen,
00068                  CoinSearchTreeBase*& candidates);
00069 };
00070 
00071 #endif

Generated on Thu Oct 8 03:12:36 2009 for coin-Bcp by  doxygen 1.4.7