python 问题不符合dcp rule_cvxpy - 尝试为正半定锥约束创建约束时,问题不遵循DCP规则 - 堆栈内存溢出...

我正在尝试在必须解决SDP的研究论文中编写一种方法。 其中一个约束条件是S成功或等于s * s ^ T。 其中S是NXN矩阵,而s是NX1矩阵。 s ^ T是s的转置。

我发现对于半定约束,正半定锥约束的两边都必须是平方矩阵和仿射。 这里S和s都是未知的,我们正在根据S和s最小化方程。 S曲率显示未知。

n = 2

np.random.seed(1)

Q = np.random.randn(n, n)

b = np.random.randn(n,1)

S = cp.Variable((n,n))

s = cp.Variable((n,1))

objective = cp.Minimize(cp.trace(Q@S) + 2*b.transpose()@s)

constraints = [cp.trace(S) - one.transpose()@s <= 0, S >> s@s.T]

prob = cp.Problem(objective, constraints)

print("Optimal value", prob.solve())

print("Optimal status", prob.status)

print(s.value) # A numpy ndarray.

这是我得到的错误

文件“ /home/mtech0/18CS60R64/cvxpy/SDP_test.py”,第45行,在打印中(“最佳值”,prob.solve())

文件“ /home/mtech0/18CS60R64/anaconda3/envs/mtp/lib/python3.6/site-packages/cvxpy/problems/problem.py”,第289行,输入solve return resolve_func(self,* args,** kwargs )

在_solve self._construct_chains(solver = solver,gp = gp)的第567行中,文件“ /home/mtech0/18CS60R64/anaconda3/envs/mtp/lib/python3.6/site-packages/cvxpy/problems/problem.py” )

_construct_chains中的文件“ /home/mtech0/18CS60R64/anaconda3/envs/mtp/lib/python3.6/site-packages/cvxpy/problems/problem.py”,行510

在“ _homestruct_chains Construct_intermediate_chain(自身,候选人_求解器,gp = gp)中的文件” /home/mtech0/18CS60R64/anaconda3/envs/mtp/lib/python3.6/site-packages/cvxpy/problems/problem.py”,行499

文件“ /home/mtech0/18CS60R64/anaconda3/envs/mtp/lib/python3.6/site-packages/cvxpy/reductions/solvers/intermediate_chain.py”,第56行,位于Construct_intermediate_chain提高DCPError(“问题不遵循DCP规则。” +附加)

DCPError:问题不遵循DCP规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值