1 #ifndef ROBOTAGENTOPTIMISED_H_
2 #define ROBOTAGENTOPTIMISED_H_
21 unsigned int uMostWantedState;
37 #include "crminrobotagent_optimised.h"
56 virtual void SimulationStepUpdatePosition();
57 virtual void SetBehaviors(TBehaviorVector vec_behaviors);
58 virtual TBehaviorVector GetBehaviors();
60 virtual inline EAgentType GetType() {
return ROBOT;}
67 virtual void SetWeight(
double f_weight);
68 virtual double GetWeight()
const;
70 virtual inline const CFeatureVector* GetFeatureVector()
const {
return m_pcFeatureVector;}
71 virtual void Sense(
unsigned int u_nearestnbrs);
72 virtual void UpdateFeatureVectorDistribution(
unsigned int fv,
double increment);
73 virtual inline list<structFVsSensed>* GetFeatureVectorsSensed() {
return &listFVsSensed;}
74 virtual void PrintFeatureVectorDistribution(
unsigned int id);
76 virtual inline double GetFVSenseRange()
const;
78 virtual unsigned int GetColor();
80 virtual inline unsigned int GetSelectedNumNearestNbrs() {
return m_uSelectedNumNearestNbrs;}
82 virtual void SetMostWantedList(list<structFVsSensed>::iterator* it,
unsigned int state);
83 virtual unsigned int GetMostWantedState(
unsigned int fv);
85 virtual void CheckNeighborsResponseToMyFV(
unsigned int* pun_number_of_toleraters,
unsigned int* pun_number_of_attackers,
unsigned int* pun_number_of_unconverged,
bool b_logs);
89 virtual inline unsigned int Attack(
CFeatureVector* pc_feature_vector)
90 {
return GetMostWantedState(pc_feature_vector->GetValue());}
92 virtual inline void IncNumberFloatingPtOperations() {++m_uNumberFloatingPtOperations;}
93 virtual inline void IncNumberFloatingPtOperations(
unsigned int count)
94 {
for(
unsigned int i=0;i<count;++i)
95 IncNumberFloatingPtOperations();}
97 virtual inline unsigned long long GetNumberFloatingPtOperations()
98 {
return m_uNumberFloatingPtOperations; }
101 virtual double CountWeightsInAgentListList(TAgentListList* ptlist_agent_list_list,
double f_range);
103 double m_fFVSenseRange;
105 TBehaviorVector m_vecBehaviors;
109 double m_fBitflipProbabililty;
113 list<structFVsSensed> listFVsSensed;
116 virtual inline void IncIt(list<structFVsSensed>::iterator *it_fvsensed, list<structFVsSensed> *list)
117 { (*it_fvsensed) == list->end() ? (*it_fvsensed):++(*it_fvsensed); }
119 double m_fResponseRange;
120 unsigned int m_uSelectedNumNearestNbrs;
122 unsigned long long m_uNumberFloatingPtOperations;
128 #endif // ROBOTAGENTOPTIMISED_H_