Class Optimizer
java.lang.Object
org.episteme.core.mathematics.optimization.Optimizer
Optimization algorithms for finding minima/maxima.
CPU-optimized implementations. For large-scale problems, use GPU backend.
*
Reference:
Nocedal, J., invalid input: '&' Wright, S. J. (2006). Numerical Optimization. Springer.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic RealGolden Section Search for 1D unimodal functions.static RealgradientDescent(Function<Real, Real> f, Function<Real, Real> gradient, Real initialGuess, Real learningRate, Real tolerance, int maxIterations) Gradient Descent: x_{n+1} = x_n - α∇f(x_n)static Real[]linearProgramming(Real[] c, Real[][] A, Real[] b) Linear programming solver using Simplex method.static Real[]Nelder-Mead Simplex algorithm for multidimensional optimization.static RealNelder-Mead Simplex algorithm for multidimensional optimization.static RealnewtonOptimization(Function<Real, Real> f, Function<Real, Real> gradient, Function<Real, Real> hessian, Real initialGuess, Real tolerance, int maxIterations) Newton's method for optimization: x_{n+1} = x_n - H^{-1}∇f(x_n)static RealsimulatedAnnealing(Function<Real, Real> f, Real initialGuess, Real temperature, Real coolingRate, int maxIterations) Simulated Annealing - global optimization.
-
Constructor Details
-
Optimizer
public Optimizer()
-
-
Method Details
-
gradientDescent
public static Real gradientDescent(Function<Real, Real> f, Function<Real, Real> gradient, Real initialGuess, Real learningRate, Real tolerance, int maxIterations) Gradient Descent: x_{n+1} = x_n - α∇f(x_n)Finds local minimum iteratively.
- Parameters:
f- objective function (to minimize)gradient- gradient of finitialGuess- starting pointlearningRate- step size αtolerance- convergence criterionmaxIterations- max iterations- Returns:
- approximate minimum
-
newtonOptimization
public static Real newtonOptimization(Function<Real, Real> f, Function<Real, Real> gradient, Function<Real, Real> hessian, Real initialGuess, Real tolerance, int maxIterations) Newton's method for optimization: x_{n+1} = x_n - H^{-1}∇f(x_n)Uses second derivatives (Hessian). Quadratic convergence near minimum.
-
goldenSectionSearch
-
simulatedAnnealing
-
nelderMead
-
linearProgramming
-
nelderMead
public static Real[] nelderMead(Function<Real[], Real> f, Real[][] initialSimplex, Real tolerance, int maxIterations) Nelder-Mead Simplex algorithm for multidimensional optimization.Derivative-free method. Good for noisy functions.
- Parameters:
f- objective function (Real[] -> Real)initialSimplex- initial simplex vertices (n+1 vertices for n dimensions)tolerance- convergence tolerancemaxIterations- maximum iterations- Returns:
- optimal point
-