CVXPY:嵌入 Python 的凸优化建模语言

数学 2026-11-09 14 阅读

CVXPY 是一个嵌入 Python 的凸优化建模语言,让用户按数学形式自然书写问题,而不必迁就求解器的标准形式。

这个工具是什么

CVXPY 是一个嵌入 Python 的凸优化建模语言,最初是斯坦福大学的研究项目,现由多个机构与国家的开发者共同维护,采用 Apache-2.0 许可证。它的定位是建模层而非求解器:用户按数学表达式书写目标函数与约束,CVXPY 负责将其转换为求解器可接受的形式,并调用后端求解器计算。README 说明它可建模凸优化问题、混合整数凸优化问题、几何规划、拟凸规划与非线性规划。CVXPY 依赖 Clarabel、SCS、OSQP 与 HiGHS 等开源求解器,其他求解器需另行安装。

核心能力

  • 按数学形式自然表达目标与约束,无需手工改写为求解器标准形式
  • 支持凸优化、混合整数凸优化、几何规划、拟凸规划与非线性规划建模
  • 求解后可直接读取变量最优值与约束的对偶变量值
  • 内置 Clarabel、SCS、OSQP、HiGHS 等开源求解器,其他求解器可按需另行安装

科研中的典型用法

  • 在最小二乘类问题中加入上下界等约束,直接写出目标函数并调用 solve 求解
  • 需要约束对应的对偶变量时,从 constraint.dual_value 读取拉格朗日乘子
  • 建模混合整数凸优化或几何规划问题,交由 CVXPY 转换后调用相应求解器

快速上手

可通过 pip install cvxpy 安装,也可用 conda install -c conda-forge cvxpy。依赖 Python >= 3.11、NumPy >= 2.0.0、SciPy >= 1.13.0,以及 Clarabel、OSQP、SCS、highspy、sparsediffpy 等。入门可参考官网教程、示例库与 API 参考;基本用法是定义 cp.Variable、构造目标与约束列表、建立 cp.Problem 后调用 solve()。

生态与相近工具

同领域还有面向不同建模风格与求解需求的工具,README 未逐一列举。CVXPY 自身不求解,而是依赖 Clarabel、SCS、OSQP、HiGHS 等开源求解器,其他求解器需单独安装。取舍时可考虑:若需要按数学形式建模并自动转换,可选 CVXPY;若需特定求解器或更底层控制,则直接使用相应求解器。

项目信息

  • 仓库:cvxpy/cvxpy
  • 星标:6,338 · 派生:1,214
  • 主要语言:C++
  • 许可证:Apache-2.0
  • 最近提交:2026-09-19
  • 项目主页:https://www.cvxpy.org

本文属于《学科研究工具知识库 · 数学》第 9 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

评论 共 0 条

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部