欢迎来到 CVXPY 1.6

凸优化,适合每个人。

我们正在建立一个CVXPY社区 在Discord上加入对话吧!

CVXPY 是一个开源的 Python 嵌入式建模语言,用于凸优化问题。它允许你以自然的方式表达你的问题,遵循数学逻辑,而不是求解器所需的限制性标准形式。

例如,以下代码解决了带有边界约束的最小二乘问题:

import cvxpy as cp
import numpy as np

# Problem data.
m = 30
n = 20
np.random.seed(1)
A = np.random.randn(m, n)
b = np.random.randn(m)

# Construct the problem.
x = cp.Variable(n)
objective = cp.Minimize(cp.sum_squares(A @ x - b))
constraints = [0 <= x, x <= 1]
prob = cp.Problem(objective, constraints)

# The optimal objective value is returned by `prob.solve()`.
result = prob.solve()
# The optimal value for x is stored in `x.value`.
print(x.value)
# The optimal Lagrange multiplier for a constraint is stored in
# `constraint.dual_value`.
print(constraints[0].dual_value)

这个简短的脚本是CVXPY功能的一个基本示例。除了凸编程,CVXPY还支持几何编程的泛化、混合整数凸程序以及拟凸程序。

要了解CVXPY的导览,请查看教程。对于机器学习、控制、金融等应用,浏览示例库。关于凸优化的背景知识,请参阅Boyd和Vandenberghe的书《凸优化》

CVXPY依赖于开源求解器ClarabelOSQPSCS。 支持其他求解器,但必须单独安装。

社区。

CVXPY社区由来自世界各地的研究人员、数据科学家、软件工程师和学生组成。我们欢迎您加入我们!

  • 要实时与CVXPY社区聊天,请加入我们的Discord

  • 要与CVXPY社区进行更长时间、深入的讨论,请使用Github讨论

  • 要分享功能请求和错误报告,请使用问题跟踪器

开发。

CVXPY 是一个社区项目,由许多研究人员和工程师的贡献构建而成。

CVXPY 由 Steven DiamondAkshay AgrawalRiley MurrayPhilipp SchieleBartolomeo StellatoParth Nobel 开发和维护,还有许多其他人做出了重要贡献。多年来对 CVXPY 产生影响的人员包括 Stephen Boyd、Eric Chu、Robin Verschueren、Jaehyun Park、Enzo Busseti、AJ Friend、Judson Wilson、Chris Dembia 和 William Zhang。

我们感谢所有的贡献。要参与进来,请查看我们的贡献指南并加入我们在Discord上的讨论。

新闻。

CVXPY 1.6 引入了与 NumPy ndarrays 类似的 API 的 N 维表达式。 这个新功能非常实验性,因为只支持 CVXPY 的一小部分原子操作。 此外,版本 1.6 还引入了变量的稀疏属性, 一个新的 HiGHS 求解器接口,用于(混合整数)线性规划和二次规划, 以及对 Python 3.13 的支持。最后,CVXPY 团队更新了文档网站, 使用基于 Sphinx Immaterial 的现代主题。