COSMO: A conic operator splitting method for convex conic problems

Michael Garstka, Mark Cannon and Paul Goulart

Journal of Optimization Theory and Applications, vol. 190, no. 3, pp. 779-810, August 2021.
BibTeX  URL  Preprint  Code 

@article{GCG:2021,
  author = {Michael Garstka and Mark Cannon and Paul Goulart},
  title = {COSMO: A conic operator splitting method for convex conic problems},
  journal = {Journal of Optimization Theory and Applications},
  year = {2021},
  volume = {190},
  number = {3},
  pages = {779-810},
  url = {https://doi.org/10.1007/s10957-021-01896-x},
  doi = {10.1007/s10957-021-01896-x}
}

This paper describes the Conic Operator Splitting Method (COSMO), an operator splitting algorithm for convex optimisation problems with quadratic objective function and conic constraints. At each step the algorithm alternates between solving a quasi-definite linear system with a constant coefficient matrix and a projection onto convex sets. The solver is able to exploit chordal sparsity in the problem data and to detect infeasible problems. The low per-iteration computational cost makes the method particularly efficient for large problems, e.g. semidefinite programs in portfolio optimisation, graph theory, and robust control. Our Julia implementation is open-source, extensible, integrated into the Julia optimisation ecosystem and performs well on a variety of large convex problem classes.