#ifndef FUNC_APPROX #define FUNC_APPROX #include <stdlib.h> #include <math.h> #define MAX_STATE_VARS 100 #define MAX_ACTIONS 10 class FunctionApproximator{ protected: int numFeatures, numActions; double state[MAX_STATE_VARS]; int getNumFeatures(); int getNumActions(); public: FunctionApproximator(int numF, int numA); virtual ~FunctionApproximator(){} virtual void setState(double s[]); virtual double computeQ(int action) = 0; virtual int argMaxQ(); virtual double bestQ(); virtual void updateWeights(double delta, double alpha) = 0; virtual void clearTraces(int action) = 0; virtual void decayTraces(double decayRate) = 0; virtual void updateTraces(int action) = 0; virtual void read (char *fileName) = 0; virtual void write(char *fileName) = 0; virtual int getNumWeights() = 0; virtual void getWeights(double w[]) = 0; virtual void setWeights(double w[]) = 0; virtual void reset() = 0; }; #endif