Class NelderMeadMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.unconstrained.c2.NelderMeadMinimizer
-
- All Implemented Interfaces:
Minimizer<C2OptimProblem,IterativeSolution<Vector>>
,IterativeC2Minimizer
,IterativeMinimizer<C2OptimProblem>
,MultivariateMinimizer<C2OptimProblem,IterativeSolution<Vector>>
,Optimizer<C2OptimProblem,IterativeSolution<Vector>>
public class NelderMeadMinimizer extends Object implements IterativeC2Minimizer
The Nelder-Mead method is a nonlinear optimization technique, which is well-defined for twice differentiable and unimodal problems. It starts with a simplex, and then uses operations reflection, expansion, contraction, and reduction to search for the minimum/maximum point. However, the Nelder-Mead technique is only a heuristic, since it can converge to non-stationary points on problems that can be solved by alternative methods. It does not always converge even for smooth problems. In practice, however, the performance is generally good. Note that one dimensional optimization by Nelder-Mead is unreliable.- See Also:
- Wikipedia: Nelder-Mead method
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
NelderMeadMinimizer.Solution
This is the solution to an optimization problem by the Nelder-Mead method.
-
Constructor Summary
Constructors Constructor Description NelderMeadMinimizer(double alpha, double gamma, double rho, double sigma, double epsilon, int maxIterations)
Construct a Nelder-Mead multivariate minimizer.NelderMeadMinimizer(double epsilon, int maxIterations)
Construct a Nelder-Mead multivariate minimizer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NelderMeadMinimizer.Solution
solve(C2OptimProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.
-
-
-
Constructor Detail
-
NelderMeadMinimizer
public NelderMeadMinimizer(double alpha, double gamma, double rho, double sigma, double epsilon, int maxIterations)
Construct a Nelder-Mead multivariate minimizer.- Parameters:
alpha
- the reflection coefficientgamma
- the shrink/reduction coefficientrho
- the contraction coefficientsigma
- the shrink/reduction coefficientepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0maxIterations
- the maximum number of iterations
-
NelderMeadMinimizer
public NelderMeadMinimizer(double epsilon, int maxIterations)
Construct a Nelder-Mead multivariate minimizer.- Parameters:
epsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0maxIterations
- the maximum number of iterations
-
-
Method Detail
-
solve
public NelderMeadMinimizer.Solution solve(C2OptimProblem problem)
Description copied from interface:Optimizer
Solve an optimization problem, e.g.,OptimProblem
.- Specified by:
solve
in interfaceOptimizer<C2OptimProblem,IterativeSolution<Vector>>
- Parameters:
problem
- an optimization problem- Returns:
- a solution to the optimization problem
-
-