问题不符合CVXPY中的DCP规则

时间:2019-06-03 00:55:27

标签: mathematical-optimization python-3.7 cvxpy

在目标函数上发生“问题不遵循DCP规则”,但是从数学上讲这是凸的(我证明),当我将相同的问题应用于CVXOPT时,它就起作用了。

我不知道应该修改什么。

x = cp.Variable(data_length)
obj = cp.Minimize((-mu_hat @ x)**2*cp.quad_form(x, covar))

constraints = [sum(x) == 1,  x <= [bounds[i][1] for i in range(len(bounds))], x >= [bounds[i][0] for i in range(len(bounds))]]

prob = cp.Problem(obj, constraints)

prob.solve()

cvxpy.error.DCPError:问题未遵循DCP规则。

1 个答案:

答案 0 :(得分:1)

严格的凸编程不允许两个凸表达式相乘。你有

(-mu_hat @ x)**2

cp.quad_form(x, covar)

都是凸的。也许您打算添加它们?您是如何提出cvxopt问题的?