Scheduler
main.cpp
Go to the documentation of this file.
1 
10 #include <mdp/mdpModel.h>
11 #include <mdp/builder.h>
12 #include <mdp/mdpConfiguration.h>
13 
14 
15 #include "actions.h"
16 #include "stateSpaceDimensions.h"
17 #include "domainModel.h"
18 
19 
20 using namespace Gridworld;
21 
22 
23 
24 
25 
26 
28 {
29  const size_t xSize = 8;
30  const size_t ySize = 5;
31 
32  std::shared_ptr<DomainModel> domainModel = std::make_shared<DomainModel>();
33  Mdp::Builder builder(domainModel);
34  builder.addAction(new Up());
35  builder.addAction(new Down());
36  builder.addAction(new Left());
37  builder.addAction(new Right());
38  builder.addDimension(XDimension(xSize));
39  builder.addDimension(YDimension(ySize));
40 
41  std::shared_ptr<Mdp::MdpConfiguration> conf = std::make_shared<Mdp::MdpConfiguration>();
42 
43  Mdp::MdpModel model = new Mdp::MdpModel(builder.getStateSpace(), getActionSpace(), conf);
44  model->init();
45  return model;
46 }
47 
48 
49 int main()
50 {
51  Mdp::MdpModel mdpModel = buildMdpModel();
52 
53 
54  for (int i = 0, Mdp::action *action = nullptr; i < 10000; i++)
55  {
56  action = mdpModel->selectAction();
57  action->performAction();
58  }
59 
60 
61 
62 
63 
64  mdpModel.end();
65  delete mdpModel;
66  return 0;
67 }
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
Mdp::MdpModel * buildMdpModel()
Definition: main.cpp:27
virtual void performAction()=0
Action * selectAction(bool updateModel=true)
Returns the optimal action for the current timestep.
Definition: mdpModel.cpp:89
The main class of the MDP framework.
Definition: mdpModel.h:35
void init()
call this function first
Definition: mdpModel.cpp:72
void end()
call this function at the end
Definition: mdpModel.cpp:79
int main()
Definition: main.cpp:49