#ifndef OPTIMIZEREVOLUTIONARY_H #define OPTIMIZEREVOLUTIONARY_H #include "OptimizerBase.h" namespace mdd { class OptimizerEvolutionary : public OptimizerBase { protected: class Gene { public: json limit; json value; void mutate(); static void combine(Gene gene1, Gene gene2); }; class DNA { public: json code; void mutate(); void combine(); void applyDNA(std::vector& genes); static DNA generate(const std::vector& genes); }; class Individuum { public: DNA dna; double fitness; }; class Population { public: std::vector inivids: std::vector> grow(int size); }; std::vector _genes Population _pops; public: OptimizerEvolutionary(std::shared_ptr module); state update() override; }; } #endif