python - CVXPY:使用两组不同格式的约束返回无
问题描述
我是 CVXPY 的新手。我一直在尝试解决一个简单的可行性问题。这是代码:
from cvxpy import *
import numpy as np
dim = np.shape(Bs[0])[1]
X = Variable(dim)
objective = Minimize(0)
constraintsA = [X.T * M * X + B * X + C == 0 for M, B, C in zip(Ms, Bs, Cs)]
constraintsB = [A * X - b == 0 for A, b in zip(As, bs)]
constraints = constraintsA + constraintsB
prob = Problem(objective, constraints)
result = prob.solve()
R = X.value
print R
下面,您可以找到输入矩阵:
Ms = [array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]]),
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]]),
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]])]
Bs = [array([[-18., 0., 0., 18., 0., 0.]]),
array([[ 0., 0., 0., 0., -36., 0.]]),
array([[ 0., 0., -18., 0., 0., -18.]])]
Cs = [270.0, 540.0, 810.0]
As = [array([[ 0., -1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., -1., 1.]]),
array([[-1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., -1., 1., 0.]]),
array([[-1., 0., 1., 0., 0., 0.],
[ 0., 0., 0., -1., 0., 1.]])]
bs = [array([[ 0],
[ 1.00000000e+01]]),
array([[ 20.],
[ 10.]]),
array([[ -2.00000000e+01],
[ 0]])]
只为 运行它constraintsA
,代码被执行并按预期返回结果向量。但是,当也考虑constraintsB
集合时,我的结果是None
. 有什么我可能搞砸的想法吗?非常感谢!
解决方案
推荐阅读
- go - 为什么 exec.Command.Start() 会挂在 darwin 上?
- angular - 在 nb 菜单项中使用 *ngIf
- python - 在 for 循环中附加 2d numpy 数组
- python - 删除特定条件熊猫的行(枚举)
- vue.js - PWA:在后台轮询数据
- cocoa - NSOutlineView:有时一行是不可编辑的(只是哔哔声)
- python - 如何从div内部提取文本
- wordpress - 电子商务。仅显示一个类别的添加到购物车
- hyperledger-fabric - 在超级账本结构 1.4.4 中跨多个网络使用对等节点
- csv - 如何在 Julia 中仅使用 CSV 加载特定列?