AIToolbox
A library that offers tools for AI problem solving.
ChengD35.hpp
Go to the documentation of this file.
1 #ifndef AI_TOOLBOX_POMDP_CHENGD35_HEADER_FILE
2 #define AI_TOOLBOX_POMDP_CHENGD35_HEADER_FILE
3 
6 
7 namespace AIToolbox::POMDP {
12  using PModel = Model<MDP::Model>;
13  constexpr size_t S = 3, A = 3, O = 3;
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 
24  t[0] <<
25  0.445, 0.222, 0.333,
26  0.500, 0.173, 0.327,
27  0.204, 0.553, 0.243;
28 
29  t[1] <<
30  0.234, 0.064, 0.702,
31  0.549, 0.218, 0.233,
32  0.061, 0.466, 0.473;
33 
34  t[2] <<
35  0.535, 0.313, 0.152,
36  0.114, 0.870, 0.016,
37  0.325, 0.360, 0.315;
38 
39  o[0] <<
40  0.686, 0.182, 0.132,
41  0.138, 0.786, 0.076,
42  0.279, 0.083, 0.638;
43 
44  o[1] <<
45  0.698, 0.131, 0.171,
46  0.283, 0.624, 0.093,
47  0.005, 0.202, 0.793;
48 
49  o[2] <<
50  0.567, 0.234, 0.199,
51  0.243, 0.641, 0.116,
52  0.186, 0.044, 0.770;
53 
54  r <<
55  5.2, 0.8, 9.0,
56  4.6, 6.8, 9.3,
57  4.1, 6.9, 0.8;
58 
59  return PModel(AIToolbox::NO_CHECK, O, std::move(o), AIToolbox::NO_CHECK, S, A, std::move(t), std::move(r), 0.999);
60  }
61 }
62 
63 #endif
AIToolbox::POMDP
Definition: AMDP.hpp:14
Model.hpp
AIToolbox::NO_CHECK
struct AIToolbox::NoCheck NO_CHECK
Model.hpp
AIToolbox::POMDP::makeChengD35
Model< MDP::Model > makeChengD35()
This function returns a POMDP model of the chengD35 problem.
Definition: ChengD35.hpp:11
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