Dip  0.92.4
MMKP_DecompApp.h
Go to the documentation of this file.
1 //===========================================================================//
2 // This file is part of the Decomp Solver Framework. //
3 // //
4 // Decomp is distributed under the Common Public License as part of the //
5 // COIN-OR repository (http://www.coin-or.org). //
6 // //
7 // Authors: Matthew Galati, SAS Institute Inc. (matthew.galati@sas.com) //
8 // Ted Ralphs, Lehigh University (ted@lehigh.edu) //
9 // Jiadong Wang, Lehigh University (jiw408@lehigh.edu) //
10 // //
11 // Copyright (C) 2002-2019, Lehigh University, Matthew Galati, and Ted Ralphs//
12 // All Rights Reserved. //
13 //===========================================================================//
14 
15 #ifndef MMKP_DECOMPAPP_INCLUDED
16 #define MMKP_DECOMPAPP_INCLUDED
17 
18 //===========================================================================//
19 #include "DecompApp.h"
20 
21 //===========================================================================//
22 #include "MMKP_Instance.h"
23 #include "MMKP_MCKnap.h"
24 #include "MMKP_Param.h"
25 #include "MMKP_MemPool.h"
26 //===========================================================================//
27 
28 //===========================================================================//
39 //===========================================================================//
40 class MMKP_DecompApp : public DecompApp {
41 private:
43  const string m_classTag;
44 
47 
50 
52  vector<MMKP_MCKnap*> m_mcknap;
53 
55  double * m_objective;
56 
58  vector<DecompConstraintSet*> m_models;
59 
62 
63 public:
64  /* @name Inherited (from virtual) methods. */
65 
67  virtual DecompSolverStatus solveRelaxed(const int whichBlock,
68  const double * redCostX,
69  const double convexDual,
70  DecompVarList & varList);
71 
73  virtual void printOriginalColumn(const int index,
74  ostream * os = &cout) const;
75 
76 public:
80  void initializeApp();
81 
82  /* Create models. */
83  void createModels();
84 
85  /* Create MCKP model. */
88  int whichKnap = 0);
90  int whichKnap1,
91  int whichKnap2);
93  vector<int> & whichKnaps);
96 
97  /* Create MDKP model. */
99  int whichKnap = 0);
103  vector<int> & whichKnaps);
104 
105 public:
110  DecompApp (utilParam),
111  m_classTag ("MMKP-APP"),
112  m_mcknap (),
113  m_objective (NULL),
114  m_auxMemPool()
115  {
116  //---
117  //--- get application parameters
118  //---
119  m_appParam.getSettings(utilParam);
120 
121  if (m_appParam.LogLevel >= 1) {
123  }
124 
125  initializeApp();
126  }
127 
128  virtual ~MMKP_DecompApp() {
132  };
133 };
134 
135 #endif
vector< DecompConstraintSet * > m_models
The various model constraint systems used for different algos.
double * m_objective
The model objective coefficients (original space).
void UtilDeleteVectorPtr(vector< T * > &vectorPtr, typename vector< T * >::iterator first, typename vector< T * >::iterator last)
Definition: UtilMacros.h:288
MMKP_Param m_appParam
Application specific parameters.
void getSettings(UtilParameters &utilParam)
Definition: MMKP_Param.h:46
virtual void printOriginalColumn(const int index, ostream *os=&cout) const
Print an original column (format for this app).
void createModelPartMC2KP(DecompConstraintSet *model, int whichKnap1, int whichKnap2)
Initialize application.
MMKP_MemPool m_auxMemPool
Auxiliary memory storage.
void createModelPartMCKP(DecompConstraintSet *model, int whichKnap=0)
Initialize application.
const string m_classTag
Class id tag (for log / debugging).
MMKP_Instance m_instance
MMKP problem instance data.
#define UTIL_DELARR(x)
Definition: UtilMacros.h:29
void createModelPartMMKPHalf(DecompConstraintSet *model)
Initialize application.
void dumpSettings(ostream *os=&cout)
Definition: MMKP_Param.h:90
void createModelPartMDKPCompl(DecompConstraintSet *model, int whichKnap=0)
Initialize application.
void createModelPartMMKP(DecompConstraintSet *model)
Initialize application.
virtual ~MMKP_DecompApp()
Default constructor.
vector< MMKP_MCKnap * > m_mcknap
MMKP_MCKnap object for each knapsack row.
void initializeApp()
Initialize application.
void createModels()
Initialize application.
int LogLevel
Definition: MMKP_Param.h:36
DecompSolverStatus
Definition: Decomp.h:208
std::list< DecompVar * > DecompVarList
Definition: Decomp.h:91
void createModelPartMCP(DecompConstraintSet *model)
Initialize application.
void createModelPartMDKP(DecompConstraintSet *model)
Initialize application.
The main application class.
Definition: DecompApp.h:48
void createModelPartMDKPHalf(DecompConstraintSet *model)
Initialize application.
virtual DecompSolverStatus solveRelaxed(const int whichBlock, const double *redCostX, const double convexDual, DecompVarList &varList)
Solve the relaxed problem.
MMKP_DecompApp(UtilParameters &utilParam)
Default constructor.