Dip-All  0.91.0
MMKP_Instance.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 // Author: Matthew Galati, Lehigh University //
8 // //
9 // Copyright (C) 2002-2015, Lehigh University, Matthew Galati, and Ted Ralphs//
10 // All Rights Reserved. //
11 //===========================================================================//
12 
13 #ifndef MMKP_INSTANCE_INCLUDED
14 #define MMKP_INSTANCE_INCLUDED
15 
16 //===========================================================================//
17 #include "UtilMacros.h"
18 using namespace std;
19 //===========================================================================//
20 class MMKP_Param;
21 //===========================================================================//
22 
23 //===========================================================================//
36 //===========================================================================//
38 private:
40  int m_nKnapRows; //m
41  int m_nGroupRows; //n
42  int m_nGroupCols; //l
43  double * m_capacity; //b[k = 1..m]
44  double * m_value; //v[i,j]
45  double ** m_weight; //r[k,i,j]
46 
49  double m_bestKnownLB;
50  double m_bestKnownUB;
51 
52 
53 public:
55  inline const int getNKnapRows () const {return m_nKnapRows; }
56  inline const int getNGroupRows() const {return m_nGroupRows;}
57  inline const int getNGroupCols() const {return m_nGroupCols;}
58  inline const double * getCapacity () const {return m_capacity; }
59  inline const double * getValue () const {return m_value; }
60  inline const double * const* getWeight()const {return m_weight; }
61 
62 public:
64  void readInstance (string & fileName,
65  string & dataFormat);
66  void readInstanceSimon(string & fileName);
67  void readBestKnown(string & fileName,
68  string & instanceName);
69 
70  inline void initMembers(){
71  m_nKnapRows = 0;
72  m_nGroupRows = 0;
73  m_nGroupCols = 0;
74  m_capacity = NULL;
75  m_value = NULL;
76  m_weight = NULL;
77  m_isProvenOptimal = false;
78  m_bestKnownLB = -1.e20;
79  m_bestKnownUB = 1.e20;
80  }
81 
82  inline const int getIndexIJ(const int i,
83  const int j) const{
84  return (i * m_nGroupCols) + j;
85  }
86 
87  inline pair<int,int> getIndexInv(const int index) const {
88  return make_pair(index / m_nGroupCols, index % m_nGroupCols);
89  }
90 
91  inline const double getBestKnownLB() const {return m_bestKnownLB;}
92  inline const double getBestKnownUB() const {return m_bestKnownUB;}
93 
94 public:
99  initMembers();
100  };
101 
103  MMKP_Instance(string & fileName) {
104  string dataFormat = "hifi";
105  initMembers();
106  readInstance(fileName, dataFormat);
107  }
108 
111  int k;
112  UTIL_DELARR(m_capacity);
113  UTIL_DELARR(m_value);
114  for(k = 0; k < m_nKnapRows; k++)
115  UTIL_DELARR(m_weight[k]);
116  UTIL_DELARR(m_weight);
117  };
118 };
119 
120 #endif
bool m_isProvenOptimal
MMKP_Instance best known LB/UB.
Definition: MMKP_Instance.h:48
const int getIndexIJ(const int i, const int j) const
Definition: MMKP_Instance.h:82
const double getBestKnownUB() const
Definition: MMKP_Instance.h:92
#define UTIL_DELARR(x)
Definition: UtilMacros.h:29
const double * getValue() const
Definition: MMKP_Instance.h:59
double m_bestKnownLB
Definition: MMKP_Instance.h:49
~MMKP_Instance()
Default destructor.
MMKP_Instance(string &fileName)
Default constructor.
const int getNGroupCols() const
Definition: MMKP_Instance.h:57
double ** m_weight
Definition: MMKP_Instance.h:45
double m_bestKnownUB
Definition: MMKP_Instance.h:50
const double getBestKnownLB() const
Definition: MMKP_Instance.h:91
const double * getCapacity() const
Definition: MMKP_Instance.h:58
void initMembers()
Definition: MMKP_Instance.h:70
const double *const * getWeight() const
Definition: MMKP_Instance.h:60
double * m_capacity
Definition: MMKP_Instance.h:43
const int getNGroupRows() const
Definition: MMKP_Instance.h:56
pair< int, int > getIndexInv(const int index) const
Definition: MMKP_Instance.h:87
MMKP_Instance()
Default constructor.
Definition: MMKP_Instance.h:98
double * m_value
Definition: MMKP_Instance.h:44
const int getNKnapRows() const
Definition: MMKP_Instance.h:55
int m_nKnapRows
MMKP_Instance problem instance data.
Definition: MMKP_Instance.h:40