Creates a multi-objective Benchmark from a set of given single objective functions. More...
#include <shark/ObjectiveFunctions/Benchmarks/MultiObjectiveBenchmark.h>
Public Member Functions | |
MultiObjectiveBenchmark (std::size_t numVariables=5) | |
std::string | name () const |
Name of the Benchmark. More... | |
bool | hasScalableDimensionality () const |
void | setNumberOfVariables (std::size_t numberOfVariables) |
Adjusts the number of variables if the function is scalable. More... | |
std::size_t | numberOfObjectives () const |
std::size_t | numberOfVariables () const |
Accesses the number of variables. More... | |
template<int N> | |
std::tuple_element< N, std::tuple< Objectives... > >::type & | get () |
template<int N> | |
std::tuple_element< N, std::tuple< Objectives... > >::type const & | get () const |
void | init () |
\ Initializes the functions as well as picks random rotations and translations More... | |
SearchPointType | proposeStartingPoint () const |
Proposes a starting point in the feasible search space of the function. More... | |
ResultType | eval (SearchPointType const &x) const |
Returns the vector (f_1(x),...,f_N(x)) of the N objectives in the benchmark for the current point. More... | |
ResultType | evalDerivative (SearchPointType const &x, FirstOrderDerivative &derivative) const |
Calculates function value as well as the the Jacobian( d/dxf_1(x),...,d/dx f_N(x)) of the N objectives in the benchmark for the current point. More... | |
Public Member Functions inherited from shark::AbstractObjectiveFunction< PointType, ResultT > | |
const Features & | features () const |
virtual void | updateFeatures () |
bool | hasValue () const |
returns whether this function can calculate it's function value More... | |
bool | hasFirstDerivative () const |
returns whether this function can calculate the first derivative More... | |
bool | hasSecondDerivative () const |
returns whether this function can calculate the second derivative More... | |
bool | canProposeStartingPoint () const |
returns whether this function can propose a starting point. More... | |
bool | isConstrained () const |
returns whether this function can return More... | |
bool | hasConstraintHandler () const |
returns whether this function can return More... | |
bool | canProvideClosestFeasible () const |
Returns whether this function can calculate thee closest feasible to an infeasible point. More... | |
bool | isThreadSafe () const |
Returns true, when the function can be usd in parallel threads. More... | |
bool | isNoisy () const |
Returns true, when the function can be usd in parallel threads. More... | |
AbstractObjectiveFunction () | |
Default ctor. More... | |
virtual | ~AbstractObjectiveFunction () |
Virtual destructor. More... | |
void | setRng (random::rng_type *rng) |
Sets the Rng used by the objective function. More... | |
virtual bool | hasScalableObjectives () const |
virtual void | setNumberOfObjectives (std::size_t numberOfObjectives) |
Adjusts the number of objectives if the function is scalable. More... | |
std::size_t | evaluationCounter () const |
Accesses the evaluation counter of the function. More... | |
AbstractConstraintHandler< SearchPointType > const & | getConstraintHandler () const |
Returns the constraint handler of the function if it has one. More... | |
virtual bool | isFeasible (const SearchPointType &input) const |
Tests whether a point in SearchSpace is feasible, e.g., whether the constraints are fulfilled. More... | |
virtual void | closestFeasible (SearchPointType &input) const |
If supported, the supplied point is repaired such that it satisfies all of the function's constraints. More... | |
ResultType | operator() (SearchPointType const &input) const |
Evaluates the function. Useful together with STL-Algorithms like std::transform. More... | |
virtual ResultType | evalDerivative (SearchPointType const &input, SecondOrderDerivative &derivative) const |
Evaluates the objective function and calculates its gradient. More... | |
Public Member Functions inherited from shark::INameable | |
virtual | ~INameable () |
Creates a multi-objective Benchmark from a set of given single objective functions.
A variadic template is used to generate a set of benchmarks. eg MultiObjectiveBenchmark<Sphere,Ellispoid,Rosenbrock> sets up a three-objective Benchmark.
A random rotation and translation is applied to each benchmark function, thus MultiObjectiveBenchmark<Sphere,Sphere> forms a non-degenerate front. the ith objective can be queried via the get member function.
The generated translations are approximately sampled from the unit ball and starting points are also drawn by the same distribution around a random optimum (assuming the optimum is at (0,0) of the untranslated function
Note that all objectives must have scalable dimensionality
Definition at line 70 of file MultiObjectiveBenchmark.h.
|
inline |
Definition at line 72 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Returns the vector (f_1(x),...,f_N(x)) of the N objectives in the benchmark for the current point.
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 148 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Calculates function value as well as the the Jacobian( d/dxf_1(x),...,d/dx f_N(x)) of the N objectives in the benchmark for the current point.
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 158 of file MultiObjectiveBenchmark.h.
|
inline |
Definition at line 113 of file MultiObjectiveBenchmark.h.
|
inline |
Definition at line 117 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 93 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
\ Initializes the functions as well as picks random rotations and translations
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 122 of file MultiObjectiveBenchmark.h.
References shark::random::gauss().
|
inlinevirtual |
Name of the Benchmark.
The name has the form Objective1/Objective2/Objective3/.../ObjectiveN where ObjectiveK is the name of the k-th objective.
Reimplemented from shark::INameable.
Definition at line 88 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 104 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Accesses the number of variables.
Implements shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 108 of file MultiObjectiveBenchmark.h.
|
inlinevirtual |
Proposes a starting point in the feasible search space of the function.
FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 137 of file MultiObjectiveBenchmark.h.
References shark::random::discrete(), and shark::random::gauss().
|
inlinevirtual |
Adjusts the number of variables if the function is scalable.
[in] | numberOfVariables | The new dimension. |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 97 of file MultiObjectiveBenchmark.h.
References SHARK_RUNTIME_CHECK.