// #pragma once // #include #include #include // namespace BitEvolver { // class RouletteWheel { // public: // RouletteWheel(); // void Reset(); // void ClearChromosomes(); void SetChromosomes(std::vector> _chromosomes); void AddChromosome(std::shared_ptr _chromosome); void AddChromosomes(std::vector> _chromosomes); // std::shared_ptr Spin(); // private: // std::shared_ptr random; // std::vector> chromosomes; std::recursive_mutex chromosomes_mutex; bool chromosomes_need_sorting; // std::vector>> wheel_slots; bool slots_need_population; // void Instantiate(); // std::vector>> GetNormalizedChromosomeFitness(); void SortChromosomes(); void PopulateSlots(); // void ChromosomesChanged(); }; };