 |
Grail (C++)
1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
3 #ifndef GRAIL_EVO_SCRIPT_H
4 #define GRAIL_EVO_SCRIPT_H
21 float fitness = -1.0f;
24 std::vector<std::reference_wrapper<EvoParam>> evoParams{};
46 virtual std::unique_ptr<EvoScript>
UserClone()
const = 0;
52 void Randomize(std::mt19937_64& randomGenerator);
61 std::mt19937_64& randomGenerator,
68 std::vector<std::reference_wrapper<EvoParam>>&
GetEvoParams();
101 virtual std::string
ToString()
const;
103 void CopyEvoParamValuesFrom(
const EvoScript& other);
105 void RegisterParam(
EvoParam& parameter);
106 void RegisterParamsFromOther(
const EvoScript& other);
109 bool EvoScriptComparator(
const std::unique_ptr<EvoScript>& first,
const std::unique_ptr<EvoScript>& second);
112 #endif // GRAIL_EVO_SCRIPT_H
float GetFitness() const
GetFitness - gets the fitness value (evaluation of how good the particular EvoScript object is).
Definition: EvoScript.cpp:20
EvoParam - class that represents a parameter that is modifiable (optimizable) by evolutionary algorit...
Definition: EvoParam.hh:16
std::unique_ptr< EvoScript > SystemClone() const
This method calls userClone() that is responsible for copying everything apart from EvoParams and the...
Definition: EvoScript.cpp:25
void ExchangeParams(EvoScript &other, size_t inclusiveFrom, size_t exclusiveTo)
ExchangeParams - swaps the values of selected EvoParams between two EvoScripts. Make sure that the ot...
Definition: EvoScript.cpp:70
void Randomize(std::mt19937_64 &randomGenerator)
Sets all parameters (EvoParams) of the script to possible random values.
Definition: EvoScript.cpp:33
EvoScript - a class that holds a collection of EvoParams (through them) is optimizable....
Definition: EvoScript.hh:18
float CalculateSimilarity(const EvoScript &other) const
CalculateSimilarity - this function calculates the similarity between two EvoScripts in the form of a...
Definition: EvoScript.cpp:80
std::vector< std::unique_ptr< EvoScript > > GetRandomRealizations(std::mt19937_64 &randomGenerator, size_t count) const
GetRandomRealizations - gets clones of the EvoScript with its EvoParams set to random possible values...
Definition: EvoScript.cpp:41
size_t EvoParamsCount() const
EvoParamsCount - returns the number of EvoParams that this EvoScript holds.
Definition: EvoScript.cpp:60
std::vector< std::reference_wrapper< EvoParam > > & GetEvoParams()
GetEvoParams - returns a collection of EvoParams that this EvoScript holds.
Definition: EvoScript.cpp:55
const EvoParam & GetEvoParamAt(size_t index) const
GetEvoParamAt - returns the i-th EvoParam of the collection of parameters stored in this EvoScript.
Definition: EvoScript.cpp:65
virtual std::string ToString() const
ToString - returns the string representation of the EvoScript object. It contains the assigned fitnes...
Definition: EvoScript.cpp:106
virtual std::unique_ptr< EvoScript > UserClone() const =0
Create your final optimizable object that is based on this EvoScript. In EA such object is often refe...
void SetFitness(float fitness)
SetFitness - sets the fitness value (evaluation of how good the particular EvoScript object is).
Definition: EvoScript.cpp:15