#include <BrentLineSearch.h>
Public Member Functions | |
BrentLineSearch (ObjectiveFunction *=NULL) | |
Constructor. | |
BrentLineSearch (const BrentLineSearch &) | |
Copy constructor. | |
BrentLineSearch & | operator= (const BrentLineSearch &) |
Assignment operator. | |
virtual ParameterList | Parameter () const |
Get parameters as key/value as string map. | |
virtual double | Run () |
Make optimal step along search direction. | |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
virtual | ~BrentLineSearch () |
Destructor. | |
Public Member Functions inherited from mirtk::InexactLineSearch | |
virtual void | Function (ObjectiveFunction *) |
Set objective function. | |
InexactLineSearch (ObjectiveFunction *=NULL) | |
Constructor. | |
InexactLineSearch (const InexactLineSearch &) | |
Copy constructor. | |
InexactLineSearch & | operator= (const InexactLineSearch &) |
Assignment operator. | |
virtual | ~InexactLineSearch () |
Destructor. | |
Public Member Functions inherited from mirtk::LineSearch | |
virtual void | Initialize () |
Initialize optimization. | |
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 | BracketExtremum (double &a, double &b, double &c, double *delta=NULL) |
Protected Member Functions inherited from mirtk::InexactLineSearch | |
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 |
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) |
Protected Attributes inherited from mirtk::InexactLineSearch | |
double * | _CurrentDoFValues |
Previous function parameters. | |
double * | _ScaledDirection |
Line search direction scaled by current step length. | |
Performs a line search using Brent's method
This line search strategy uses Brent's method to find an optimal step length within a given search interval. It initially brackets the minimum when the user specified step length range does not need to be strictly followed.
Definition at line 36 of file BrentLineSearch.h.
|
protected |
Bracket extremum of objective function
This function finds an initial triplet (a, b, c) of step lengths which brackets a minimum (or maximum if _Descent
is false
) of the objective function.
[out] | a | Minimum step length. |
[out] | b | Step length for which objective function achieves an extremum in the step length interval [a, b]. |
[out] | c | Maximum step length. |
[out] | delta | Maximum change of objective function parameter for step length equal to b . Not returned if NULL . |
b
.