PETSc version 3.15.5
Fix/Edit manual page

# TAOADMM

Alternating direction method of multipliers method fo solving linear problems with constraints. in a min_x f(x) + g(z) s.t. Ax+Bz=c. This algorithm employs two sub Tao solvers, of which type can be specificed by the user. User need to provide ObjectiveAndGradient routine, and/or HessianRoutine for both subsolvers. Hessians can be given boolean flag determining whether they change with respect to a input vector. This can be set via TaoADMMSet{Misfit,Regularizer}HessianChangeStatus. Second subsolver does support TAOSHELL. It should be noted that L1-norm is used for objective value for TAOSHELL type. There is option to set regularizer option, and currently soft-threshold is implemented. For spectral penalty update, currently there are baisc option and adaptive option. Constraint is set at Ax+Bz=c, and A and B can be set with TaoADMMSet{Misfit,Regularizer}ConstraintJacobian. c can be set with TaoADMMSetConstraintVectorRHS. The user can also provide regularizer weight for second subsolver.

### References

| 1. | - Xu, Zheng and Figueiredo, Mario A. T. and Yuan, Xiaoming and Studer, Christoph and Goldstein, Tom "Adaptive Relaxed ADMM: Convergence Theory and Practical Implementation" The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July, 2017.

### Options Database Keys

| -tao_admm_regularizer_coefficient | - regularizer constant (default 1.e-6)
| -tao_admm_spectral_penalty | - Constant for Augmented Lagrangian term (default 1.)
| -tao_admm_relaxation_parameter | - relaxation parameter for Z update (default 1.)
| -tao_admm_tolerance_update_factor | - ADMM dynamic tolerance update factor (default 1.e-12)
| -tao_admm_spectral_penalty_update_factor | - ADMM spectral penalty update curvature safeguard value (default 0.2)
| -tao_admm_minimum_spectral_penalty | - Set ADMM minimum spectral penalty (default 0)
| -tao_admm_dual_update | - Lagrangian dual update policy ("basic","adaptive","adaptive-relaxed") (default "basic")
| -tao_admm_regularizer_type | - ADMM regularizer update rule ("user","soft-threshold") (default "soft-threshold")

### See Also

TaoADMMSetMisfitHessianChangeStatus(), TaoADMMSetRegHessianChangeStatus(), TaoADMMGetSpectralPenalty(),
TaoADMMGetMisfitSubsolver(), TaoADMMGetRegularizationSubsolver(), TaoADMMSetConstraintVectorRHS(), TaoADMMSetMinimumSpectralPenalty(), TaoADMMSetRegularizerCoefficient(), TaoADMMSetRegularizerConstraintJacobian(), TaoADMMSetMisfitConstraintJacobian(), TaoADMMSetMisfitObjectiveAndGradientRoutine(), TaoADMMSetMisfitHessianRoutine(), TaoADMMSetRegularizerObjectiveAndGradientRoutine(), TaoADMMSetRegularizerHessianRoutine(), TaoGetADMMParentTao(), TaoADMMGetDualVector(), TaoADMMSetRegularizerType(), TaoADMMGetRegularizerType(), TaoADMMSetUpdateType(), TaoADMMGetUpdateType()

### Level

beginner

### Location

src/tao/constrained/impls/admm/admm.c

### Examples

src/tao/constrained/tutorials/tomographyADMM.c.html
Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages