25 #ifndef PAGMO_PROBLEM_CSTRS_SELF_ADAPTIVE_H
26 #define PAGMO_PROBLEM_CSTRS_SELF_ADAPTIVE_H
30 #include "../serialization.h"
33 #include "base_meta.h"
35 #include <boost/functional/hash.hpp>
36 #include <boost/serialization/map.hpp>
41 namespace pagmo{
namespace problem {
63 class __PAGMO_VISIBLE cstrs_self_adaptive :
public base_meta
67 cstrs_self_adaptive(
const base & = cec2006(4));
68 cstrs_self_adaptive(
const base &,
const population &);
71 std::string get_name()
const;
74 void update_penalty_coeff(
const population &pop);
77 std::string human_readable_extra()
const;
81 void update_c_scaling(
const population &pop);
85 friend class boost::serialization::access;
86 template <
class Archive>
87 void serialize(Archive &ar,
const unsigned int)
89 ar & boost::serialization::base_object<base_meta>(*this);
90 ar &
const_cast<bool &
>(m_apply_penalty_1);
91 ar & m_scaling_factor;
100 ar & m_map_constraint;
103 bool m_apply_penalty_1;
104 double m_scaling_factor;
114 double m_i_hat_round;
116 std::map<std::size_t, fitness_vector> m_map_fitness;
117 std::map<std::size_t, constraint_vector> m_map_constraint;
120 boost::hash< std::vector<double> > m_decision_vector_hash;
126 BOOST_CLASS_EXPORT_KEY(pagmo::problem::cstrs_self_adaptive)
128 #endif // PAGMO_PROBLEM_cstrs_self_adaptive_H
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base problem.
std::vector< double > decision_vector
Decision vector type.
std::vector< double > fitness_vector
Fitness vector type.
std::vector< double > constraint_vector
Constraint vector type.