Scheduler
linearProgramming.h
Go to the documentation of this file.
1 
10 #ifndef LINEARPROGRAMMING_H
11 #define LINEARPROGRAMMING_H
12 
13 #include "solver.h"
14 
15 #include <vector>
16 
17 #include <mdp/mdpConfiguration.h>
18 
19 namespace Mdp
20 {
21 
22 
23 class Policy;
24 class Rewards;
25 class ConstraintList;
26 class TransitionMatrix;
27 class Horizon;
28 
29 class LinearProgramming : public Solver
30 {
31 public:
32  static constexpr const char *configKey = "linearProgramming";
33 public:
36  void solve(Policy *policy, Rewards *rewards, ConstraintList *constraintList, TransitionMatrix *matrix, Horizon *horizon);
37 private:
38  void prepareParameters(Rewards *rewards, ConstraintList *constraintList, TransitionMatrix *matrix, Horizon *horizon);
39  void prepareParametersForDiscountedCost(Rewards *rewards, ConstraintList *constraintList, TransitionMatrix *matrix,
40  double discountFactor, std::vector<double> initialStateDistribution);
41  void removeRedundantEqualityConstraint(size_t index);
42  void solveLinearProgram();
43  void updatePolicy(Policy *policy);
44  void printParams();
45 
46  double objFunc;
47  std::vector<double> columns;
48  std::vector<double> coeffs;
49  std::vector<std::vector<double>> eqCoeffs;
50  std::vector<double> eqValue;
51  std::vector<std::vector<double>> ineqCoeffs;
52  std::vector<double> ineqValue;
54 
55 };
56 
57 
58 }
59 #endif
LinearProgramming(Utils::Configuration *c)
Definition: action.h:18
static constexpr const char * configKey
void solve(Policy *policy, Rewards *rewards, ConstraintList *constraintList, TransitionMatrix *matrix, Horizon *horizon)