AIToolbox
A library that offers tools for AI problem solving.
EJS4.hpp
Go to the documentation of this file.
1 #ifndef AI_TOOLBOX_POMDP_EJS4_HEADER_FILE
2 #define AI_TOOLBOX_POMDP_EJS4_HEADER_FILE
3 
6 
7 namespace AIToolbox::POMDP {
12  using PModel = Model<MDP::Model>;
13  constexpr size_t S = 3, A = 2, O = 2;
14 
17  PModel::ObservationMatrix o(A);
18 
19  for (size_t a = 0; a < A; ++a) {
20  t[a] = AIToolbox::Matrix2D(S, S);
21  o[a] = AIToolbox::Matrix2D(S, O);
22  }
23  t[0] <<
24  0.1, 0.1, 0.8,
25  0.2, 0.5, 0.3,
26  0.7, 0.1, 0.2;
27 
28  t[1] <<
29  0.1, 0.8, 0.1,
30  0.7, 0.1, 0.2,
31  0.1, 0.9, 0.0;
32 
33  o[0] <<
34  0.7, 0.3,
35  0.1, 0.9,
36  0.4, 0.6;
37 
38  o[1] <<
39  0.2, 0.8,
40  0.4, 0.6,
41  0.3, 0.7;
42 
43  r <<
44  -1.0, 0.0,
45  0.0,-1.0,
46  0.0, 0.0;
47 
48  return PModel(AIToolbox::NO_CHECK, O, std::move(o), AIToolbox::NO_CHECK, S, A, std::move(t), std::move(r), 0.999);
49  }
50 }
51 
52 #endif
AIToolbox::POMDP
Definition: AMDP.hpp:14
Model.hpp
AIToolbox::NO_CHECK
struct AIToolbox::NoCheck NO_CHECK
AIToolbox::POMDP::makeEJS4
Model< MDP::Model > makeEJS4()
This function returns a POMDP model of the ejs4 problem.
Definition: EJS4.hpp:11
Model.hpp
AIToolbox::Matrix2D
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor|Eigen::AutoAlign > Matrix2D
Definition: Types.hpp:18
AIToolbox::POMDP::Model
This class represents a Partially Observable Markov Decision Process.
Definition: Model.hpp:15
AIToolbox::MDP::Model::TransitionMatrix
Matrix3D TransitionMatrix
Definition: Model.hpp:72
AIToolbox::MDP::Model::RewardMatrix
Matrix2D RewardMatrix
Definition: Model.hpp:73