All Projects → oxfordcontrol → Cosmo.jl

oxfordcontrol / Cosmo.jl

Licence: apache-2.0
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Cosmo.jl

CSDP.jl
Julia Wrapper for CSDP (https://projects.coin-or.org/Csdp/)
Stars: ✭ 18 (-87.92%)
Mutual labels:  optimization, solver
qpmad
ROS-compatible Eigen-based Goldfarb-Idnani quadratic programming solver
Stars: ✭ 41 (-72.48%)
Mutual labels:  optimization, solver
ProxSDP.jl
Semidefinite programming optimization solver
Stars: ✭ 69 (-53.69%)
Mutual labels:  optimization, solver
Optaplanner
AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
Stars: ✭ 2,454 (+1546.98%)
Mutual labels:  solver, optimization
Osqp
The Operator Splitting QP Solver
Stars: ✭ 689 (+362.42%)
Mutual labels:  solver, optimization
cplex-example
Solving a TSP with the CPLEX C++ API.
Stars: ✭ 40 (-73.15%)
Mutual labels:  optimization, solver
Totsu
First-order conic solver for convex optimization problems
Stars: ✭ 18 (-87.92%)
Mutual labels:  optimization, solver
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+523.49%)
Mutual labels:  optimization, solver
Cppnumericalsolvers
a lightweight C++17 library of numerical optimization methods for nonlinear functions (Including L-BFGS-B for TensorFlow)
Stars: ✭ 638 (+328.19%)
Mutual labels:  solver, optimization
Vroom
Vehicle Routing Open-source Optimization Machine
Stars: ✭ 533 (+257.72%)
Mutual labels:  solver, optimization
Angler
Frequency-domain photonic simulation and inverse design optimization for linear and nonlinear devices
Stars: ✭ 75 (-49.66%)
Mutual labels:  solver, optimization
Prioritizr
Systematic conservation prioritization in R
Stars: ✭ 62 (-58.39%)
Mutual labels:  solver, optimization
Hiop
HPC solver for nonlinear optimization problems
Stars: ✭ 75 (-49.66%)
Mutual labels:  solver, optimization
Optimization Python
General optimization (LP, MIP, QP, continuous and discrete optimization etc.) using Python
Stars: ✭ 133 (-10.74%)
Mutual labels:  optimization
Soot
Soot - A Java optimization framework
Stars: ✭ 2,049 (+1275.17%)
Mutual labels:  optimization
Search Engine Optimization
🔍 A helpful checklist/collection of Search Engine Optimization (SEO) tips and techniques.
Stars: ✭ 1,798 (+1106.71%)
Mutual labels:  optimization
Nnvm
No description or website provided.
Stars: ✭ 1,639 (+1000%)
Mutual labels:  optimization
Fantasy Basketball
Scraping statistics, predicting NBA player performance with neural networks and boosting algorithms, and optimising lineups for Draft Kings with genetic algorithm. Capstone Project for Machine Learning Engineer Nanodegree by Udacity.
Stars: ✭ 146 (-2.01%)
Mutual labels:  optimization
Ltecleanerfoss
The last Android cleaner you'll ever need!
Stars: ✭ 141 (-5.37%)
Mutual labels:  optimization
Sigpy
Python package for signal processing, with emphasis on iterative methods
Stars: ✭ 132 (-11.41%)
Mutual labels:  optimization

FeaturesInstallationNewsCitingContributing

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, e.g. 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 added via the Julia package manager (type ]): pkg> add COSMO

Citing

If you find COSMO useful in your project, we kindly request that you cite the following paper:

@InProceedings{garstka_2019,
  author        = {Michael Garstka and Mark Cannon and Paul Goulart},
  title         = {{COSMO}: A conic operator splitting method for large convex problems},
  booktitle     = {European Control Conference},
  year          = {2019},
  location      = {Naples, Italy},
  doi            = {10.23919/ECC.2019.8796161},
  eprint        = {1901.10887},
  url           = {https://arxiv.org/abs/1901.10887},
  archiveprefix = {arXiv},
  keywords      = {Mathematics - Optimization and Control},
  primaryclass  = {math.OC},
}

A preprint can be downloaded here.

Contributing

  • Contributions are always welcome. Our style guide can be found here.
  • Current issues, tasks and future ideas are listed in Issues. 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!

Python - Interface

COSMO can also 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].