Class FletcherLineSearch
- java.lang.Object
-
- dev.nm.solver.multivariate.unconstrained.c2.linesearch.FletcherLineSearch
-
- All Implemented Interfaces:
LineSearch
,Optimizer<C2OptimProblem,LineSearch.Solution>
public class FletcherLineSearch extends Object implements LineSearch
This is Fletcher's inexact line search method. An inexact line search is usually used in conjunction with a multi-dimensional optimization algorithm. It trades off the accuracy of the line search result with the amount of computation. A lot of optimization algorithms are shown to be quite tolerant to line search imprecision.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface dev.nm.solver.multivariate.unconstrained.c2.linesearch.LineSearch
LineSearch.Solution
-
-
Constructor Summary
Constructors Constructor Description FletcherLineSearch()
Construct a line search minimizer using the Fletcher method with the default control parameters.FletcherLineSearch(double rho, double sigma, double tau, double chi, double epsilon, int maxIterations)
Construct a line search minimizer using the Fletcher method.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LineSearch.Solution
solve(C2OptimProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.
-
-
-
Constructor Detail
-
FletcherLineSearch
public FletcherLineSearch(double rho, double sigma, double tau, double chi, double epsilon, int maxIterations)
Construct a line search minimizer using the Fletcher method.- Parameters:
rho
- a precision parameter; smaller ρ, e.g., 0.1, gives better accuracysigma
- a precision parameter; smaller σ, e.g., 0.1, gives better accuracytau
- a control parameter to prevent the result from being too close to boundarychi
- a control parameter to prevent the result from being too close to boundaryepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0. This affects the precision of the result.maxIterations
- the maximum number of iterations. This affects the precision of the result.
-
FletcherLineSearch
public FletcherLineSearch()
Construct a line search minimizer using the Fletcher method with the default control parameters.
-
-
Method Detail
-
solve
public LineSearch.Solution solve(C2OptimProblem problem)
Description copied from interface:Optimizer
Solve an optimization problem, e.g.,OptimProblem
.- Specified by:
solve
in interfaceOptimizer<C2OptimProblem,LineSearch.Solution>
- Parameters:
problem
- an optimization problem- Returns:
- a solution to the optimization problem
-
-