Opened 8 months ago
Last modified 4 weeks ago
#31962 new enhancement
Package cvxpy, add SDP backend
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage9.6 
Component:  linear programming  Keywords:  
Cc:  dimpase, yzh  Merged in:  
Authors:  Matthias Koeppe, ...  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/mkoeppe/package_cvxpy (Commits, GitHub, GitLab)  Commit:  050bde2bdba63cc6f5b58de1a3510928754aab02 
Dependencies:  Stopgaps: 
Description (last modified by )
We add cvxpy for disciplined convex programming and extensions.
 cvxpy (home · repo · releases · PyPI)
 It can call many backend solvers  including most that we currently have as MIP backends, so it may be suitable as a replacement for our homegrown backend code
 Promising route to add support for the HiGHS LP/MIP solvers via the scipy cython interface to their vendored HiGHS
 supports differentiable programming
See also cvxpylayers.
Requirements listed in cvxpy's setup.py:
python_requires='>=3.6', install_requires=["osqp >= 0.4.1", "ecos >= 2", "scs >= 1.1.6", "numpy >= 1.15", "scipy >= 1.1.0"],
So the new dependencies are:
 osqp (operator splitting quadratic program) (home · repo · PyPI)
 ecos (embedded conic solver) (repo · PyPI)
 SCS (splitting conic solver) (repo · PyPI)
In addition, osqp's requirements.txt lists:
numpy >= 1.7
, scipy >= 0.13.2
, qdldl
which adds:
Finally, qldlpython depends on pybind11 (already an SPKG)
Change History (21)
comment:1 Changed 8 months ago by
 Description modified (diff)
comment:2 Changed 8 months ago by
 Branch set to u/mkoeppe/package_cvxpy
comment:3 Changed 8 months ago by
 Commit set to dd94452e7d030ee49e1551f4ea0914020f7188ff
 Description modified (diff)
comment:4 followup: ↓ 6 Changed 8 months ago by
can we get some examples/tests using it, too?
comment:5 Changed 8 months ago by
 Description modified (diff)
comment:6 in reply to: ↑ 4 Changed 8 months ago by
comment:7 Changed 6 months ago by
 Milestone changed from sage9.4 to sage9.5
comment:8 Changed 6 months ago by
 Summary changed from Package cvxpy to Package cvxpy, add SDP backend
comment:9 Changed 6 months ago by
 Commit changed from dd94452e7d030ee49e1551f4ea0914020f7188ff to de29f81e036d0638bb4b07bb41d434659dcdd545
comment:10 Changed 6 months ago by
 Commit changed from de29f81e036d0638bb4b07bb41d434659dcdd545 to 9391d0aa72a7cca4169fef8efdcfc60521d6caaf
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
055838b  build/pkgs/cvxpy: New pip package

001cba1  sage.numerical.backends.generic_sdp_backend.{get_solver,default_sdp_solver}: Refactor through new function resolve_sdp_solver

22367cb  sage.numerical.backends.cvxpy_sdp_backend: New

9391d0a  Replace CVXPYSDPBackendFactory by functools.partial

comment:11 Changed 6 months ago by
 Commit changed from 9391d0aa72a7cca4169fef8efdcfc60521d6caaf to 8afe7b3805b0ca389935b0b40b5633bf1b10e3fe
Branch pushed to git repo; I updated commit sha1. New commits:
8afe7b3  CVXPYSDPBackend.cvxpy_problem: New

comment:12 Changed 6 months ago by
 Commit changed from 8afe7b3805b0ca389935b0b40b5633bf1b10e3fe to 19c707a492046098ef653ab4281faf8e266570b8
comment:13 Changed 6 months ago by
 Commit changed from 19c707a492046098ef653ab4281faf8e266570b8 to e18f72ca6d9cdeef7b07fbb2a6bbcd85e02ac2f1
Branch pushed to git repo; I updated commit sha1. New commits:
e18f72c  CVXPYSDPBackend: Add more stubs

comment:15 Changed 6 months ago by
 Commit changed from e18f72ca6d9cdeef7b07fbb2a6bbcd85e02ac2f1 to 0ec2ccf3cb7adb93bad48edc1703df43aa31756e
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
92dd31f  MatrixSDPBackend._update_problem: New

1850188  build/pkgs/cvxpy: New pip package

7aae0be  sage.numerical.backends.generic_sdp_backend.{get_solver,default_sdp_solver}: Refactor through new function resolve_sdp_solver

0ec2ccf  CVXPYSDPBackend.cvxpy_problem: New

comment:16 Changed 6 months ago by
 Description modified (diff)
comment:17 Changed 6 months ago by
 Commit changed from 0ec2ccf3cb7adb93bad48edc1703df43aa31756e to 050bde2bdba63cc6f5b58de1a3510928754aab02
Branch pushed to git repo; I updated commit sha1. New commits:
050bde2  CVXPYSDPBackend.get_variable_value, dual_value: Implement

comment:18 Changed 7 weeks ago by
 Milestone changed from sage9.5 to sage9.6
comment:19 Changed 6 weeks ago by
 Description modified (diff)
comment:20 Changed 6 weeks ago by
 Description modified (diff)
comment:21 Changed 4 weeks ago by
 Description modified (diff)
New commits:
build/pkgs/cvxpy: New pip package