PaGMO  1.1.5
Public Member Functions | Friends
pagmo::util::hv_algorithm::bf_fpras Class Reference

Bringmann-Friedrich approximation method. More...

#include <bf_fpras.h>

Inheritance diagram for pagmo::util::hv_algorithm::bf_fpras:
Inheritance graph
[legend]

Public Member Functions

 bf_fpras (const double eps=1e-2, const double delta=1e-2)
 Constructor. More...
 
double compute (std::vector< fitness_vector > &, const fitness_vector &) const
 Compute method. More...
 
double exclusive (const unsigned int, std::vector< fitness_vector > &, const fitness_vector &) const
 Exclusive method. 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...
 
std::vector< double > contributions (std::vector< fitness_vector > &, const fitness_vector &) const
 Contributions method. More...
 
void verify_before_compute (const std::vector< fitness_vector > &, const fitness_vector &) const
 Verify before compute. 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 ~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...
 

Detailed Description

Bringmann-Friedrich approximation method.

This class contains the implementation of the Bringmann-Friedrich approximation scheme (FPRAS), reduced to a special case of approximating the hypervolume indicator.

See also
"Approximating the volume of unions and intersections of high-dimensional geometric objects", Karl Bringmann, Tobias Friedrich.
Author
Krzysztof Nowak (kn@ki.nosp@m.ryx..nosp@m.net)

Definition at line 48 of file bf_fpras.h.

Constructor & Destructor Documentation

pagmo::util::hv_algorithm::bf_fpras::bf_fpras ( const double  eps = 1e-2,
const double  delta = 1e-2 
)

Constructor.

Constructs an instance of the algorithm

Parameters
[in]epsaccuracy of the approximation
[in]deltaconfidence of the approximation

Definition at line 38 of file bf_fpras.cpp.

Member Function Documentation

double pagmo::util::hv_algorithm::bf_fpras::compute ( std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Compute method.

Compute the hypervolume using FPRAS.

See also
"Approximating the volume of unions and intersections of high-dimensional geometric objects", Karl Bringmann, Tobias Friedrich.
Parameters
[in]pointsvector of fitness_vectors for which the hypervolume is computed
[in]r_pointdistinguished "reference point".
Returns
approximated hypervolume

Implements pagmo::util::hv_algorithm::base.

Definition at line 65 of file bf_fpras.cpp.

std::vector< double > pagmo::util::hv_algorithm::bf_fpras::contributions ( std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Contributions method.

As of yet, this algorithm does not support this method, even in its naive form, due to a poor handling of the dominated points.

Reimplemented from pagmo::util::hv_algorithm::base.

Definition at line 157 of file bf_fpras.cpp.

double pagmo::util::hv_algorithm::bf_fpras::exclusive ( const unsigned int  p_idx,
std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Exclusive method.

This algorithm does not support this method.

Reimplemented from pagmo::util::hv_algorithm::base.

Definition at line 123 of file bf_fpras.cpp.

unsigned int pagmo::util::hv_algorithm::bf_fpras::greatest_contributor ( std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Greatest contributor method.

This algorithm does not support this method.

Reimplemented from pagmo::util::hv_algorithm::base.

Definition at line 146 of file bf_fpras.cpp.

unsigned int pagmo::util::hv_algorithm::bf_fpras::least_contributor ( std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Least contributor method.

This algorithm does not support this method.

Reimplemented from pagmo::util::hv_algorithm::base.

Definition at line 135 of file bf_fpras.cpp.

void pagmo::util::hv_algorithm::bf_fpras::verify_before_compute ( const std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Verify before compute.

Verifies whether given algorithm suits the requested data.

Parameters
[in]pointsvector of points containing the d dimensional points for which we compute the hypervolume
[in]r_pointreference point for the vector of points
Exceptions
value_errorwhen trying to compute the hypervolume for the non-maximal reference point

Implements pagmo::util::hv_algorithm::base.

Definition at line 49 of file bf_fpras.cpp.


The documentation for this class was generated from the following files: