Optimization Methods
Optimization methods are defined as subtypes AbstractOptBuffer type. The structs holding the data required for core iteration logic should subtype OptBuffer <: AbstractOptBuffer. Stopping criteria, logging, step limitations etc. are implemented as subtypes of Wrapper <: AbstractOptBuffer.
Core Optimization Methods
Downhill.FixedRateDescent — TypeFixedRateDescentDescent method which minimizes the objective function in the direction of antigradient at each step.
Downhill.MomentumDescent — TypeMomentumDescentDescent method which minimizes the objective function in the direction of antigradient at each step.
Downhill.NesterovMomentum — TypeNesterovMomentumDescent method which minimizes the objective function in the direction of antigradient at each step.
Downhill.SteepestDescent — TypeSteepestDescentDescent method which minimizes the objective function in the direction of antigradient at each step.
Downhill.HyperGradDescent — TypeHyperGradDescentDescent method which minimizes the objective function in the direction of antigradient at each step.
Downhill.CGDescent — TypeCGDescentConjugate gradient method (Hager-Zhang version [W.Hager, H.Zhang // SIAM J. Optim (2006) Vol. 16, pp. 170-192])
Downhill.BFGS — TypeBFGSQuasi-Newton descent method.
Downhill.CholBFGS — TypeCholBFGSQuasi-Newton descent method.