@PublicationReference(author={"William H. Press","Saul A. Teukolsky","William T. Vetterling","Brian P. Flannery"}, title="Numerical Recipes in C, Second Edition", type=Book, year=1992, pages={384,386}, url="http://www.nrbook.com/a/bookcpdf.php") public class LineMinimizerBacktracking extends AbstractAnytimeLineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_GEOMETRIC_DECREASE
Default amount to decrease the step amount each iteration, 0.5.
|
static boolean |
DEFAULT_NUMERICAL_DERIVATIVE
Default flag to use numerical differentiation, true.
|
static double |
DEFAULT_SUFFICIENT_DECREASE
Default sufficient decrease value, 0.5
|
static double |
STEP_MAX
Maximum step size allowed by a parabolic fit, 100.0
|
DEFAULT_MAX_ITERATIONS, DEFAULT_TOLERANCE
initialGuess, result, tolerance
data, keepGoing
maxIterations
DEFAULT_ITERATION, iteration
Constructor and Description |
---|
LineMinimizerBacktracking()
Creates a new instance of LineMinimizerBacktracking
|
LineMinimizerBacktracking(double geometricDecrease)
Creates a new instance of LineMinimizerBacktracking
|
LineMinimizerBacktracking(double geometricDecrease,
boolean numericalDerivative)
Creates a new instance of LineMinimizerBacktracking
|
LineMinimizerBacktracking(double geometricDecrease,
boolean numericalDerivative,
double sufficientDecrease)
Creates a new instance of LineMinimizerBacktracking
|
Modifier and Type | Method and Description |
---|---|
boolean |
bracketingStep()
Continues the bracketing phase of the algorithm, which attempts to
place a bracket around a known minimum.
|
double |
getGeometricDecrease()
Getter for geometricDecrease.
|
boolean |
getNumericalDerivative()
Getter for numericalDerivative
|
double |
getSufficientDecrease()
Getter for sufficientDecrease
|
protected boolean |
initializeAlgorithm()
Called to initialize the learning algorithm's state based on the
data that is stored in the data field.
|
boolean |
sectioningStep()
Continues the sectioning phase of the algorihtm.
|
void |
setGeometricDecrease(double geometricDecrease)
Setter for geometricDecrease
|
void |
setNumericalDerivative(boolean numericalDerivative)
Setter for numericalDerivative
|
void |
setSufficientDecrease(double sufficientDecrease)
Setter for sufficientDecrease
|
cleanupAlgorithm, getBracket, getInitialGuessFunctionValue, getInitialGuessSlope, getInterpolator, isValidBracket, minimizeAlongDirection, setBracket, setData, setInitialGuess, setInitialGuessFunctionValue, setInitialGuessSlope, setInterpolator, setValidBracket, step
getInitialGuess, getResult, getTolerance, setResult, setTolerance
clone, getData, getKeepGoing, learn, setKeepGoing, stop
getMaxIterations, isResultValid, setMaxIterations
addIterativeAlgorithmListener, fireAlgorithmEnded, fireAlgorithmStarted, fireStepEnded, fireStepStarted, getIteration, getListeners, removeIterativeAlgorithmListener, setIteration, setListeners
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getInitialGuess, getTolerance, learn, setTolerance
clone
getMaxIterations, getResult, setMaxIterations
addIterativeAlgorithmListener, getIteration, removeIterativeAlgorithmListener
isResultValid, stop
public static final double STEP_MAX
public static final double DEFAULT_SUFFICIENT_DECREASE
public static final double DEFAULT_GEOMETRIC_DECREASE
public static final boolean DEFAULT_NUMERICAL_DERIVATIVE
public LineMinimizerBacktracking()
public LineMinimizerBacktracking(double geometricDecrease)
geometricDecrease
- Amount to decrease the step amount each iteration.public LineMinimizerBacktracking(double geometricDecrease, boolean numericalDerivative)
geometricDecrease
- Amount to decrease the step amount each iteration.numericalDerivative
- Flag whether or not to use the numerical differentiation.public LineMinimizerBacktracking(double geometricDecrease, boolean numericalDerivative, double sufficientDecrease)
geometricDecrease
- Amount to decrease the step amount each iteration.numericalDerivative
- Flag whether or not to use the numerical differentiation.sufficientDecrease
- Sufficient decrease condition, must be (0,1). Smaller values (0.1)
result in more accurate searches, larger values (0.9) tend to be
easier to satisfy.protected boolean initializeAlgorithm()
AbstractAnytimeBatchLearner
initializeAlgorithm
in class AbstractAnytimeLineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
public boolean bracketingStep()
LineMinimizer
bracketingStep
in interface LineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
bracketingStep
in class AbstractAnytimeLineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
public boolean sectioningStep()
LineMinimizer
sectioningStep
in interface LineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
sectioningStep
in class AbstractAnytimeLineMinimizer<Evaluator<java.lang.Double,java.lang.Double>>
public double getSufficientDecrease()
public void setSufficientDecrease(double sufficientDecrease)
sufficientDecrease
- Sufficient decrease condition, must be (0,1). Smaller values (0.1)
result in more accurate searches, larger values (0.9) tend to be
easier to satisfy.public double getGeometricDecrease()
public void setGeometricDecrease(double geometricDecrease)
geometricDecrease
- Amount to decrease the step amount each iteration.public boolean getNumericalDerivative()
public void setNumericalDerivative(boolean numericalDerivative)
numericalDerivative
- Flag whether or not to use the numerical differentiation.