25 #ifndef PAGMO_UTIL_HV_ALGORITHM_WFG_H
26 #define PAGMO_UTIL_HV_ALGORITHM_WFG_H
35 #include "../hypervolume.h"
37 namespace pagmo {
namespace util {
namespace hv_algorithm {
51 wfg(
const unsigned int stop_dimension = 2);
52 double compute(std::vector<fitness_vector> &,
const fitness_vector &)
const;
53 std::vector<double> contributions(std::vector<fitness_vector> &,
const fitness_vector &)
const;
54 void verify_before_compute(
const std::vector<fitness_vector> &,
const fitness_vector &)
const;
56 std::string get_name()
const;
59 void limitset(
const unsigned int,
const unsigned int,
const unsigned int)
const;
60 double exclusive_hv(
const unsigned int,
const unsigned int)
const;
61 double compute_hv(
const unsigned int)
const;
63 bool cmp_points(
double* a,
double* b)
const;
65 void allocate_wfg_members(std::vector<fitness_vector> &,
const fitness_vector &)
const;
66 void free_wfg_members()
const;
77 mutable unsigned int m_current_slice;
80 mutable double*** m_frames;
83 mutable unsigned int* m_frames_size;
86 mutable unsigned int m_n_frames;
89 mutable double* m_refpoint;
92 mutable unsigned int m_max_points;
95 mutable unsigned int m_max_dim;
101 const unsigned int m_stop_dimension;
103 friend class boost::serialization::access;
104 template <
class Archive>
105 void serialize(Archive &ar,
const unsigned int)
107 ar & boost::serialization::base_object<base>(*this);
108 ar &
const_cast<unsigned int &
>(m_stop_dimension);
WFG hypervolume algorithm.
std::vector< double > fitness_vector
Fitness vector type.
boost::shared_ptr< base > base_ptr
Base hypervolume algorithm class.