Algorithm Reference
Original DRSOM with 2 directions $g_k$ and $d_k$
We do not currently support nonsmooth/composite optimization, this is a future plan.
DRSOM.DRSOMState — TypeStruct for DRSOM to keep the iterate state, including the following attributes e.g.,
xthe current iterate, namely $x$;fxthe function value, namely $f(x)$;∇fthe gradient, namely $\nabla f(x)$;tthe running time;ϵgradient norm $\|\nabla f(x)\|$
DRSOM.DRSOMIteration — TypeIteration object for DRSOM, to initialize an iterator, you must specify the attributes, including
- $x_0$ is initial point of the iterate
fis the smooth function to minimizeϕis the nonsmooth functiongis the gradient functiongais gradient function via forward or backward diffhvpis hvp function via forward or backward diffHis hessian function
rest of the attributes have default options:
t::Dates.DateTime = Dates.now()
itermax::Int64 = 20
fog = :forward
sog = :forwardThis TRS solver only works for low-dimensional subproblems
DRSOM.SimpleTrustRegionSubproblem — FunctionA simple procedure to solve TRS via a given regularizer This is only used in DRSOM
the radius free mode: compute the Lagrangian multiplier according to the adaptive $\gamma$ instead. See the paper for details.
the strict regularization mode: strictly solve a quadratic regularization problems given a regularizer $\lambda$
the strict radius mode: if you choose a radius, this function is a bisection procedure following the complexity of $O(\log\log(1/ε))$ by Ye
We use this function (radius-free mode) only in DRSOM, since the eigenvalues are easy to solve.