Open mkoeppe opened 3 years ago
Description changed:
---
+++
@@ -6,7 +6,31 @@
with differentiable programming -
https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients
+(see also https://github.com/cvxgrp/cvxpylayers)
-https://github.com/cvxgrp/cvxpylayers
+https://github.com/cvxpy/cvxpy/blob/master/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"],
+```
+
+osqp: https://github.com/osqp/osqp-python/blob/master/requirements.txt
+
+```
+numpy >= 1.7
+scipy >= 0.13.2
+qdldl
+```
+
+qdldl: depends on pybind11
+
+ecos: https://github.com/embotech/ecos-python
+
+scs: https://github.com/bodono/scs-python
Branch: u/mkoeppe/package_cvxpy
Description changed:
---
+++
@@ -1,36 +1,52 @@
-... for disciplined convex programming and extensions
+We add cvxpy for disciplined convex programming and extensions.
-https://www.cvxpy.org/index.html
+- cvxpy ([home](https://www.cvxpy.org/)
+ · [repo](https://github.com/cvxpy/cvxpy)
+ · [PyPI](https://pypi.org/project/cvxpy/))
+- can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver)
+- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
-with many backend solvers - https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver
+See also [cvxpyplayers](https://github.com/cvxgrp/cvxpylayers).
-with differentiable programming -
-https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients
-(see also https://github.com/cvxgrp/cvxpylayers)
-
-https://github.com/cvxpy/cvxpy/blob/master/setup.py:
+Requirements listed in
+cvxpy's [setup.py](https://github.com/cvxpy/cvxpy/blob/master/setup.py):
-osqp: https://github.com/osqp/osqp-python/blob/master/requirements.txt +So the new dependencies are:
- -numpy >= 1.7 -scipy >= 0.13.2 -qdldl -
+- osqp (operator splitting quadratic program)
-qdldl: depends on pybind11
+In addition, osqp's requirements.txt lists:
+numpy >= 1.7
, scipy >= 0.13.2
, qdldl
-ecos: https://github.com/embotech/ecos-python +which adds:
-scs: https://github.com/bodono/scs-python +- qldl-python (interface
+Finally, qldl-python depends on pybind11:
+- pybind11 (seamless operability between C++11 and Python)
can we get some examples/tests using it, too?
Description changed:
---
+++
@@ -43,10 +43,6 @@
([repo](https://github.com/osqp/qdldl-python)
· [PyPI](https://pypi.org/project/qldl/))
-Finally, qldl-python depends on pybind11:
+Finally, qldl-python depends on pybind11 (already an SPKG)
-- pybind11 (seamless operability between C++11 and Python)
- ([repo](https://github.com/pybind/pybind11)
- · [PyPI](https://pypi.org/project/pybind11/)
- · [docs](https://pybind11.readthedocs.io/))
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 |
Branch pushed to git repo; I updated commit sha1. New commits:
8afe7b3 | CVXPYSDPBackend.cvxpy_problem: New |
Branch pushed to git repo; I updated commit sha1. New commits:
e18f72c | CVXPYSDPBackend: Add more stubs |
Author: Matthias Koeppe, ...
Ready for a look by an SDP expert...
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 |
Description changed:
---
+++
@@ -6,7 +6,7 @@
- can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver)
- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
-See also [cvxpyplayers](https://github.com/cvxgrp/cvxpylayers).
+See also [cvxpylayers](https://github.com/cvxgrp/cvxpylayers).
Requirements listed in
cvxpy's [setup.py](https://github.com/cvxpy/cvxpy/blob/master/setup.py):
Branch pushed to git repo; I updated commit sha1. New commits:
050bde2 | CVXPYSDPBackend.get_variable_value, dual_value: Implement |
Description changed:
---
+++
@@ -2,6 +2,7 @@
- cvxpy ([home](https://www.cvxpy.org/)
· [repo](https://github.com/cvxpy/cvxpy)
+ · [releases](https://github.com/cvxpy/cvxpy/releases)
· [PyPI](https://pypi.org/project/cvxpy/))
- can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver)
- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
Description changed:
---
+++
@@ -4,7 +4,7 @@
· [repo](https://github.com/cvxpy/cvxpy)
· [releases](https://github.com/cvxpy/cvxpy/releases)
· [PyPI](https://pypi.org/project/cvxpy/))
-- can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver)
+- It can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver) -- including most that we currently have as MIP backends, so it may be suitable as a replacement for our homegrown backend code
- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
See also [cvxpylayers](https://github.com/cvxgrp/cvxpylayers).
Description changed:
---
+++
@@ -5,6 +5,7 @@
· [releases](https://github.com/cvxpy/cvxpy/releases)
· [PyPI](https://pypi.org/project/cvxpy/))
- It can call [many backend solvers](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver) -- 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](https://github.com/cvxpy/cvxpy/issues/1443) via the [scipy cython interface to their vendored HiGHS](https://github.com/scipy/scipy/issues/14455)
- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
See also [cvxpylayers](https://github.com/cvxgrp/cvxpylayers).
Description changed:
---
+++
@@ -47,4 +47,6 @@
Finally, qldl-python depends on pybind11 (already an SPKG)
+See also:
+- #33487 package cylp - needed for the CBC backend
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
14de5d0 | MatrixSDPBackend._update_problem: New |
9ba6aa3 | build/pkgs/cvxpy: New pip package |
bf78b23 | sage.numerical.backends.generic_sdp_backend.{get_solver,default_sdp_solver}: Refactor through new function resolve_sdp_solver |
5b51484 | CVXPYSDPBackend.cvxpy_problem: New |
c06f1d8 | CVXPYSDPBackend.get_variable_value, dual_value: Implement |
Branch pushed to git repo; I updated commit sha1. New commits:
0715207 | sage.numerical.backends.cvxpy_backend: New |
Here's a first, incomplete draft of CVXPYBackend
.
--- a/generic_backend.pyx
+++ b/generic_backend.pyx
@@ -1803,7 +1803,7 @@
if solver == "Cvxpy":
return CVXPYBackend()
if solver.startswith("Cvxpy/"):
- return CVXPYBackend(cvxpy_solver=solver[len("Cvxpy/")])
+ return CVXPYBackend(cvxpy_solver=solver[len("Cvxpy/"):])
Thanks
Description changed:
---
+++
@@ -48,5 +48,6 @@
Finally, qldl-python depends on pybind11 (already an SPKG)
See also:
-- #33487 package cylp - needed for the CBC backend
+- #33487 package cylp - needed for the CBC backend
+- #33493 package ortools - provides some more backends
Branch pushed to git repo; I updated commit sha1. New commits:
8712d0a | src/sage/numerical/backends/cvxpy_backend.pyx: Implement MixedIntegerLinearProgram(solver="CVXPY/SciPy/HiGHS") etc. |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
109922c | MatrixSDPBackend._update_problem: New |
94c6f67 | build/pkgs/cvxpy: New pip package |
a727933 | sage.numerical.backends.generic_sdp_backend.{get_solver,default_sdp_solver}: Refactor through new function resolve_sdp_solver |
472d55a | CVXPYSDPBackend.cvxpy_problem: New |
20e9151 | CVXPYSDPBackend.get_variable_value, dual_value: Implement |
372cb11 | sage.numerical.backends.cvxpy_backend: New |
73e30fb | src/sage/numerical/backends/cvxpy_backend.pyx: Implement MixedIntegerLinearProgram(solver="CVXPY/SciPy/HiGHS") etc. |
Branch pushed to git repo; I updated commit sha1. New commits:
e4fb13d | src/sage/numerical/backends/generic_backend.pyx: Make Cvxpy/cbc the default solver if available |
Dependencies: #33487
Description changed:
---
+++
@@ -1,4 +1,4 @@
-We add cvxpy for disciplined convex programming and extensions.
+We add `cvxpy` for disciplined convex programming and extensions.
- cvxpy ([home](https://www.cvxpy.org/)
· [repo](https://github.com/cvxpy/cvxpy)
@@ -8,9 +8,13 @@
- Promising route to [add support for the HiGHS LP/MIP solvers](https://github.com/cvxpy/cvxpy/issues/1443) via the [scipy cython interface to their vendored HiGHS](https://github.com/scipy/scipy/issues/14455)
- supports [differentiable programming](https://www.cvxpy.org/tutorial/advanced/index.html#sensitivity-analysis-and-gradients)
-See also [cvxpylayers](https://github.com/cvxgrp/cvxpylayers).
+As of this ticket:
+- we add `cvxpy` only as an optional "pip" package;
+- we add a new MIP backend and a new SDP backend;
+- when both `cvxpy` and `cylp` are installed, the solver `"CVXPY/CBC"` becomes the default (unless Gurobi or CPLEX are available).
-Requirements listed in
+
+Details about dependencies: Requirements listed in
cvxpy's [setup.py](https://github.com/cvxpy/cvxpy/blob/master/setup.py):
@@ -47,6 +51,8 @@
Finally, qldl-python depends on pybind11 (already an SPKG)
+See also cvxpylayers. + See also:
Description changed:
---
+++
@@ -57,3 +57,7 @@
- #33487 package cylp - needed for the CBC backend
- #33493 package ortools - provides some more backends
+Follow-ups:
+- Retire `sage_numerical_backends_coin`
+- #30644 upgrade `cbc`
+
34251 adds
cvxpy
and a MIP backend.Here we add:
See also:
26511 Meta-ticket: Use Python optimization interfaces: PuLP, Pyomo, cylp...
33487 package cylp - needed for the CBC backend
33493 package ortools - provides some more backends
Depends on #33487 Depends on #33504 Depends on #34251
CC: @dimpase @yuan-zhou @sheerluck @dcoudert @seblabbe
Component: linear programming
Work Issues: Rebase on #34251
Author: Matthias Koeppe, Andrey Belgorodski
Branch/Commit: u/mkoeppe/package_cvxpy @
c4462bc
Issue created by migration from https://trac.sagemath.org/ticket/31962