#include <InexactLineSearch.h>
Public Member Functions | |
virtual void | Function (ObjectiveFunction *) |
Set objective function. | |
InexactLineSearch (ObjectiveFunction *=NULL) | |
Constructor. | |
InexactLineSearch (const InexactLineSearch &) | |
Copy constructor. | |
InexactLineSearch & | operator= (const InexactLineSearch &) |
Assignment operator. | |
virtual ParameterList | Parameter () const |
Get parameters as key/value as string map. | |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
virtual | ~InexactLineSearch () |
Destructor. | |
Public Member Functions inherited from mirtk::LineSearch | |
virtual void | Initialize () |
Initialize optimization. | |
virtual double | Run ()=0 |
virtual LineSearchStrategy | Strategy () const =0 |
Line search strategy implemented by this line search. | |
virtual | ~LineSearch () |
Destructor. | |
Public Member Functions inherited from mirtk::LocalOptimizer | |
void | AddStoppingCriterion (StoppingCriterion *) |
Add stopping criterion and take over ownership of the object. | |
void | ClearStoppingCriteria () |
Delete all stopping criteria. | |
int | NumberOfStoppingCriteria () const |
Get number of stopping criteria. | |
virtual enum OptimizationMethod | OptimizationMethod () const =0 |
Optimization method implemented by this optimizer. | |
void | RemoveStoppingCriterion (StoppingCriterion *) |
Remove stopping criterion and revoke ownership of the object. | |
class StoppingCriterion * | StoppingCriterion (int) |
Get the n-th stopping criterion. | |
const class StoppingCriterion * | StoppingCriterion (int) const |
Get the n-th stopping criterion. | |
virtual | ~LocalOptimizer () |
Destructor. | |
Public Member Functions inherited from mirtk::Observable | |
void | AddObserver (Observer &) |
Add observer. | |
void | Broadcast (Event, const void *=NULL) |
Broadcast event to observers. | |
void | ClearObservers () |
Delete all observers. | |
void | DeleteObserver (Observer &) |
Delete observer. | |
void | NotifyObservers (Event, const void *=NULL) |
Notify all observers about given event if this object has changed. | |
int | NumberOfObservers () const |
Number of current observers. | |
virtual | ~Observable () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
double | Advance (double) |
void | Retreat (double) |
Revert step in search direction. | |
double | Value (double, double *=NULL) |
Protected Member Functions inherited from mirtk::LineSearch | |
LineSearch (ObjectiveFunction *=NULL) | |
Constructor. | |
LineSearch (const LineSearch &) | |
Copy constructor. | |
LineSearch & | operator= (const LineSearch &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::LocalOptimizer | |
virtual bool | Converged (int iter, double value, const double *delta) |
bool | IsImprovement (double prev, double value) const |
LocalOptimizer (ObjectiveFunction *=NULL) | |
Constructor. | |
LocalOptimizer (const LocalOptimizer &) | |
Copy constructor. | |
LocalOptimizer & | operator= (const LocalOptimizer &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (const Observable &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Protected Attributes | |
double * | _CurrentDoFValues |
Previous function parameters. | |
double * | _ScaledDirection |
Line search direction scaled by current step length. | |
Additional Inherited Members | |
Public Types inherited from mirtk::LocalOptimizer | |
typedef ObjectFactory< enum OptimizationMethod, LocalOptimizer > | FactoryType |
Type of optimizer factory. | |
Static Public Member Functions inherited from mirtk::LineSearch | |
static LineSearch * | New (LineSearchStrategy &, ObjectiveFunction *=NULL) |
Instantiate line search implementing specified strategy. | |
Static Public Member Functions inherited from mirtk::LocalOptimizer | |
static FactoryType & | Factory () |
Get global optimizer factory instance. | |
static LocalOptimizer * | New (enum OptimizationMethod, ObjectiveFunction *=NULL) |
Construct optimizer. | |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Searches sufficiently optimal step length along search direction
This local optimizer implements an inexact line search with adaptive step size control, increasing the step size while steps are accepted, and decreasing it when a step did not yield a sufficient improvement.
Definition at line 36 of file InexactLineSearch.h.
|
protected |
Take step in search direction
|
protected |
Evaluate objective function for a given step length
This function takes a step in the given direction with the specified step length and evaluates the objective function value at this point. It then restores the function parameters by reverting the step again.