cr.sparse.fom.scd¶
- cr.sparse.fom.scd(prox_f, conj_neg_h, A, b, mu, x0, z0, options=FomOptions(nonneg=False, solver='at', max_iters=1000, tol=1e-08, L0=1.0, Lexact=inf, alpha=0.9, beta=0.5, mu=0, maximize=False, saddle=False))[source]¶
First order solver for smooth conic dual problems driver routine
- Parameters
prox_f (cr.sparse.opt.SmoothFunction) – A prox-capable objective function
conj_neg_h (cr.sparse.opt.ProxCapable) – The conjugate negative \(h^{-}\) function
A (cr.sparse.lop.Operator) – A linear operator
b (jax.numpy.ndarray) – The translation vector
mu (float) – The (positive) scaling term for the quadratic term \(\frac{\mu}{2} \| x - x_0 \|_2^2\)
x0 (jax.numpy.ndarray) – The center point for the quadratic term
z0 (jax.numpy.ndarray) – The initial dual point
options (FomOptions) – Options for configuring the algorithm
- Returns
Solution of the optimization problem
- Return type
The function uses first order conic solver algorithms to solve an optimization problem of the form:
(1)¶\[\underset{x}{\text{minimize}} \left [ f(x) + \frac{\mu}{2} \| x - x_0 \|_2^2 + h \left (\AAA(x) + b \right) \right ]\]Both \(f, h\) must be convex and prox-capable, although neither needs to be smooth.
When \(h\) is an indicator function for a convex cone \(\KKK\), this is equivalent to:
(2)¶\[\begin{split}\begin{split}\begin{aligned} & \underset{x}{\text{minimize}} & & f(x) + \frac{\mu}{2} \| x - x_0 \|_2^2\\ & \text{subject to} & & \AAA(x) + b \in \KKK \end{aligned}\end{split}\end{split}\]which is the smooth conic dual (SCD) model discussed in [BCandesG11].