Grail (C++)  1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
EvoParam.hh
1 #ifndef GRAIL_IEVO_PARAM_H
2 #define GRAIL_IEVO_PARAM_H
3 
4 #include <random>
5 #include <string>
6 
7 namespace grail
8 {
9  namespace evolution
10  {
11  class EvoParam
12  {
13  protected:
14  const size_t domainLength = {0};
16  size_t positionIndex;
17 
18  EvoParam(size_t domainLength);
19 
20  public:
21  //Helper methods for implementing mutations and crossover
22 
24  void Randomize(std::mt19937_64& rand_gen);
25 
27  const EvoParam* SetNext();
28 
30  const EvoParam* SetPrev();
31 
33  const EvoParam* SetNextClamped();
34 
36  const EvoParam* SetPrevClamped();
37 
39  float GetNormalizedPositionWeight() const;
40 
42  size_t GetPositionIndex() const;
43 
45  void SetPositionIndex(size_t position);
46 
47  virtual std::string ToString() const;
48  };
49  }
50 }
51 #endif //GRAIL_IEVO_PARAM_H
grail::evolution::EvoParam
Definition: EvoParam.hh:11
grail::evolution::EvoParam::SetNext
const EvoParam * SetNext()
Definition: EvoParam.cpp:12
grail::evolution::EvoParam::SetNextClamped
const EvoParam * SetNextClamped()
Definition: EvoParam.cpp:28
grail::evolution::EvoParam::SetPrevClamped
const EvoParam * SetPrevClamped()
Definition: EvoParam.cpp:34
grail::evolution::EvoParam::Randomize
void Randomize(std::mt19937_64 &rand_gen)
Definition: EvoParam.cpp:7
grail::evolution::EvoParam::GetNormalizedPositionWeight
float GetNormalizedPositionWeight() const
Definition: EvoParam.cpp:47
grail::evolution::EvoParam::SetPrev
const EvoParam * SetPrev()
Definition: EvoParam.cpp:20
grail::evolution::EvoParam::GetPositionIndex
size_t GetPositionIndex() const
Definition: EvoParam.cpp:52
grail::evolution::EvoParam::positionIndex
size_t positionIndex
Definition: EvoParam.hh:16
grail::evolution::EvoParam::SetPositionIndex
void SetPositionIndex(size_t position)
Definition: EvoParam.cpp:57