PIPS-NLP
rawInput.hpp
Go to the documentation of this file.
1 #ifndef RAWINPUT_HPP
2 #define RAWINPUT_HPP
3 
4 #include "stochasticInput.hpp"
5 #include "mpi.h"
6 
7 // reads format written by dumpSmlModel.cpp
8 class rawInput : public stochasticInput {
9 public:
10 
11  rawInput(const std::string &datarootname, int overrideScenarioNumber = 0, MPI_Comm comm = MPI_COMM_WORLD);
12  rawInput(const std::string &datarootname, const std::string& zerodata, int overrideScenarioNumber = 0, MPI_Comm comm = MPI_COMM_SELF);
13 
14  virtual int nScenarios() { return nScenarios_; }
15  virtual int nFirstStageVars() { return nFirstStageVars_; }
16  virtual int nFirstStageCons() { return nFirstStageCons_; }
17  virtual int nSecondStageVars(int scen) { return nSecondStageVars_; }
18  virtual int nSecondStageCons(int scen) { return nSecondStageCons_; }
19 
20  virtual std::vector<double> getFirstStageColLB() { return firstStageData.collb; }
21  virtual std::vector<double> getFirstStageColUB() { return firstStageData.colub; }
22  virtual std::vector<double> getFirstStageObj() { return firstStageData.obj; }
23  virtual std::vector<std::string> getFirstStageColNames() { return firstStageData.colnames; }
24  virtual std::vector<double> getFirstStageRowLB() { return firstStageData.rowlb; }
25  virtual std::vector<double> getFirstStageRowUB() { return firstStageData.rowub; }
26  virtual std::vector<std::string> getFirstStageRowNames() { return firstStageData.rownames; }
27  virtual bool isFirstStageColInteger(int col) { return false; }
28 
29  virtual std::vector<double> getSecondStageColLB(int scen);
30  virtual std::vector<double> getSecondStageColUB(int scen);
31  virtual std::vector<double> getSecondStageObj(int scen);
32  virtual std::vector<std::string> getSecondStageColNames(int scen);
33  virtual std::vector<double> getSecondStageRowUB(int scen);
34  virtual std::vector<double> getSecondStageRowLB(int scen);
35  virtual std::vector<std::string> getSecondStageRowNames(int scen);
36  virtual double scenarioProbability(int scen) { return 1.0/nScenarios_; }
37  virtual bool isSecondStageColInteger(int scen, int col) { return false; }
38 
39  virtual CoinPackedMatrix getFirstStageConstraints() { return Amat; }
40  virtual CoinPackedMatrix getSecondStageConstraints(int scen) { return Wmat; }
41  virtual CoinPackedMatrix getLinkingConstraints(int scen) { return Tmat; }
42 
43 
44 
45  virtual bool scenarioDimensionsEqual() { return true; }
46  virtual bool onlyBoundsVary() { return true; }
47  virtual bool allProbabilitiesEqual() { return true; }
48  virtual bool continuousRecourse() { return true; }
49 
50 
51 protected:
52  struct scenData {
53  std::vector<double> collb, colub, rowlb, rowub, obj;
54  std::vector<std::string> rownames, colnames;
55  bool didLoad;
56  scenData() : didLoad(false) {}
57  void initialize(int nvar, int ncons);
58  };
59  void loadLocalScenData(int scen);
60  CoinPackedMatrix Amat, Tmat, Wmat;
61  std::vector<scenData> localData;
62  const std::string datarootname;
65  int mype_;
66 
68 private:
69  void parseZeroData(const std::string &zerodata, int overrideScenarioNumber);
70 };
71 
72 
73 #endif
scenData firstStageData
Definition: rawInput.hpp:63
void initialize(int nvar, int ncons)
Definition: rawInput.cpp:159
std::vector< scenData > localData
Definition: rawInput.hpp:61
virtual double scenarioProbability(int scen)
Definition: rawInput.hpp:36
virtual std::vector< std::string > getFirstStageRowNames()
Definition: rawInput.hpp:26
void parseZeroData(const std::string &zerodata, int overrideScenarioNumber)
Definition: rawInput.cpp:49
std::vector< double > obj
Definition: rawInput.hpp:53
virtual std::vector< double > getSecondStageColLB(int scen)
Definition: rawInput.cpp:219
int nFirstStageVars_
Definition: rawInput.hpp:67
virtual std::vector< double > getFirstStageObj()
Definition: rawInput.hpp:22
std::vector< double > collb
Definition: rawInput.hpp:53
Definition: stochasticInput.hpp:32
virtual bool onlyBoundsVary()
Definition: rawInput.hpp:46
CoinPackedMatrix Wmat
Definition: rawInput.hpp:60
virtual CoinPackedMatrix getFirstStageConstraints()
Definition: rawInput.hpp:39
rawInput(const std::string &datarootname, int overrideScenarioNumber=0, MPI_Comm comm=MPI_COMM_WORLD)
int nFirstStageCons_
Definition: rawInput.hpp:67
virtual std::vector< double > getFirstStageRowLB()
Definition: rawInput.hpp:24
std::vector< double > rowub
Definition: rawInput.hpp:53
virtual bool isFirstStageColInteger(int col)
Definition: rawInput.hpp:27
virtual std::vector< double > getSecondStageObj(int scen)
Definition: rawInput.cpp:229
virtual int nSecondStageVars(int scen)
Definition: rawInput.hpp:17
Definition: rawInput.hpp:8
virtual std::vector< std::string > getFirstStageColNames()
Definition: rawInput.hpp:23
int nScenariosTrue
Definition: rawInput.hpp:64
virtual std::vector< std::string > getSecondStageRowNames(int scen)
Definition: rawInput.cpp:249
void loadLocalScenData(int scen)
Definition: rawInput.cpp:171
int mype_
Definition: rawInput.hpp:65
CoinPackedMatrix Amat
Definition: rawInput.hpp:60
Definition: rawInput.hpp:52
CoinPackedMatrix Tmat
Definition: rawInput.hpp:60
int nScenarios_
Definition: rawInput.hpp:67
virtual int nSecondStageCons(int scen)
Definition: rawInput.hpp:18
virtual int nFirstStageVars()
Definition: rawInput.hpp:15
virtual int nFirstStageCons()
Definition: rawInput.hpp:16
virtual std::vector< double > getSecondStageColUB(int scen)
Definition: rawInput.cpp:224
virtual std::vector< double > getFirstStageRowUB()
Definition: rawInput.hpp:25
virtual bool continuousRecourse()
Definition: rawInput.hpp:48
std::vector< double > colub
Definition: rawInput.hpp:53
virtual int nScenarios()
Definition: rawInput.hpp:14
virtual CoinPackedMatrix getSecondStageConstraints(int scen)
Definition: rawInput.hpp:40
virtual std::vector< double > getSecondStageRowLB(int scen)
Definition: rawInput.cpp:244
virtual std::vector< double > getFirstStageColLB()
Definition: rawInput.hpp:20
std::vector< double > rowlb
Definition: rawInput.hpp:53
int nSecondStageCons_
Definition: rawInput.hpp:67
bool didLoad
Definition: rawInput.hpp:55
virtual bool allProbabilitiesEqual()
Definition: rawInput.hpp:47
virtual std::vector< double > getFirstStageColUB()
Definition: rawInput.hpp:21
std::vector< std::string > rownames
Definition: rawInput.hpp:54
std::vector< std::string > colnames
Definition: rawInput.hpp:54
const std::string datarootname
Definition: rawInput.hpp:62
virtual CoinPackedMatrix getLinkingConstraints(int scen)
Definition: rawInput.hpp:41
scenData()
Definition: rawInput.hpp:56
virtual std::vector< std::string > getSecondStageColNames(int scen)
Definition: rawInput.cpp:234
int nSecondStageVars_
Definition: rawInput.hpp:67
virtual bool isSecondStageColInteger(int scen, int col)
Definition: rawInput.hpp:37
virtual bool scenarioDimensionsEqual()
Definition: rawInput.hpp:45
virtual std::vector< double > getSecondStageRowUB(int scen)
Definition: rawInput.cpp:239