欢迎来到 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依赖于开源求解器Clarabel、OSQP和SCS。 支持其他求解器,但必须单独安装。
社区。
CVXPY社区由来自世界各地的研究人员、数据科学家、软件工程师和学生组成。我们欢迎您加入我们!
开发。
CVXPY 是一个社区项目,由许多研究人员和工程师的贡献构建而成。
CVXPY 由 Steven Diamond、 Akshay Agrawal、 Riley Murray、 Philipp Schiele、 Bartolomeo Stellato 和 Parth 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 的现代主题。