// #pragma once // #include "BitEvolver/Includes.h" // #include #include #include #include #include // namespace BitEvolver { // using std::string; // class Chromosome { // public: // Chromosome(std::shared_ptr _random, int _bits); // void Reset(); void Randomize(); // void SetGenerationNumber(int g); void IncrementGenerationNumber(); int GetGenerationNumber(); // void SetBitCount(int count); int GetBitCount(); // void FlipBit(int index); // bool GetBit(int index); void SetBit(int index, bool b); void SetBits(string s); // void ResetFitness(); void SetFitness(double d); void AdjustFitness(double d); double GetFitness(); /** Error is just inverted fitness */ void ResetError(); void SetError(double e); void AdjustError(double e); double GetError(); // std::string ToString(); // const Chromosome& operator=(const Chromosome& other); // private: // Random number generator std::shared_ptr random; // int generation_number; // std::vector bits; int bits_count_desired; // Fitness double fitness; // Mutexes std::recursive_mutex modification_mutex; }; };