mr2.algorithms.optimizers.admm_linear

mr2.algorithms.optimizers.admm_linear(f: ProximableFunctionalSeparableSum | ProximableFunctional, g: ProximableFunctionalSeparableSum | ProximableFunctional, operator: LinearOperator | LinearOperatorMatrix | None, initial_values: Sequence[Tensor] | Tensor, *, tau: float | Tensor, mu: float | Tensor, max_iterations: int = 128, tolerance: float = 0.0, initial_z: Sequence[Tensor] | Tensor | None = None, initial_u: Sequence[Tensor] | Tensor | None = None, callback: Callable[[ADMMLinearStatus], bool | None] | None = None) tuple[Tensor, ...][source]

Linearized ADMM for \(\min_x f(x) + g(Ax)\).

This routine solves convex composite problems of the form

\(\min_x f(x) + g(Ax)\),

where \(f\) and \(g\) are proximable and \(A\) is linear. It supports single-variable as well as block-variable formulations by operating on tuples of tensors and LinearOperatorMatrix.

The algorithm applies the following updates:

\[\begin{split}x_{k+1} = \mathrm{prox}_{\mu f}\left(x_k - \frac{\mu}{\tau} A^H(Ax_k-z_k+u_k)\right)\\ z_{k+1} = \mathrm{prox}_{\tau g}(Ax_{k+1} + u_k)\\ u_{k+1} = u_k + Ax_{k+1} - z_{k+1}\end{split}\]

with scaled dual variable \(u\).

For convergence of the linearized method, mu / tau must be chosen sufficiently small relative to the squared operator norm of \(A\). This is not checked automatically.

Parameters:
Returns:

Tuple of tensors representing the final primal variable(s).

Raises:

ValueError – If parameters are inconsistent (non-positive tau/mu, mismatched operator/functional dimensions, or incompatible initial variables).