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
4
#include <
AIToolbox/MDP/Model.hpp
>
5
#include <
AIToolbox/POMDP/Model.hpp
>
6
7
namespace
AIToolbox::POMDP
{
11
Model<MDP::Model>
makeEJS4
() {
12
using
PModel =
Model<MDP::Model>
;
13
constexpr
size_t
S = 3, A = 2, O = 2;
14
15
MDP::Model::TransitionMatrix
t(A);
16
MDP::Model::RewardMatrix
r(S, A);
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