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 或電子郵件收到您的來信。