在目标函数上发生“问题不遵循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规则。
答案 0 :(得分:1)
严格的凸编程不允许两个凸表达式相乘。你有
(-mu_hat @ x)**2
和
cp.quad_form(x, covar)
都是凸的。也许您打算添加它们?您是如何提出cvxopt问题的?