@PublicationReference(author="R. Fletcher",title="Practical Methods of Optimization, Second Edition",type=Book,year=1987,pages={87,90},notes="Section 4.2") @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={417,418},notes="Section 10.5",url="http://www.nrbook.com/a/bookcpdf.php") public class FunctionMinimizerDirectionSetPowell extends AbstractAnytimeFunctionMinimizer<Vector,java.lang.Double,Evaluator<? super Vector,java.lang.Double>>
Modifier and Type | Field and Description |
---|---|
static LineMinimizer<?> |
DEFAULT_LINE_MINIMIZER
Default line minimization algorithm, LineMinimizerDerivativeFree
|
static int |
DEFAULT_MAX_ITERATIONS
Default maximum number of iterations before stopping, 1000
|
static double |
DEFAULT_TOLERANCE
Default tolerance, 1.0E-5
|
initialGuess, result, tolerance
data, keepGoing
maxIterations
DEFAULT_ITERATION, iteration
Constructor and Description |
---|
FunctionMinimizerDirectionSetPowell()
Default constructor
|
FunctionMinimizerDirectionSetPowell(LineMinimizer<?> lineMinimizer)
Creates a new instance of FunctionMinimizerDirectionSetPowell
|
FunctionMinimizerDirectionSetPowell(LineMinimizer<?> lineMinimizer,
Vector initialGuess,
double tolerance,
int maxIterations)
Creates a new instance of FunctionMinimizerDirectionSetPowell
|
Modifier and Type | Method and Description |
---|---|
protected void |
cleanupAlgorithm()
Called to clean up the learning algorithm's state after learning has
finished.
|
LineMinimizer<?> |
getLineMinimizer()
Getter for lineMinimizer
|
protected boolean |
initializeAlgorithm()
Called to initialize the learning algorithm's state based on the
data that is stored in the data field.
|
void |
setLineMinimizer(LineMinimizer<?> lineMinimizer)
Setter for lineMinimizer
|
protected boolean |
step()
Called to take a single step of the learning algorithm.
|
getInitialGuess, getResult, getTolerance, setInitialGuess, setResult, setTolerance
clone, getData, getKeepGoing, learn, setData, 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
learn
clone
getMaxIterations, setMaxIterations
addIterativeAlgorithmListener, getIteration, removeIterativeAlgorithmListener
isResultValid, stop
public static final int DEFAULT_MAX_ITERATIONS
public static final double DEFAULT_TOLERANCE
public static final LineMinimizer<?> DEFAULT_LINE_MINIMIZER
public FunctionMinimizerDirectionSetPowell()
public FunctionMinimizerDirectionSetPowell(LineMinimizer<?> lineMinimizer)
lineMinimizer
- Work-horse algorithm that minimizes the function along a directionpublic FunctionMinimizerDirectionSetPowell(LineMinimizer<?> lineMinimizer, Vector initialGuess, double tolerance, int maxIterations)
initialGuess
- Initial guess about the minimum of the methodtolerance
- Tolerance of the minimization algorithm, must be >= 0.0, typically ~1e-10lineMinimizer
- Work-horse algorithm that minimizes the function along a directionmaxIterations
- Maximum number of iterations, must be >0, typically ~100protected boolean initializeAlgorithm()
AbstractAnytimeBatchLearner
initializeAlgorithm
in class AbstractAnytimeBatchLearner<Evaluator<? super Vector,java.lang.Double>,InputOutputPair<Vector,java.lang.Double>>
protected boolean step()
AbstractAnytimeBatchLearner
step
in class AbstractAnytimeBatchLearner<Evaluator<? super Vector,java.lang.Double>,InputOutputPair<Vector,java.lang.Double>>
protected void cleanupAlgorithm()
AbstractAnytimeBatchLearner
cleanupAlgorithm
in class AbstractAnytimeBatchLearner<Evaluator<? super Vector,java.lang.Double>,InputOutputPair<Vector,java.lang.Double>>
public LineMinimizer<?> getLineMinimizer()
public void setLineMinimizer(LineMinimizer<?> lineMinimizer)
lineMinimizer
- Work-horse algorithm that minimizes the function along a direction