Class FirstOrderMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
-
- dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.FirstOrderMinimizer
-
- All Implemented Interfaces:
Minimizer<C2OptimProblem,IterativeSolution<Vector>>,IterativeC2Minimizer,IterativeMinimizer<C2OptimProblem>,MultivariateMinimizer<C2OptimProblem,IterativeSolution<Vector>>,Optimizer<C2OptimProblem,IterativeSolution<Vector>>
public class FirstOrderMinimizer extends SteepestDescentMinimizer
This implements the steepest descent line search using the first order expansion of the Taylor's series. Specifically, we search along the negative gradient direction.- See Also:
- "Andreas Antoniou, Wu-Sheng Lu, "Algorithm 5.2," Practical Optimization: Algorithms and Engineering Applications."
- Wikipedia: Gradient descent
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFirstOrderMinimizer.Methodthe available methods to do line search-
Nested classes/interfaces inherited from class dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
SteepestDescentMinimizer.SteepestDescentImpl
-
-
Field Summary
-
Fields inherited from class dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
epsilon, maxIterations
-
-
Constructor Summary
Constructors Constructor Description FirstOrderMinimizer(double epsilon, int maxIterations)Construct a multivariate minimizer using the First-Order method.FirstOrderMinimizer(FirstOrderMinimizer.Method method, double epsilon, int maxIterations)Construct a multivariate minimizer using the First-Order method.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IterativeSolution<Vector>solve(C2OptimProblem problem)Solve a minimization problem with a C2 objective function.
-
-
-
Constructor Detail
-
FirstOrderMinimizer
public FirstOrderMinimizer(FirstOrderMinimizer.Method method, double epsilon, int maxIterations)
Construct a multivariate minimizer using the First-Order method.- Parameters:
method- the method to do line searchepsilon- a precision parameter: when a number |x| ≤ ε, it is considered 0maxIterations- the maximum number of iterations
-
FirstOrderMinimizer
public FirstOrderMinimizer(double epsilon, int maxIterations)Construct a multivariate minimizer using the First-Order method. This line search is using Fletcher's inexact line search method.- Parameters:
epsilon- a precision parameter: when a number |x| ≤ ε, it is considered 0maxIterations- the maximum number of iterations
-
-
Method Detail
-
solve
public IterativeSolution<Vector> solve(C2OptimProblem problem) throws Exception
Description copied from class:SteepestDescentMinimizerSolve a minimization problem with a C2 objective function.- Specified by:
solvein interfaceOptimizer<C2OptimProblem,IterativeSolution<Vector>>- Specified by:
solvein classSteepestDescentMinimizer- Parameters:
problem- a minimization problem with a C2 objective function- Returns:
- a minimizer
- Throws:
Exception- when there is an error solving the problem
-
-