cvxpy

A Python-embedded modeling language for convex optimization problems.

Github星跟蹤圖

CVXPY

Build Status
Build status

Join the CVXPY mailing list, and use the issue tracker and StackOverflow for the best support.

The CVXPY documentation is at cvxpy.org.

CVXPY is a Python-embedded modeling language for convex optimization problems. It allows you to express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers.

For example, the following code solves a least-squares problem where the variable is constrained by lower and upper bounds:

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 is not a solver. It relies upon the open source solvers
ECOS, SCS,
and OSQP. Additional solvers are
available,
but must be installed separately.

CVXPY began as a Stanford University research project. It is now developed by
many people, across many institutions and countries.

Installation

CVXPY is available on pip, and can be installed with

pip install cvxpy

CVXPY has the following dependencies:

  • Python 3.5, 3.6, or 3.7.
  • multiprocess
  • OSQP
  • ECOS >= 2
  • SCS >= 1.1.3
  • NumPy >= 1.15
  • SciPy >= 1.1.0

For detailed instructions, see the installation
guide
.

Python 2.7 end of life: The CVXPY development team will stop supporting python 2.7 and python 3.4, starting when CVXPY version 1.1 is released.

Getting started

To get started with CVXPY, check out the following:

Issues

We encourage you to report issues using the Github tracker. We welcome all kinds of issues, especially those related to correctness, documentation, performance, and feature requests.

For basic usage questions (e.g., "Why isn't my problem DCP?"), please use StackOverflow instead.

Communication

To communicate with the CVXPY developer community, create a Github issue or use the CVXPY mailing list. Please be respectful in your communications with the CVXPY community, and make sure to abide by our code of conduct.

Contributing

We appreciate all contributions. You don't need to be an expert in convex
optimization to help out.

You should first
install CVXPY from source.
Here are some simple ways to start contributing immediately:

If you'd like to add a new example to our library, or implement a new feature,
please get in touch with us first to make sure that your priorities align with
ours.

Contributions should be submitted as pull requests.
A member of the CVXPY development team will review the pull request and guide
you through the contributing process.

Before starting work on your contribution, please read the contributing guide.

Citing

If you use CVXPY for academic work, we encourage you to cite our papers. If you use CVXPY in industry, we'd love to hear from you as well; feel free to reach out to the developers directly.

Team

CVXPY is a community project, built from the contributions of many
researchers and engineers.

CVXPY is developed and maintained by Steven
Diamond
, Akshay
Agrawal
, and Riley Murray, with many others contributing
significantly. A non-exhaustive list of people who have shaped CVXPY over the
years includes Stephen Boyd, Eric Chu, Robin Verschueren, Bartolomeo Stellato,
Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, and Chris
Dembia.

主要指標

概覽
名稱與所有者cvxpy/cvxpy
主編程語言C++
編程語言Shell (語言數: 8)
平台
許可證Apache License 2.0
所有者活动
創建於2013-07-01 23:48:58
推送於2025-04-15 15:40:00
最后一次提交2025-04-15 08:40:00
發布數144
最新版本名稱v1.6.5 (發布於 )
第一版名稱v0.2.1 (發布於 )
用户参与
星數5.7k
關注者數128
派生數1.1k
提交數3.6k
已啟用問題?
問題數1521
打開的問題數234
拉請求數907
打開的拉請求數21
關閉的拉請求數174
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?