1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #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<Gene>& genes);
- static DNA generate(const std::vector<Gene>& genes);
- };
- class Individuum {
- public:
- DNA dna;
- double fitness;
- };
- class Population {
- public:
- std::vector<Individuum> inivids:
- std::vector<std::shared_ptr<Population>> grow(int size);
- };
- std::vector<Gene> _genes
- Population _pops;
- public:
- OptimizerEvolutionary(std::shared_ptr<IModule> module);
- state update() override;
- };
- }
- #endif
|