Rotates an objective function using a randomly initialized rotation. More...
#include <shark/ObjectiveFunctions/Benchmarks/RotatedErrorFunction.h>
Public Member Functions | |
RotatedObjectiveFunction (SingleObjectiveFunction *objective) | |
std::string | name () const |
From INameable: return the class name. | |
std::size_t | numberOfVariables () const |
Accesses the number of variables. | |
void | init () |
bool | hasScalableDimensionality () const |
void | setNumberOfVariables (std::size_t numberOfVariables) |
Adjusts the number of variables if the function is scalable. | |
SearchPointType | proposeStartingPoint () const |
Proposes a starting point in the feasible search space of the function. | |
double | eval (SearchPointType const &p) const |
Evaluates the objective function for the supplied argument. | |
ResultType | evalDerivative (SearchPointType const &p, FirstOrderDerivative &derivative) const |
Evaluates the objective function and calculates its gradient. | |
Public Member Functions inherited from shark::AbstractObjectiveFunction< RealVector, double > | |
const Features & | features () const |
virtual void | updateFeatures () |
bool | hasValue () const |
returns whether this function can calculate it's function value | |
bool | hasFirstDerivative () const |
returns whether this function can calculate the first derivative | |
bool | hasSecondDerivative () const |
returns whether this function can calculate the second derivative | |
bool | canProposeStartingPoint () const |
returns whether this function can propose a starting point. | |
bool | isConstrained () const |
returns whether this function can return | |
bool | hasConstraintHandler () const |
returns whether this function can return | |
bool | canProvideClosestFeasible () const |
Returns whether this function can calculate thee closest feasible to an infeasible point. | |
bool | isThreadSafe () const |
Returns true, when the function can be usd in parallel threads. | |
bool | isNoisy () const |
Returns true, when the function can be usd in parallel threads. | |
AbstractObjectiveFunction () | |
Default ctor. | |
virtual | ~AbstractObjectiveFunction () |
Virtual destructor. | |
void | setRng (random::rng_type *rng) |
Sets the Rng used by the objective function. | |
virtual std::size_t | numberOfObjectives () const |
virtual bool | hasScalableObjectives () const |
virtual void | setNumberOfObjectives (std::size_t numberOfObjectives) |
Adjusts the number of objectives if the function is scalable. | |
std::size_t | evaluationCounter () const |
Accesses the evaluation counter of the function. | |
AbstractConstraintHandler< SearchPointType > const & | getConstraintHandler () const |
Returns the constraint handler of the function if it has one. | |
virtual bool | isFeasible (const SearchPointType &input) const |
Tests whether a point in SearchSpace is feasible, e.g., whether the constraints are fulfilled. | |
virtual void | closestFeasible (SearchPointType &input) const |
If supported, the supplied point is repaired such that it satisfies all of the function's constraints. | |
ResultType | operator() (SearchPointType const &input) const |
Evaluates the function. Useful together with STL-Algorithms like std::transform. | |
virtual ResultType | evalDerivative (SearchPointType const &input, SecondOrderDerivative &derivative) const |
Evaluates the objective function and calculates its gradient. | |
Public Member Functions inherited from shark::INameable | |
virtual | ~INameable () |
Additional Inherited Members | |
Public Types inherited from shark::AbstractObjectiveFunction< RealVector, double > | |
enum | Feature |
List of features that are supported by an implementation. More... | |
typedef RealVector | SearchPointType |
typedef double | ResultType |
typedef boost::mpl::if_< std::is_arithmetic< double >, SearchPointType, RealMatrix >::type | FirstOrderDerivative |
typedef TypedFlags< Feature > | Features |
This statement declares the member m_features. See Core/Flags.h for details. | |
typedef TypedFeatureNotAvailableException< Feature > | FeatureNotAvailableException |
Protected Member Functions inherited from shark::AbstractObjectiveFunction< RealVector, double > | |
void | announceConstraintHandler (AbstractConstraintHandler< SearchPointType > const *handler) |
helper function which is called to announce the presence of an constraint handler. | |
Protected Attributes inherited from shark::AbstractObjectiveFunction< RealVector, double > | |
Features | m_features |
std::size_t | m_evaluationCounter |
Evaluation counter, default value: 0. | |
AbstractConstraintHandler< SearchPointType > const * | m_constraintHandler |
random::rng_type * | mep_rng |
Rotates an objective function using a randomly initialized rotation.
Most benchmark functions are axis aligned because it is assumed that the algorithm is rotation invariant. However this does not mean that all its aspects are the same. Especially linear algebra routines might take longer when the problem is not axis aligned. This function creates a random rotation function and applies it to the given input points to make it no longer axis aligned.
Definition at line 46 of file RotatedErrorFunction.h.
|
inline |
Definition at line 47 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< RealVector, double >::CAN_PROPOSE_STARTING_POINT, shark::AbstractObjectiveFunction< PointType, ResultT >::canProposeStartingPoint(), shark::AbstractObjectiveFunction< RealVector, double >::HAS_FIRST_DERIVATIVE, shark::AbstractObjectiveFunction< PointType, ResultT >::hasFirstDerivative(), and shark::AbstractObjectiveFunction< RealVector, double >::m_features.
|
inlinevirtual |
Evaluates the objective function for the supplied argument.
[in] | input | The argument for which the function shall be evaluated. |
FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 83 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::eval(), and shark::AbstractObjectiveFunction< RealVector, double >::m_evaluationCounter.
|
inlinevirtual |
Evaluates the objective function and calculates its gradient.
[in] | input | The argument to eval the function for. |
[out] | derivative | The derivate is placed here. |
FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 89 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::evalDerivative().
|
inlinevirtual |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 69 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::hasScalableDimensionality().
|
inlinevirtual |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 63 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::init(), shark::AbstractObjectiveFunction< RealVector, double >::mep_rng, numberOfVariables(), shark::blas::randomRotationMatrix(), and shark::AbstractObjectiveFunction< PointType, ResultT >::setRng().
|
inlinevirtual |
From INameable: return the class name.
Reimplemented from shark::INameable.
Definition at line 56 of file RotatedErrorFunction.h.
References shark::INameable::name().
|
inlinevirtual |
Accesses the number of variables.
Implements shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 59 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::numberOfVariables().
Referenced by init(), and setNumberOfVariables().
|
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< RealVector, double >.
Definition at line 77 of file RotatedErrorFunction.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::proposeStartingPoint().
|
inlinevirtual |
Adjusts the number of variables if the function is scalable.
[in] | numberOfVariables | The new dimension. |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 73 of file RotatedErrorFunction.h.
References numberOfVariables(), and shark::AbstractObjectiveFunction< PointType, ResultT >::setNumberOfVariables().