#include <QMCMikesBracketingStepLengthSelector.h>
Public Member Functions | |
double | stepLength (QMCObjectiveFunction *function, Array1D< double > &position, Array1D< double > &searchDirection, Array1D< double > &gradient, Array2D< double > &unused, double functionValue) |
Calculates the step length to use when performing a line search optimization. | |
Private Member Functions | |
void | bracket (QMCObjectiveFunction *OF, Array1D< double > &position, Array1D< double > &searchDirection, double alpha_zero, double scale, int recursion_depth) |
void | quadratic_rebracketer (QMCObjectiveFunction *OF, Array1D< double > &position, Array1D< double > &searchDirection) |
void | print_interval () |
Private Attributes | |
double | alpha_left |
double | alpha_middle |
double | alpha_right |
double | score_left |
double | score_middle |
double | score_right |
This algorithm is purely huristic and does not insure the Wolfe conditions or other such properties. Again, much work could be done to do this part of a line search better.
Definition at line 30 of file QMCMikesBracketingStepLengthSelector.h.
double QMCMikesBracketingStepLengthSelector::stepLength | ( | QMCObjectiveFunction * | function, | |
Array1D< double > & | array1, | |||
Array1D< double > & | array2, | |||
Array1D< double > & | array3, | |||
Array2D< double > & | matrix1, | |||
double | scalar1 | |||
) | [virtual] |
Calculates the step length to use when performing a line search optimization.
You will have to look at the individual algorithms to see how the input parameters are defined.
Implements QMCLineSearchStepLengthSelectionAlgorithm.
Definition at line 15 of file QMCMikesBracketingStepLengthSelector.cpp.
References alpha_middle, bracket(), print_interval(), and quadratic_rebracketer().
void QMCMikesBracketingStepLengthSelector::bracket | ( | QMCObjectiveFunction * | OF, | |
Array1D< double > & | position, | |||
Array1D< double > & | searchDirection, | |||
double | alpha_zero, | |||
double | scale, | |||
int | recursion_depth | |||
) | [private] |
Definition at line 68 of file QMCMikesBracketingStepLengthSelector.cpp.
References Array1D< T >::allocate(), alpha_left, alpha_middle, alpha_right, Array1D< T >::dim1(), QMCObjectiveFunction::evaluate(), IeeeMath::isNaN(), score_left, score_middle, and score_right.
Referenced by stepLength().
void QMCMikesBracketingStepLengthSelector::quadratic_rebracketer | ( | QMCObjectiveFunction * | OF, | |
Array1D< double > & | position, | |||
Array1D< double > & | searchDirection | |||
) | [private] |
Definition at line 206 of file QMCMikesBracketingStepLengthSelector.cpp.
References Array1D< T >::allocate(), alpha_left, alpha_middle, alpha_right, Array1D< T >::dim1(), QMCObjectiveFunction::evaluate(), score_left, score_middle, and score_right.
Referenced by stepLength().
void QMCMikesBracketingStepLengthSelector::print_interval | ( | ) | [private] |
Definition at line 59 of file QMCMikesBracketingStepLengthSelector.cpp.
References alpha_left, alpha_middle, alpha_right, score_left, score_middle, and score_right.
Referenced by stepLength().
double QMCMikesBracketingStepLengthSelector::alpha_left [private] |
Definition at line 55 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), and quadratic_rebracketer().
double QMCMikesBracketingStepLengthSelector::alpha_middle [private] |
Definition at line 56 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), quadratic_rebracketer(), and stepLength().
double QMCMikesBracketingStepLengthSelector::alpha_right [private] |
Definition at line 57 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), and quadratic_rebracketer().
double QMCMikesBracketingStepLengthSelector::score_left [private] |
Definition at line 58 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), and quadratic_rebracketer().
double QMCMikesBracketingStepLengthSelector::score_middle [private] |
Definition at line 59 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), and quadratic_rebracketer().
double QMCMikesBracketingStepLengthSelector::score_right [private] |
Definition at line 60 of file QMCMikesBracketingStepLengthSelector.h.
Referenced by bracket(), print_interval(), and quadratic_rebracketer().