-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdi.hh
79 lines (58 loc) · 1.79 KB
/
di.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
77
78
79
/*
* Code by Chris Mansley
*/
#ifndef DI_HH
#define DI_HH
/* Definition dependencies */
#include "domain.hh"
/*!
*
*/
class DI: public Domain
{
public:
/** Constructor */
DI(double gamma);
/** Destructor */
~DI() { }
/** Perform an interaction with the environment */
SARS *step(State s, Action a);
/** Get starting state from domain */
State getInitialState( ) { return initialState; }
/** Get discount factor for domain */
double getDiscountFactor( ) { return gamma; }
/** Get maximum range for action features */
std::vector<double> getMaximumActionRange( ) { return maxActionRange; }
/** Get minimum range for action features */
std::vector<double> getMinimumActionRange( ) { return minActionRange; }
/** Get maximum range for state features */
std::vector<double> getMaximumStateRange( ) { return maxStateRange; }
/** Get maximum range for state features */
std::vector<double> getMinimumStateRange( ) { return minStateRange; }
/** Get number of state dimensions */
int getStateDimension( ) { return stateDimension; }
/** Get number of action dimensions */
int getActionDimension( ) { return actionDimension; }
/** 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> maxStateRange;
std::vector<double> minStateRange;
std::vector<double> maxActionRange;
std::vector<double> minActionRange;
static const int stateDimension = 2;
static const int actionDimension = 1;
static const double rmin = 0;
static const double rmax = 1;
/** Domain Properties */
double gamma;
/** Domain Specific */
static const double dt;
static const double noise;
};
#endif // DI_HH