1 #ifndef CTRNNINROBOTAGENT_H
2 #define CTRNNINROBOTAGENT_H
10 #include "featurevector.h"
12 #include "robotagent.h"
25 #define HIDDENNEURONACTIVATIONLOWERBOUND 1.0e-6 //todo: set as percentage instead of absolute value
47 virtual double GetHN(
unsigned hnindex);
48 virtual void SetHN(
unsigned hnindex,
double f_hn);
50 virtual double GetON(
unsigned hnindex);
51 virtual double GetInputsToON(
unsigned hnindex);
53 virtual double GetAPC(
unsigned apctype);
55 virtual double GetFVtoApcScaling();
57 virtual bool GetConvergenceFlag(NNLAYER layer);
58 virtual double GetConvergenceError(NNLAYER layer);
59 virtual double GetConvergenceError_Perc(NNLAYER layer);
61 virtual void PrintCTRNNDetails(
unsigned id);
63 virtual void SimulationStepUpdatePosition();
65 static unsigned int GetNumberOfSetBits(
unsigned int x);
66 static double Sigmoid(
double f_currActv,
double f_Saturation);
68 virtual double GetSigmoidSaturation();
74 static double NormalizedAffinity(
unsigned int v1,
unsigned int v2);
75 static double NegExpDistAffinity(
unsigned int v1,
unsigned int v2,
double k);
76 double GetAf(
unsigned int v1,
unsigned int v2);
79 virtual void Derivative(
double *hn,
double *deltaHN, NNLAYER layer);
80 virtual void NumericalIntegration(
double totalintegration_t,
double* neurons,
double* neurons_prev,
double* convg_error,
double* percconvg_error,
bool* convg_flag, NNLAYER layer);
82 virtual void UpdateState();
86 virtual double GetWeight();
93 double m_fTryExchangeProbability;
97 double m_fCOMPETITION_FACTOR;
98 double m_fACTIVATION_FACTOR;
101 double m_fOUTPUTGAIN_FACTOR;
103 double m_fINHIBTIONSCALINGFACTOR;
104 double m_fBIASWEIGHT;
105 double m_fEXTERNALBIASWEIGHT;
106 double m_fSIGMOIDSATURATION;
109 double m_fOUTPUTNEURONBIAS;
112 double* m_pfOutputNeurons;
113 double* m_pfOutputNeurons_prev;
114 double* m_pfInputToOutputNeurons;
116 double* m_pfHiddenNeurons;
117 double* m_pfHiddenNeurons_prev;
118 double m_pfNeuronTimeConstant;
122 double* m_pfNeurons_Eu;
124 double* m_pfNeurons_Hu;
126 double* m_pfDeltaNeurons_k0;
127 double* m_pfDeltaNeurons_k1;
132 unsigned int m_unNumberOfReceptors;
136 double m_fcross_affinity;
138 double m_fFVtoApcscaling;
140 bool m_bhlconvergence_flag;
141 double m_fhlconvergence_error;
142 double m_fhlpercconvergence_error;
144 bool m_bolconvergence_flag;
145 double m_folconvergence_error;
146 double m_folpercconvergence_error;
152 #endif // CTRNNINROBOTAGENT_H