1 #ifndef GRAIL_EVO_SCRIPT_H
2 #define GRAIL_EVO_SCRIPT_H
15 float fitness = -1.0f;
18 std::vector<std::reference_wrapper<EvoParam>> evoParams{};
22 void SetFitness(
float _fitness);
23 float GetFitness()
const;
30 virtual std::unique_ptr<EvoScript>
UserClone()
const = 0;
33 void Randomize(std::mt19937_64& randomGenerator);
35 std::vector<std::unique_ptr<EvoScript>> GetRandomRealizations(
36 std::mt19937_64& randomGenerator,
38 std::vector<std::reference_wrapper<EvoParam>>& GetEvoParams();
39 size_t EvoParamsCount()
const;
41 const EvoParam& GetEvoParamAt(
size_t index)
const;
42 void ExchangeParams(
EvoScript& other,
size_t inclusiveFrom,
size_t exclusiveTo);
44 float CalculateSimilarity(
const EvoScript& other)
const;
45 void CopyEvoParamValuesFrom(
const EvoScript& other);
47 virtual std::string ToString()
const;
49 void RegisterParam(
EvoParam& parameter);
50 void RegisterParamsFromOther(
const EvoScript& other);
53 bool EvoScriptComparator(
const std::unique_ptr<EvoScript>& first,
const std::unique_ptr<EvoScript>& second);
56 #endif // GRAIL_EVO_SCRIPT_H