CVXPY 文档位于 cvxpy.org。
我们正在 Discord 上建立一个 CVXPY 社区。加入对话!对于问题和长篇讨论,请使用 Github 问题和 Github 讨论。
内容
CVXPY 是一种用于解决凸优化问题的 Python 嵌入式建模语言。它允许您以遵循数学的自然方式表达您的问题,而不是采用求解器要求的限制性标准形式。
例如,以下代码解决了变量受下限和上限约束的最小二乘问题:
import cvxpy as cp
import numpy
# Problem data.
m = 30
n = 20
numpy . random . seed ( 1 )
A = numpy . random . randn ( m , n )
b = numpy . 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 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 不是求解器。它依赖于开源求解器 Clarabel、SCS 和 OSQP。可以使用其他求解器,但必须单独安装。
CVXPY 最初是斯坦福大学的一个研究项目。它现在由许多机构和国家的许多人开发。
CVXPY 可在 PyPI 上使用,并且可以通过以下方式安装
pip install cvxpy
CVXPY 也可以与 conda 一起安装,使用
conda install -c conda-forge cvxpy
CVXPY 具有以下依赖项:
有关详细说明,请参阅安装指南。
要开始使用 CVXPY,请查看以下内容:
我们鼓励您使用 Github 跟踪器报告问题。我们欢迎各种问题,特别是与正确性、文档、性能和功能请求相关的问题。
对于基本使用问题(例如,“为什么我的问题不是 DCP?”),请改用 StackOverflow。
CVXPY 社区由来自世界各地的研究人员、数据科学家、软件工程师和学生组成。我们欢迎您的加入!
请在与 CVXPY 社区的沟通中保持尊重,并确保遵守我们的行为准则。
我们感谢所有的贡献。您无需成为凸优化方面的专家即可提供帮助。
您应该首先从源代码安装 CVXPY。以下是一些立即开始贡献的简单方法:
如果您想向我们的库添加新示例或实现新功能,请先与我们联系,以确保您的优先事项与我们的一致。
贡献应作为拉取请求提交。 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。
有关团队和流程的更多信息,请参阅我们的治理文档。
如果您使用 CVXPY 进行学术工作,我们鼓励您引用我们的论文。如果您在工业中使用 CVXPY,我们也很乐意通过 Discord 或电子邮件收到您的来信。