COSMO
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: springer.com -
✓Committers with academic emails
4 of 17 committers (23.5%) from academic institutions -
✓Institutional organization owner
Organization oxfordcontrol has institutional domain (www.eng.ox.ac.uk) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.9%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Basic Info
- Host: GitHub
- Owner: oxfordcontrol
- License: apache-2.0
- Language: Julia
- Default Branch: master
- Homepage: https://oxfordcontrol.github.io/COSMO.jl/stable
- Size: 7.55 MB
Statistics
- Stars: 301
- Watchers: 13
- Forks: 42
- Open Issues: 17
- Releases: 28
Topics
Metadata Files
README.md
Features • Installation • Changelog • Citing • Contributing
This is a Julia implementation of the Conic operator splitting method (COSMO) solver. It can solve large convex conic optimization problems of the following form:
with decision variables x ϵ R^n, s ϵ R^m and data matrices P=P'>=0, q ϵ R^n, A ϵ R^(m×n), and b ϵ R^m. The convex set K is a composition of convex sets and cones.
For more information take a look at the COSMO.jl Documentation (stable | dev).
⚙️ Features
- Versatile: COSMO solves linear programs, quadratic programs, second-order cone programs, semidefinite programs and problems involving exponential and power cones
- Quad SDPs: Positive semidefinite programs with quadratic objective functions are natively supported
- Safeguarded acceleration: robust and faster convergence to higher precision using COSMOAccelerators
- Infeasibility detection: Infeasible problems are detected without a homogeneous self-dual embedding of the problem
- JuMP / Convex.jl support: We provide an interface to MathOptInterface (MOI), which allows you to describe your problem in JuMP and Convex.jl.
- Warm starting: COSMO supports warm starting of the decision variables
- Custom sets and linear solver: Customize COSMO's components by defining your own convex constraint sets and by choosing from a number of direct and indirect linear system solvers, for example, QDLDL, Pardiso, Conjugate Gradient and MINRES
- Arbitrary precision types: You can solve problems with any floating point precision.
- Open Source: Our code is free to use and distributed under the Apache 2.0 Licence
- Chordal decomposition: COSMO tries to decompose large structured PSD constraints using chordal decomposition techniques. This often results in a significant speedup compared to the original problem.
- Smart clique merging: After an initial decomposition of a structured SDP, COSMO recombines overlapping cliques/blocks to speed up the algorithm.
⚡️ Installation
COSMO can be installed via the Julia package manager (type ]): pkg> add COSMO
🧪 Examples
Optimization problems appear in many applications such as power flow modelling, finance, control, and machine learning. We have collected a number of example problems in our documentation.
🎓 Citing
If you find COSMO useful in your project, we kindly request that you cite the following paper:
@Article{Garstka_2021,
author = {Michael Garstka and Mark Cannon and Paul Goulart},
journal = {Journal of Optimization Theory and Applications},
title = {{COSMO}: A Conic Operator Splitting Method for Convex Conic Problems},
volume = {190},
number = {3},
pages = {779--810},
year = {2021},
publisher = {Springer},
doi = {10.1007/s10957-021-01896-x},
url = {https://doi.org/10.1007/s10957-021-01896-x}
}
The article is available under Open Access here.
🤝 Contributing
This package is currently in maintenance mode. We are aiming to keep it compatible with new releases of JuMP/MOI. Helpful contributions are always welcome. Enhancement ideas are tagged as such in the Issues section. - How to get started with developing and testing this package is described in the documentation: How-to-develop. - Please report any issues or bugs that you encounter. - As an open source project we are also interested in any projects and applications that use COSMO. Please let us know by opening a GitHub issue or via email.
🐍 Python - Interface
COSMO can be called from Python. Take a look at: cosmo-python
🔍 Licence
This project is licensed under the Apache License - see the LICENSE.md file for details.
Owner
- Name: University of Oxford Control Group
- Login: oxfordcontrol
- Kind: organization
- Location: Oxford, UK
- Website: http://www.eng.ox.ac.uk/control
- Repositories: 12
- Profile: https://github.com/oxfordcontrol
Citation (CITATION.bib)
@Article{Garstka_2021,
author = {Michael Garstka and Mark Cannon and Paul Goulart},
journal = {Journal of Optimization Theory and Applications},
title = {{COSMO}: A Conic Operator Splitting Method for Convex Conic Problems},
year = {2021},
doi = {10.1007/s10957-021-01896-x},
url = {https://doi.org/10.1007/s10957-021-01896-x},
}
GitHub Events
Total
- Issues event: 3
- Watch event: 19
- Issue comment event: 10
- Push event: 6
- Pull request event: 6
- Fork event: 1
- Create event: 1
Last Year
- Issues event: 3
- Watch event: 19
- Issue comment event: 10
- Push event: 6
- Pull request event: 6
- Fork event: 1
- Create event: 1
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Michael | m****l@g****g | 578 |
| Paul Goulart | p****t@e****k | 68 |
| nrontsis | n****s@g****m | 25 |
| Oscar Dowson | o****w | 7 |
| Benoît Legat | b****t@g****m | 5 |
| Eric Hanson | 5****n | 4 |
| Robert Schwarz | m****l@r****t | 3 |
| github-actions[bot] | 4****] | 2 |
| Mathieu Besançon | m****n@g****m | 2 |
| Marek Kaluba | m****a@k****u | 1 |
| Ian McInerney | I****y@i****g | 1 |
| Julia TagBot | 5****t | 1 |
| Marek Kaluba | k****r@a****l | 1 |
| Mateus Araújo | m****n@g****m | 1 |
| Mengchang Wang | w****g@g****m | 1 |
| N5N3 | 2****6@q****m | 1 |
| lizz | i****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 71
- Total pull requests: 57
- Average time to close issues: 9 months
- Average time to close pull requests: about 2 months
- Total issue authors: 38
- Total pull request authors: 19
- Average comments per issue: 2.77
- Average comments per pull request: 2.18
- Merged pull requests: 37
- Bot issues: 0
- Bot pull requests: 10
Past Year
- Issues: 3
- Pull requests: 5
- Average time to close issues: about 1 month
- Average time to close pull requests: 7 days
- Issue authors: 2
- Pull request authors: 4
- Average comments per issue: 0.67
- Average comments per pull request: 2.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- migarstka (13)
- blegat (5)
- angeris (4)
- Sage0614 (3)
- nrontsis (3)
- lrnv (3)
- goulart-paul (3)
- imciner2 (2)
- araujoms (2)
- guilhermebodin (2)
- JinraeKim (2)
- Mark-L-Stone (2)
- mlubin (2)
- maxchendt (1)
- 1oly (1)
Pull Request Authors
- github-actions[bot] (10)
- goulart-paul (8)
- migarstka (8)
- nrontsis (7)
- blegat (6)
- odow (4)
- tepidjuice (3)
- matbesancon (2)
- kalmarek (2)
- araujoms (2)
- Amuwa (1)
- StefanKarpinski (1)
- rschwarz (1)
- ericphanson (1)
- lrnv (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 75 total
- Total dependent packages: 3
- Total dependent repositories: 0
- Total versions: 29
juliahub.com: COSMO
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
- Homepage: https://oxfordcontrol.github.io/COSMO.jl/stable
- Documentation: https://docs.juliahub.com/General/COSMO/stable/
- License: Apache-2.0
-
Latest release: 0.8.9
published over 1 year ago
Rankings
Dependencies
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite