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
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

GGA.h 1.2KB

  1. #ifndef GGA_H
  2. #define GGA_H
  3. #include <iostream>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <random>
  7. #include "SearchHeuristic.h"
  8. #define COMMA 1
  9. #define PLUS 2
  10. #define GA_V1 1
  11. #define GA_V2 2
  12. class GGA : public SearchHeuristic
  13. {
  14. public:
  15. GGA(int mu, int lda, int selection, double sbm_proba, int crossover_method, int version, std::default_random_engine& randomizer);
  16. GGA(int mu, int lda, int selection, double sbm_proba, int crossover_method, std::default_random_engine& randomizer) :
  17. GGA(mu, lda, selection, sbm_proba, crossover_method, GA_V1, randomizer) {};
  18. void prepare_tab();
  19. virtual double get_crossover_proba(double progress) = 0;
  20. virtual double get_sbm_proba(double progress) = 0;
  21. Result run();
  22. virtual ~GGA();
  23. protected:
  24. int m_mu;
  25. int m_lambda;
  26. int m_selection;
  27. double m_sbm_proba;
  28. int m_crossover_method;
  29. int m_version;
  30. std::default_random_engine m_randomizer;
  31. std::binomial_distribution<int> m_binomial_dist;
  32. std::uniform_int_distribution<int> m_uniform_dist;
  33. bool m_is_prepared;
  34. Candidate** x_tab;
  35. private:
  36. };
  37. #endif // GGA_H