-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlander.hh
76 lines (55 loc) · 1.51 KB
/
lander.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* Code by Chris Mansley
*/
#ifndef LANDER_HH
#define LANDER_HH
/* Definition dependencies */
#include "domain.hh"
/*!
*
*/
class Lander: public Domain
{
public:
/** Constructor */
Lander(double gamma);
/** Destructor */
~Lander() { }
/** Perform an interaction with the environment */
SARS *step(State s, Action a);
/** Get starting state from domain */
State getInitialState( );
/** Get number of discrete actions for domain */
int getNumActions( ) { return numActions; }
/** Get discount factor for domain */
double getDiscountFactor( ) { return gamma; }
/** Get maximum range for state features */
std::vector<double> getMaximumRange( ) { return maxRange; }
/** Get maximum range for state features */
std::vector<double> getMinimumRange( ) { return minRange; }
/** Get maximum reward */
double getRmax( ) { return rmax; }
/** Get minimum reward */
double getRmin( ) { return rmin; }
private:
/** Store starting state */
State initialState;
/** Domain Parameters */
std::vector<double> maxRange;
std::vector<double> minRange;
static const int stateDimension = 3;
static const int actionDimension = 1;
static const double rmin = -300;
static const double rmax = 0;
// only if discrete actions
static const int numActions = 10;
/** Domain Properties */
double gamma;
/** Domain Specific */
static const double kg;
static const double kf;
static const double c;
static const double dt;
double rC(double action);
};
#endif // DOMAIN_HH