PaGMO
1.1.5
|
Bringmann-Friedrich approximation method. More...
#include <bf_approx.h>
Public Member Functions | |
bf_approx (const bool use_exact=true, const unsigned int trivial_subcase_size=1, const double eps=1e-2, const double delta=1e-6, const double delta_multiplier=0.775, const double m_alpha=0.2, const double initial_delta_coeff=0.1, const double gamma=0.25) | |
Constructor. More... | |
double | compute (std::vector< fitness_vector > &, const fitness_vector &) const |
Compute hypervolume. More... | |
unsigned int | least_contributor (std::vector< fitness_vector > &, const fitness_vector &) const |
Least contributor method. More... | |
unsigned int | greatest_contributor (std::vector< fitness_vector > &, const fitness_vector &) const |
Greatest contributor method. More... | |
void | verify_before_compute (const std::vector< fitness_vector > &, const fitness_vector &) const |
Verify before compute method. More... | |
base_ptr | clone () const |
Clone method. | |
std::string | get_name () const |
Algorithm name. | |
Public Member Functions inherited from pagmo::util::hv_algorithm::base | |
virtual double | exclusive (const unsigned int, std::vector< fitness_vector > &, const fitness_vector &) const |
Exclusive hypervolume method. More... | |
virtual std::vector< double > | contributions (std::vector< fitness_vector > &, const fitness_vector &) const |
Contributions method. More... | |
virtual | ~base () |
Destructor required for pure virtual methods. | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Static Public Member Functions inherited from pagmo::util::hv_algorithm::base | |
static double | volume_between (const fitness_vector &, const fitness_vector &, unsigned int=0) |
Compute volume between two points. More... | |
Protected Types inherited from pagmo::util::hv_algorithm::base | |
enum | { DOM_CMP_B_DOMINATES_A = 1, DOM_CMP_A_DOMINATES_B = 2, DOM_CMP_A_B_EQUAL = 3, DOM_CMP_INCOMPARABLE = 4 } |
Protected Member Functions inherited from pagmo::util::hv_algorithm::base | |
void | assert_minimisation (const std::vector< fitness_vector > &, const fitness_vector &) const |
Assert that reference point dominates every other point from the set. More... | |
virtual unsigned int | extreme_contributor (std::vector< fitness_vector > &, const fitness_vector &, bool(*)(double, double)) const |
compute the extreme contributor More... | |
Static Protected Member Functions inherited from pagmo::util::hv_algorithm::base | |
static bool | cmp_least (const double, const double) |
Comparison method for the least contributor. More... | |
static bool | cmp_greatest (const double, const double) |
Comparison method for the least contributor. More... | |
static double | volume_between (double *, double *, unsigned int) |
Compute volume between two points. More... | |
static int | dom_cmp (double *, double *, unsigned int) |
Dominance comparison method. More... | |
static int | dom_cmp (const fitness_vector &, const fitness_vector &, unsigned int=0) |
Dominance comparison method. More... | |
Bringmann-Friedrich approximation method.
This is the class containing the implementation of the Bringmann-Friedrich approximation method for the computation of the least contributor to the hypervolume. Default values for the parameters of the algorithm were obtained from the shark implementation of the algorithm (http://image.diku.dk/shark/doxygen_pages/html/_least_contributor_approximator_8hpp_source.html)
Definition at line 50 of file bf_approx.h.
pagmo::util::hv_algorithm::bf_approx::bf_approx | ( | const bool | use_exact = true , |
const unsigned int | trivial_subcase_size = 1 , |
||
const double | eps = 1e-2 , |
||
const double | delta = 1e-6 , |
||
const double | delta_multiplier = 0.775 , |
||
const double | alpha = 0.2 , |
||
const double | initial_delta_coeff = 0.1 , |
||
const double | gamma = 0.25 |
||
) |
Constructor.
Constructs an instance of the algorithm
[in] | use_exact | boolean flag stating whether algorithm is allowed to use exact algorithms for the computation |
[in] | trivial_subcase_size | size of the sub-front (points overlapping the bounding box) for which algorithm skips to the exact computation right away |
[in] | eps | accuracy of the approximation |
[in] | delta | confidence of the approximation |
[in] | gamma | constant used for computation of delta for each of the points during the sampling |
[in] | delta_multiplier | factor with which delta diminishes each round |
[in] | initial_delta_coeff | initial coefficient multiplied by the delta at round 0 |
[in] | alpha | coefficicient stating how accurately current lowest contributor should be sampled |
Definition at line 43 of file bf_approx.cpp.
|
virtual |
Compute hypervolume.
This method is overloaded to throw an exception in case a hypervolume indicator computation is requested.
[in] | points | vector of points containing the 3-dimensional points for which we compute the hypervolume |
[in] | r_point | reference point for the points |
Implements pagmo::util::hv_algorithm::base.
Definition at line 426 of file bf_approx.cpp.
|
virtual |
Greatest contributor method.
This method establishes the individual that contributes the most to the hypervolume (approximately withing given epsilon and delta).
[in] | points | vector of fitness_vectors for which the hypervolume is computed |
[in] | r_point | distinguished "reference point". |
Reimplemented from pagmo::util::hv_algorithm::base.
Definition at line 86 of file bf_approx.cpp.
|
virtual |
Least contributor method.
This method establishes the individual that contributes the least to the hypervolume (approximately withing given epsilon and delta).
[in] | points | vector of fitness_vectors for which the hypervolume is computed |
[in] | r_point | distinguished "reference point". |
Reimplemented from pagmo::util::hv_algorithm::base.
Definition at line 72 of file bf_approx.cpp.
|
virtual |
Verify before compute method.
Verifies whether given algorithm suits the requested data.
[in] | points | vector of points containing the d dimensional points for which we compute the hypervolume |
[in] | r_point | reference point for the vector of points |
value_error | when trying to compute the hypervolume for the non-maximal reference point |
Implements pagmo::util::hv_algorithm::base.
Definition at line 412 of file bf_approx.cpp.
|
friend |
End of 'least_contributor' method variables section
Definition at line 145 of file bf_approx.h.