PIPS-NLP
combinedInput.hpp
Go to the documentation of this file.
1 #ifndef COMBINEDINPUTHPP
2 #define COMBINEDINPUTHPP
3 
4 #include "stochasticInput.hpp"
5 
6 // wrapper for combining scenarios for lagrangian subproblems
7 
8 class combinedInput : public stochasticInput {
9 public:
10  combinedInput(stochasticInput &inner, std::vector<std::vector<int> > const& scenarioMap);
11  virtual int nScenarios() { return scenarioMap.size(); }
12  virtual int nFirstStageVars() { return inner.nFirstStageVars(); }
13  virtual int nFirstStageCons() { return inner.nFirstStageCons(); }
14  virtual int nSecondStageVars(int scen);
15  virtual int nSecondStageCons(int scen);
16 
17  virtual std::vector<double> getFirstStageColLB() { return inner.getFirstStageColLB(); }
18  virtual std::vector<double> getFirstStageColUB() { return inner.getFirstStageColUB(); }
19  virtual std::vector<double> getFirstStageObj() { return inner.getFirstStageObj(); }
20  virtual std::vector<std::string> getFirstStageColNames() { return inner.getFirstStageColNames(); }
21  virtual std::vector<double> getFirstStageRowLB() { return inner.getFirstStageRowLB(); }
22  virtual std::vector<double> getFirstStageRowUB() { return inner.getFirstStageRowUB(); }
23  virtual std::vector<std::string> getFirstStageRowNames() { return inner.getFirstStageRowNames(); }
24  virtual bool isFirstStageColInteger(int col) { return inner.isFirstStageColInteger(col); }
25 
26  virtual std::vector<double> getSecondStageColLB(int scen);
27  virtual std::vector<double> getSecondStageColUB(int scen);
28  virtual std::vector<double> getSecondStageObj(int scen);
29  virtual std::vector<std::string> getSecondStageColNames(int scen);
30  virtual std::vector<double> getSecondStageRowUB(int scen);
31  virtual std::vector<double> getSecondStageRowLB(int scen);
32  virtual std::vector<std::string> getSecondStageRowNames(int scen);
33  virtual double scenarioProbability(int scen);
34  virtual bool isSecondStageColInteger(int scen, int col);
35 
36  virtual CoinPackedMatrix getFirstStageConstraints() { return inner.getFirstStageConstraints(); }
37  virtual CoinPackedMatrix getSecondStageConstraints(int scen);
38  virtual CoinPackedMatrix getLinkingConstraints(int scen);
39 
40 
41 
42 
43  virtual bool scenarioDimensionsEqual() { return inner.scenarioDimensionsEqual() && equalScenarios; }
44  virtual bool onlyBoundsVary() { return inner.onlyBoundsVary(); }
45  virtual bool allProbabilitiesEqual() { return equalScenarios && inner.allProbabilitiesEqual(); }
46  virtual bool continuousRecourse() { return inner.continuousRecourse(); }
47 
48 private:
49  // map from "fake" scenario index to group of scenarios it represents
50  std::vector<std::vector<int> > scenarioMap;
51  bool equalScenarios; // equal number of scenarios in each combined scenario
53 
54 };
55 
56 
57 
58 #endif
virtual std::vector< double > getSecondStageRowLB(int scen)
Definition: combinedInput.cpp:81
virtual std::vector< double > getFirstStageRowUB()
Definition: combinedInput.hpp:22
stochasticInput & inner
Definition: combinedInput.hpp:52
virtual bool allProbabilitiesEqual()
Definition: combinedInput.hpp:45
virtual std::vector< double > getFirstStageObj()=0
virtual std::vector< double > getSecondStageColLB(int scen)
Definition: combinedInput.cpp:61
virtual bool isSecondStageColInteger(int scen, int col)
Definition: combinedInput.cpp:104
virtual std::vector< double > getSecondStageRowUB(int scen)
Definition: combinedInput.cpp:86
virtual int nFirstStageVars()
Definition: combinedInput.hpp:12
virtual std::vector< double > getSecondStageColUB(int scen)
Definition: combinedInput.cpp:66
virtual int nSecondStageCons(int scen)
Definition: combinedInput.cpp:29
Definition: stochasticInput.hpp:32
virtual bool isFirstStageColInteger(int col)
Definition: combinedInput.hpp:24
virtual bool onlyBoundsVary()
Definition: combinedInput.hpp:44
bool equalScenarios
Definition: combinedInput.hpp:51
virtual int nFirstStageCons()=0
virtual std::vector< std::string > getFirstStageRowNames()=0
virtual std::vector< std::string > getSecondStageColNames(int scen)
Definition: combinedInput.cpp:76
virtual std::vector< std::string > getFirstStageColNames()
Definition: combinedInput.hpp:20
virtual bool allProbabilitiesEqual()=0
virtual std::vector< double > getFirstStageColLB()=0
virtual std::vector< double > getSecondStageObj(int scen)
Definition: combinedInput.cpp:71
virtual int nFirstStageVars()=0
virtual double scenarioProbability(int scen)
Definition: combinedInput.cpp:97
virtual bool onlyBoundsVary()=0
virtual std::vector< double > getFirstStageColLB()
Definition: combinedInput.hpp:17
combinedInput(stochasticInput &inner, std::vector< std::vector< int > > const &scenarioMap)
Definition: combinedInput.cpp:5
virtual CoinPackedMatrix getFirstStageConstraints()
Definition: combinedInput.hpp:36
virtual std::vector< std::string > getFirstStageRowNames()
Definition: combinedInput.hpp:23
virtual std::vector< std::string > getFirstStageColNames()=0
virtual std::vector< double > getFirstStageColUB()=0
virtual std::vector< double > getFirstStageColUB()
Definition: combinedInput.hpp:18
virtual bool continuousRecourse()
Definition: combinedInput.hpp:46
virtual CoinPackedMatrix getSecondStageConstraints(int scen)
Definition: combinedInput.cpp:113
virtual std::vector< double > getFirstStageObj()
Definition: combinedInput.hpp:19
virtual int nSecondStageVars(int scen)
Definition: combinedInput.cpp:21
virtual std::vector< double > getFirstStageRowLB()=0
virtual CoinPackedMatrix getLinkingConstraints(int scen)
Definition: combinedInput.cpp:162
virtual CoinPackedMatrix getFirstStageConstraints()=0
virtual std::vector< std::string > getSecondStageRowNames(int scen)
Definition: combinedInput.cpp:91
virtual bool continuousRecourse()=0
virtual std::vector< double > getFirstStageRowLB()
Definition: combinedInput.hpp:21
virtual bool isFirstStageColInteger(int col)=0
Definition: combinedInput.hpp:8
virtual bool scenarioDimensionsEqual()=0
virtual std::vector< double > getFirstStageRowUB()=0
std::vector< std::vector< int > > scenarioMap
Definition: combinedInput.hpp:50
virtual int nFirstStageCons()
Definition: combinedInput.hpp:13
virtual int nScenarios()
Definition: combinedInput.hpp:11
virtual bool scenarioDimensionsEqual()
Definition: combinedInput.hpp:43