Manifold Optimization

Amateur Manifold Optimization

SCDM.ILAOptimizerType
ILAOptimizer(scheme)

An amateur manifold optimizer with gradient descent, accelerated gradient descent, and conjugate gradient. The project aims to integrate with manopt.jl and deprecate the custom optimizer except for debugging.

Example:

julia> optimizer = ILAOptimizer(scheme);
julia> U_optimal = optimizer(U, TruncatedConvolution, FletcherReeves);
julia> M_optimal = gauge_transform(neighbor_basis_integral(scheme), U_optimal);
julia> sum(i->spread(M_optimal, scheme, i, TruncatedConvolution), 1:4)
24.206845069491276

Optimization with W90BranchCut is not included because it's too much work for Documenter.jl.

source
SCDM.FletcherReevesType

The (tampered) Fletcher Reeves conjugate gradient algorithm.

For an explanation of this conjugate gradient algorithm, see: http://www.mymathlib.com/optimization/nonlinear/unconstrained/fletcher_reeves.html

The algorithm is adapted slightly since our objective function is not convex. We added simple line searches when the quadratic fit turns out concave.

source