25 #ifndef PAGMO_ALGORITHM_VEGA_H
26 #define PAGMO_ALGORITHM_VEGA_H
30 #include "../config.h"
31 #include "../population.h"
32 #include "../serialization.h"
35 namespace pagmo {
namespace algorithm {
57 enum type {GAUSSIAN = 0, RANDOM = 1};
71 friend class boost::serialization::access;
72 template <
class Archive>
73 void serialize(Archive &ar,
const unsigned int)
83 enum type {BINOMIAL = 0, EXPONENTIAL = 1};
88 vega(
int gen = 1,
const double &cr = .95,
const double &m = .02,
int elitism = 1,
89 mutation::type mut = mutation::GAUSSIAN,
double width = 0.1,
90 crossover::type cro = crossover::EXPONENTIAL);
93 std::string get_name()
const;
98 std::string human_readable_extra()
const;
100 friend class boost::serialization::access;
101 template <
class Archive>
102 void serialize(Archive &ar,
const unsigned int)
104 ar & boost::serialization::base_object<base>(*this);
105 ar &
const_cast<int &
>(m_gen);
106 ar &
const_cast<double &
>(m_cr);
107 ar &
const_cast<double &
>(m_m);
108 ar &
const_cast<int &
>(m_elitism);
109 ar &
const_cast<mutation &
>(m_mut);
110 ar &
const_cast<crossover::type &
>(m_cro);
123 const mutation m_mut;
125 const crossover::type m_cro;
132 #endif // PAGMO_ALGORITHM_VEGA_H
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base algorithm.
type m_type
Mutation type.
VEGA based multi-objective algorithm.
type
Mutation type, gaussian or random.
mutation(mutation::type t, double width)
Constructor.
double m_width
Mutation width.
type
Crossover type, binomial or exponential.