-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgaussian.hh
83 lines (60 loc) · 1.93 KB
/
gaussian.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
80
81
82
83
/*
* Code by Chris Mansley
*/
#ifndef GAUSSIAN_HH
#define GAUSSIAN_HH
/* Definition dependencies */
#include "domain.hh"
/*!
*
*/
class Gaussian: public Domain
{
public:
/** Constructor */
Gaussian();
/** Destructor */
~Gaussian() { }
/** Perform an interaction with the environment */
SARS *step(State s, Action a);
/** Get starting state from domain */
State getInitialState( ) { return initialState; }
/** Get number of discrete actions for domain */
int getNumActions( ) { return numActions; }
/** Get discount factor for domain */
double getDiscountFactor( ) { return 0.0; }
/** 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 = 0;
static const int actionDimension = 2;
static const double rmin = 0;
static const double rmax = 1;
// only if discrete actions
static const int numActions = 20;
/** Domain Specific */
std::vector<double> mu;
std::vector<double> diag;
};
#endif // DOMAIN_HH