25 #ifndef PAGMO_UTIL_HV_ALGORITHM_HV3D_H
26 #define PAGMO_UTIL_HV_ALGORITHM_HV3D_H
38 namespace pagmo {
namespace util {
namespace hv_algorithm {
55 hv3d(
bool initial_sorting =
true);
56 double compute(std::vector<fitness_vector> &,
const fitness_vector &)
const;
57 std::vector<double> contributions(std::vector<fitness_vector> &,
const fitness_vector &)
const;
59 void verify_before_compute(
const std::vector<fitness_vector> &,
const fitness_vector &)
const;
61 std::string get_name()
const;
65 const bool m_initial_sorting;
69 box3d(
double _lx,
double _ly,
double _lz,
double _ux,
double _uy,
double _uz)
70 : lx(_lx), ly(_ly), lz(_lz), ux(_ux), uy(_uy), uz(_uz) { }
79 struct hycon3d_tree_cmp
81 bool operator()(
const std::pair<fitness_vector, int> &,
const std::pair<fitness_vector, int> &);
84 static bool hycon3d_sort_cmp(
const std::pair<fitness_vector, unsigned int> &,
const std::pair<fitness_vector, unsigned int> &);
85 static double box_volume(
const box3d &b);
87 friend class boost::serialization::access;
88 template <
class Archive>
89 void serialize(Archive &ar,
const unsigned int)
91 ar & boost::serialization::base_object<base>(*this);
92 ar &
const_cast<bool &
>(m_initial_sorting);
std::vector< double > fitness_vector
Fitness vector type.
boost::shared_ptr< base > base_ptr
Base hypervolume algorithm class.
hv3d hypervolume algorithm class