Dip-All  0.91.0
ATM_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 ATM_INSTANCE_INCLUDED
14 #define ATM_INSTANCE_INCLUDED
15 
16 // --------------------------------------------------------------------- //
17 #include "UtilMacros.h"
18 
19 using namespace std;
20 
21 // --------------------------------------------------------------------- //
22 
49 // --------------------------------------------------------------------- //
50 class ATM_Instance {
51 
52 private:
54  int m_nAtms; //number of atms (20 of these)
55  int m_nDates; //number of dates (272 of these)
56  map<string, int> m_strToIntAtms; //map from name to index (atms)
57  map<string, int> m_strToIntDates; //map from date to index (dates)
58  vector<string> m_intToStrAtms; //map from index to name (atms)
59  vector<string> m_intToStrDates; //map from index to date (dates)
60  vector<int> m_pairsAD; //pairs of indices with observations
61 
62  double * m_a_ad; //a[a,d]
63  double * m_b_ad; //b[a,d]
64  double * m_c_ad; //c[a,d]
65  double * m_d_ad; //d[a,d]
66  double * m_e_ad; //e[a,d]
67  double * m_w_ad; //w[a,d]
68  double * m_B_d; //B[d]
69  double * m_K_a; //K[a]
70 
71 public:
73  inline const int getNAtms () const {return m_nAtms; }
74  inline const int getNDates () const {return m_nDates;}
75  inline const int getNPairs () const {
76  return static_cast<int>(m_pairsAD.size());
77  }
78  inline const vector<int> & getPairsAD() const {
79  return m_pairsAD;
80  }
81  inline const int getIndexAD(int a, int d) const {
82  return a * m_nDates + d;
83  }
84  inline const pair<int,int> getIndexADInv(int ad) const {
85  return make_pair(ad / m_nDates, ad % m_nDates);
86  }
87  inline const double * get_a_ad() const {return m_a_ad;}
88  inline const double * get_b_ad() const {return m_b_ad;}
89  inline const double * get_c_ad() const {return m_c_ad;}
90  inline const double * get_d_ad() const {return m_d_ad;}
91  inline const double * get_e_ad() const {return m_e_ad;}
92  inline const double * get_w_ad() const {return m_w_ad;}
93  inline const double * get_B_d() const {return m_B_d;}
94  inline const double * get_K_a() const {return m_K_a;}
95  inline const string & getAtmName(const int a) const{
96  return m_intToStrAtms[a];
97  }
98  inline const string & getDateName(const int d) const{
99  return m_intToStrDates[d];
100  }
101 
102 
103 public:
105  void readInstance(string & fileNameA,
106  string & fileNameD,
107  string & fileNameAD);
108  void generateRandom(const int nAtms,
109  const int nDates,
110  const int seed);
111  void initMembers(){
112  m_nAtms = 0;
113  m_nDates= 0;
114  m_a_ad = NULL;
115  m_b_ad = NULL;
116  m_c_ad = NULL;
117  m_d_ad = NULL;
118  m_e_ad = NULL;
119  m_w_ad = NULL;
120  m_B_d = NULL;
121  m_K_a = NULL;
122  }
123 
124 public:
128  ATM_Instance(){initMembers();};
129 
130  ATM_Instance(string & fileNameA,
131  string & fileNameD,
132  string & fileNameAD)
133  {
134  initMembers();
135  readInstance(fileNameA,
136  fileNameD,
137  fileNameAD);
138  }
139 
141  UTIL_DELARR(m_a_ad);
142  UTIL_DELARR(m_b_ad);
143  UTIL_DELARR(m_c_ad);
144  UTIL_DELARR(m_d_ad);
145  UTIL_DELARR(m_e_ad);
146  UTIL_DELARR(m_w_ad);
147  UTIL_DELARR(m_B_d);
148  UTIL_DELARR(m_K_a);
149  };
150 };
151 
152 #endif
ATM_Instance()
Default constructor.
Definition: ATM_Instance.h:128
const string & getAtmName(const int a) const
Definition: ATM_Instance.h:95
vector< string > m_intToStrDates
Definition: ATM_Instance.h:59
double * m_c_ad
Definition: ATM_Instance.h:64
const double * get_e_ad() const
Definition: ATM_Instance.h:91
double * m_d_ad
Definition: ATM_Instance.h:65
const int getIndexAD(int a, int d) const
Definition: ATM_Instance.h:81
const double * get_c_ad() const
Definition: ATM_Instance.h:89
#define UTIL_DELARR(x)
Definition: UtilMacros.h:29
double * m_B_d
Definition: ATM_Instance.h:68
vector< int > m_pairsAD
Definition: ATM_Instance.h:60
double * m_K_a
Definition: ATM_Instance.h:69
int m_nAtms
ATM_Instance problem instance data.
Definition: ATM_Instance.h:54
const int getNPairs() const
Definition: ATM_Instance.h:75
const double * get_w_ad() const
Definition: ATM_Instance.h:92
const string & getDateName(const int d) const
Definition: ATM_Instance.h:98
void initMembers()
Definition: ATM_Instance.h:111
double * m_w_ad
Definition: ATM_Instance.h:67
map< string, int > m_strToIntDates
Definition: ATM_Instance.h:57
const int getNDates() const
Definition: ATM_Instance.h:74
const double * get_b_ad() const
Definition: ATM_Instance.h:88
~ATM_Instance()
Default constructor.
Definition: ATM_Instance.h:140
double * m_b_ad
Definition: ATM_Instance.h:63
const pair< int, int > getIndexADInv(int ad) const
Definition: ATM_Instance.h:84
const int getNAtms() const
Definition: ATM_Instance.h:73
double * m_a_ad
Definition: ATM_Instance.h:62
vector< string > m_intToStrAtms
Definition: ATM_Instance.h:58
const double * get_K_a() const
Definition: ATM_Instance.h:94
const vector< int > & getPairsAD() const
Definition: ATM_Instance.h:78
double * m_e_ad
Definition: ATM_Instance.h:66
const double * get_a_ad() const
Definition: ATM_Instance.h:87
map< string, int > m_strToIntAtms
Definition: ATM_Instance.h:56
const double * get_d_ad() const
Definition: ATM_Instance.h:90
const double * get_B_d() const
Definition: ATM_Instance.h:93
ATM_Instance(string &fileNameA, string &fileNameD, string &fileNameAD)
Default constructor.
Definition: ATM_Instance.h:130