/*** * * agent-cmac-dbi.h * * $Revision: 1.3 $ * * Description: * * This module is the interface for the agent's functions for * controlling a double integrator. The Q-function approximation is * implemented with cmacs. * * Author: * Juan Carlos Santamaria * E-mail: carlos@cc.gatech.edu * URL: http://www.cc.gatech.edu/ai/students/jcs * * File name: * $Id: agent-cmac-dbi.h,v 1.3 1996/09/19 22:09:25 carlos Exp $ * * Revision History: * $Log: agent-cmac-dbi.h,v $ * Revision 1.3 1996/09/19 22:09:25 carlos * - The discount factor, GAMMA, is now an agent field instead of a constant. * The value can be set at the moment of creation through the constructor. * The default value is 0.99. * - Eliminate the arguments ps and pa from Agent::step. * * Revision 1.2 1996/08/28 20:11:38 carlos * - Old local variables are now member variables. * - New private function A_CMAC_DBI::policy was added. * - Change in the order of arguments in Agent::step: * old: S,A,r,S' new: S,A,S',r * * Revision 1.1 1996/08/14 20:54:25 carlos * Initial revision * ****/ #pragma interface #ifndef _INCL_AGENT_CMAC_DBI #define _INCL_AGENT_CMAC_DBI // -- Include files #ifndef _INCL_RLI #include "rli.h" #endif #ifndef _INCL_ENVIRONMENT_DBI #include "environment-dbi.h" #endif #ifndef _INCL_CMAC #include "cmac.h" #endif // -- Class and type declarations class A_CMAC_DBI : public Agent { public: int rnd_strm; bool verbose; char filename[30]; double GAMMA; CMAC_CA* pcmac; int features[36]; A_CMAC_DBI( double gamma = 0.99 ) : Agent(), rnd_strm(1), verbose(FALSE), GAMMA(gamma), pcmac(0) { filename[0]='\0'; } ~A_CMAC_DBI( void ) { delete pcmac; } void init( int argc, char *argv[] ); Action *start_trial( const Sensation *ps ); Action *step( const Sensation *pnext_s, double reward ); void output_value_function_grid( ostream& to ); private: double policy( const State *ps, Force *pa ); }; #endif /****************************** end of file *********************************/