加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python cvxopt求解器qp如何工作

发布时间:2020-12-20 11:45:18 所属栏目:Python 来源:网络整理
导读:我想使用cvxopt求解器qp并计算拉格朗日乘数,但我想知道它是如何“完全”的.我试图找到更多的信息,但没有太多关于cvxopt的信息.我正在研究这个示例问题,我不确定这些变量的含义以及它们如何提出解决方案. 这个例子是这样的: minimize: 2x_{1}^{2} + x_{2}^{2
我想使用cvxopt求解器qp并计算拉格朗日乘数,但我想知道它是如何“完全”的.我试图找到更多的信息,但没有太多关于cvxopt的信息.我正在研究这个示例问题,我不确定这些变量的含义以及它们如何提出解决方案.

这个例子是这样的:

minimize: 2x_{1}^{2} + x_{2}^{2} + x_{1}x_{2} + x_{1} + x_{2}
subject to: x_{1} >= 0
            x_{2} >= 0
            x_{1} + x_{2} = 1

可以通过使用来解决

Q = 2*matrix([ [2,.5],[.5,1] ])
p = matrix([1.0,1.0])
G = matrix([[-1.0,0.0],[0.0,-1.0]])
h = matrix([0.0,0.0])
A = matrix([1.0,1.0],(1,2))
b = matrix(1.0)
sol=solvers.qp(Q,p,G,h,A,b)
print(sol['x'])

解决方法

你应该看看这个:

Solving QP with CVXopt

为了解决二次规划问题,CVXopt接受一组矩阵,通常称为P,q,A和h.
您必须先将问题转换为CVXopt接受的特定形式(在链接中提到).
目的是找到一个最优解,(在你的例子中,拉格朗日乘数),它是矩阵’x’.

您“存储”解决方案的对象具有许多属性,其中一个属性是矩阵“x”,您可以打印或用于进一步计算.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读