网页
综合
更新时间 2026-11-14 17:02:14
Changes to CVXPY -
自动蜘蛛
www.cvxpy.org
正文约 5132 字
⏱️ Help us benchmark CVXPY solvers! Contribute problems and results to the Solver Benchmarks project. Read our new paper on the CVXPY internals!
This page details changes made to CVXPY over time, in reverse chronological order. CVXPY’s project maintainers currently provide support for CVXPY 1.9.
This release is consistent with our semantic versioning guarantee. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.11 through 3.14. We will support CVXPY 1.8 with bugfixes while developing the next release.
This release introduces Disciplined Nonlinear Programming (DNLP), a ruleset that extends CVXPY beyond convex optimization to a broad class of nonlinear problems. DNLP canonicalizes nonsmooth functions in the same way as DCP, but allows for general smooth functions to be used otherwise.
To use DNLP, pass nlp=True to problem.solve(...). Supported NLP solvers include IPOPT, KNITRO, UNO, and COPT. See the DNLP tutorial for more details and examples.
Variable bounds can now be specified with expressions involving parameters, and also supports sparse bound arrays (when the variable itself is sparse). Many solvers now natively use variable bounds when they are provided.
quad_form(x, P) with a parametric PSD matrix P is now DPP-compliant on solvers that natively support quadratic objectives, allowing efficient re-solves when only P’s value changes.
New solver interface: PDCS
New tutorial: Performance tips
New page: Solver benchmarks
a ** x now works for positive constant a (canonicalized via exp(x * log(a)))
axis argument support for sum_largest and sum_smallest
N-D and tuple-axis support generalized across AxisAtom canonicalizers (max, norm_inf, log_sum_exp, cummax, …)
Support for zero-sized expressions
Parameter values may now be ±inf
Sparse Cholesky now uses QDLDL
This release is consistent with our semantic versioning guarantee. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.11 through 3.14. We will support CVXPY 1.8 with bugfixes while developing the 1.9 release. CVXPY 1.7 and older are no longer supported.
In this release we decided to adopt the minimum supported dependencies SPEC (Scientific Python Ecosystem Coordination). Notably, this means that we have dropped support for Python 3.10 and NumPy < 2.0.
This release introduces a new backend which can handle a very large number of parameters. To use the backend, please specify the argument canon_backend="COO" when solving a DPP problem.
CVXPY adds the open source solver HiGHS as its default mixed-integer linear programming (MILP) solver. HiGHS is a high performance serial and parallel solver for large scale sparse linear optimization problems developed by a team from the University of Edinburgh.
Four atoms, power, geo_mean, pnorm, and inv_prod now take a parameter approx that determines whether CVXPY canonicalizes the atom using many SOCs or one power cone. Feel free to set approx=False and report on whether it improves performance or accuracy!
CVXPY now supports logical boolean operations on boolean expressions via the cp.logic module. The new atoms are cp.logic.AND, cp.logic.OR, cp.logic.NOT, and cp.logic.XOR. See the Boolean logic operations tutorial for more details.
DPP with complex expressions
Support for ND matmul
Support for ND cumsum
unification of QP interface into quadratic conic pathway
solving chain context
New solver interface: MOREAU
New solver interface: KNITRO
New solver interface: COSMO
New solver interface: QPALM
Add num_iters to Gurobi conic solver solution info
This release is consistent with our semantic versioning guarantee. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.10 through 3.13. While working on the next release, we continue to officially support CVXPY 1.6.
CVXPY begins supporting GPU solvers in this release. The following solvers are supported:
SCS, with the cuDSS backend
MPAX runs on a GPU device specified by the JAX environment. MPAX, cuOpt, and CuClarabel are new solver interfaces that can be used with CVXPY. SCS has a new backend based on cuDSS that can be used through the existing SCS interface.
SciPy is deprecating the sparse matrix API in favor of sparse arrays. See the migration guide here. CVXPY 1.7 supports the new sparse array API but continues to support the sparse matrix API for backwards compatibility.
In CVXPY 1.6, we began raising warnings for the default reshape order being Fortran (‘F’), which differs from NumPy’s default order (‘C’). We also mentioned that we would raise an error if the order was not specified in CVXPY 1.7, and switch the default order to ‘C’ in CVXPY 1.8. However, we have decided to postpone these changes to CVXPY 2.0, the next major release. We believe that raising errors could break existing code and cause confusion among users. We encourage users to continue explicitly specifying the order when using reshape, vec, and flatten atoms.
Multiple attributes for variables and parameters
New QOCO solver interface
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。