Projet du cours MPRI 2.24.2 "Résolution de problèmes d'optimisation avec heuristiques de recherche" : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-24-2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

crossover-rate.h 1.6KB

  1. #ifndef CROSSOVER_RATE_H_INCLUDED
  2. #define CROSSOVER_RATE_H_INCLUDED
  3. #include <vector>
  4. #include <fstream>
  5. #include "analysis/ParameterOptimizer.h"
  6. #include "heuristics/GA.h"
  7. // Crossover Probability Optimizer
  8. class CrossoverProbaFromLambdaOptimizer : public ParameterOptimizer {
  9. public:
  10. CrossoverProbaFromLambdaOptimizer(int nb_cases, int lda_initial, std::default_random_engine& randomizer) :
  11. ParameterOptimizer(randomizer), n{nb_cases}, lambda_initial{lda_initial} {};
  12. SearchHeuristic* get_context(unsigned int i, double parameter, std::default_random_engine& randomizer);
  13. std::string display_context(unsigned int num_context);
  14. std::string get_context_for_csvfile(unsigned int num_context);
  15. private:
  16. int n;
  17. int lambda_initial;
  18. };
  19. // Crossover Probability Optimization
  20. void crossover_model(std::default_random_engine& randomizer, int option, int argc, char** argv);
  21. void script_crossover_proba_global_optim(std::default_random_engine& randomizer, std::string namefile="global-crossover-proba.csv", bool restart=false, unsigned int restart_n=5, unsigned int restart_lambda=2);
  22. double crossover_model_linearization(double x);
  23. void crossover_model_filtering(std::string input, std::string output, std::string modeling, int filtered_n, int filtered_lda);
  24. void crossover_model_optimization(std::string namefile="global-crossover-proba.csv");
  25. void crossover_model_validation(std::string namefile, double slope1, double intercept1, double slope2, double intercept2);
  26. // Modeling
  27. double cr(int n, int lambda);
  28. #endif // CROSSOVER_RATE_H_INCLUDED