shark::AbstractSingleObjectiveOptimizer< PointType > Class Template Referenceabstract

Base class for all single objective optimizer. More...

#include <shark/Algorithms/AbstractSingleObjectiveOptimizer.h>

+ Inheritance diagram for shark::AbstractSingleObjectiveOptimizer< PointType >:

Public Types

typedef base_type::SearchPointType SearchPointType
 
typedef base_type::SolutionType SolutionType
 
typedef base_type::ResultType ResultType
 
typedef base_type::ObjectiveFunctionType ObjectiveFunctionType
 
- Public Types inherited from shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >
enum  Feature
 Models features that the optimizer requires from the objective function. More...
 
typedef PointType SearchPointType
 
typedef double ResultType
 
typedef SingleObjectiveResultSet< PointType > SolutionType
 
typedef AbstractObjectiveFunction< PointType, ResultTypeObjectiveFunctionType
 
typedef TypedFlags< FeatureFeatures
 
typedef TypedFeatureNotAvailableException< FeatureFeatureNotAvailableException
 

Public Member Functions

std::size_t numInitPoints () const
 By default most single objective optimizers only require a single point. More...
 
virtual void init (ObjectiveFunctionType const &function, std::vector< SearchPointType > const &initPoints)
 Initialize the optimizer for the supplied objective function using a set of initialisation points. More...
 
virtual void init (ObjectiveFunctionType const &function, SearchPointType const &startingPoint)=0
 initializes the optimizer using a predefined starting point More...
 
virtual const SolutionTypesolution () const
 returns the current solution of the optimizer More...
 
- Public Member Functions inherited from shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >
const Featuresfeatures () const
 
virtual void updateFeatures ()
 
bool requiresValue () const
 
bool requiresFirstDerivative () const
 
bool requiresSecondDerivative () const
 
bool canSolveConstrained () const
 
bool requiresClosestFeasible () const
 
virtual ~AbstractOptimizer ()
 
virtual void init (ObjectiveFunctionType const &function)
 Initialize the optimizer for the supplied objective function. More...
 
virtual void step (ObjectiveFunctionType const &function)=0
 Carry out one step of the optimizer for the supplied objective function. More...
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 
virtual std::string name () const
 returns the name of the object More...
 
- Public Member Functions inherited from shark::ISerializable
virtual ~ISerializable ()
 Virtual d'tor. More...
 
virtual void read (InArchive &archive)
 Read the component from the supplied archive. More...
 
virtual void write (OutArchive &archive) const
 Write the component to the supplied archive. More...
 
void load (InArchive &archive, unsigned int version)
 Versioned loading of components, calls read(...). More...
 
void save (OutArchive &archive, unsigned int version) const
 Versioned storing of components, calls write(...). More...
 
 BOOST_SERIALIZATION_SPLIT_MEMBER ()
 

Protected Attributes

SolutionType m_best
 Current solution of the optimizer. More...
 
- Protected Attributes inherited from shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >
Features m_features
 

Additional Inherited Members

- Protected Member Functions inherited from shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >
void checkFeatures (ObjectiveFunctionType const &objectiveFunction)
 Convenience function that checks whether the features of the supplied objective function match with the required features of the optimizer. More...
 

Detailed Description

template<class PointType>
class shark::AbstractSingleObjectiveOptimizer< PointType >

Base class for all single objective optimizer.

This class is a spezialization of the AbstractOptimizer itnerface for the class of single objective optimizers. A single objective optimizer is an optimizer which can only optimize functions with a single objective. This is the default case for most optimisation problems. the class requires the ObjectiveFunction to provide a feasible starting point. If this is not possible, a second version of init is provided where the starting point can be explicitely defined. The Return type of an SingleObjectiveOptimizer is the SingleObjectiveResultSet which is a struct returning the best value of the function and together with it's point.

Definition at line 49 of file AbstractSingleObjectiveOptimizer.h.

Member Typedef Documentation

◆ ObjectiveFunctionType

◆ ResultType

template<class PointType>
typedef base_type::ResultType shark::AbstractSingleObjectiveOptimizer< PointType >::ResultType

Definition at line 55 of file AbstractSingleObjectiveOptimizer.h.

◆ SearchPointType

Definition at line 53 of file AbstractSingleObjectiveOptimizer.h.

◆ SolutionType

template<class PointType>
typedef base_type::SolutionType shark::AbstractSingleObjectiveOptimizer< PointType >::SolutionType

Definition at line 54 of file AbstractSingleObjectiveOptimizer.h.

Member Function Documentation

◆ init() [1/2]

template<class PointType>
virtual void shark::AbstractSingleObjectiveOptimizer< PointType >::init ( ObjectiveFunctionType const &  function,
std::vector< SearchPointType > const &  initPoints 
)
inlinevirtual

Initialize the optimizer for the supplied objective function using a set of initialisation points.

The default implementation picks either the first point in the set, or if it is enmpty, trys to generate one from the function.

Be aware that function.init() has to be called before calling this function!

Parameters
[in]functionThe objective function to initialize for.
[in]initPointspoints used for initialisation. Should be at least numInitPoints().

Implements shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >.

Definition at line 74 of file AbstractSingleObjectiveOptimizer.h.

Referenced by shark::AbstractSingleObjectiveOptimizer< RealVector >::init(), and shark::OptimizationTrainer< Model, LabelTypeT >::train().

◆ init() [2/2]

◆ numInitPoints()

template<class PointType>
std::size_t shark::AbstractSingleObjectiveOptimizer< PointType >::numInitPoints ( ) const
inlinevirtual

By default most single objective optimizers only require a single point.

Implements shark::AbstractOptimizer< PointType, double, SingleObjectiveResultSet< PointType > >.

Definition at line 59 of file AbstractSingleObjectiveOptimizer.h.

◆ solution()

template<class PointType>
virtual const SolutionType& shark::AbstractSingleObjectiveOptimizer< PointType >::solution ( ) const
inlinevirtual

Member Data Documentation

◆ m_best

template<class PointType>
SolutionType shark::AbstractSingleObjectiveOptimizer< PointType >::m_best
protected

Current solution of the optimizer.

Definition at line 90 of file AbstractSingleObjectiveOptimizer.h.

Referenced by shark::AbstractSingleObjectiveOptimizer< RealVector >::solution().


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