25 #ifndef PAGMO_UTIL_HV_ALGORITHM_BF_FPRAS_H
26 #define PAGMO_UTIL_HV_ALGORITHM_BF_FPRAS_H
32 #include "../../rng.h"
36 #include "../hypervolume.h"
38 namespace pagmo {
namespace util {
namespace hv_algorithm {
51 bf_fpras(
const double eps = 1e-2,
const double delta = 1e-2);
53 double compute(std::vector<fitness_vector> &,
const fitness_vector &)
const;
55 double exclusive(
const unsigned int, std::vector<fitness_vector> &,
const fitness_vector &)
const;
56 unsigned int least_contributor(std::vector<fitness_vector> &,
const fitness_vector &)
const;
57 unsigned int greatest_contributor(std::vector<fitness_vector> &,
const fitness_vector &)
const;
58 std::vector<double> contributions(std::vector<fitness_vector> &,
const fitness_vector &)
const;
60 void verify_before_compute(
const std::vector<fitness_vector> &,
const fitness_vector &)
const;
62 std::string get_name()
const;
72 friend class boost::serialization::access;
73 template <
class Archive>
74 void serialize(Archive &ar,
const unsigned int)
76 ar & boost::serialization::base_object<base>(*this);
77 ar &
const_cast<double &
>(m_eps);
78 ar &
const_cast<double &
>(m_delta);
std::vector< double > fitness_vector
Fitness vector type.
boost::shared_ptr< base > base_ptr
Base hypervolume algorithm class.
Bringmann-Friedrich approximation method.
This rng returns a double in the [0,1[ range.