【发布时间】:2019-12-01 17:48:19
【问题描述】:
我最近发现了 cvxpy 包,并尝试在一个非常基本的最小化问题上使用它。 但是在初始化我的凸问题时,我总是得到一个我无法解释的 DCP 错误。
x = Variable(m)
gamma = Parameter(value=1.0)
cost = sum_squares(np.transpose(A_shaped)*x - b_real) + gamma*norm(x,1)
obj = Minimize(cost)
constr = [np.transpose(A_shaped)* x <= b_real + abs(b_real * eps),
np.transpose(A_shaped)* x >= b_real - abs(b_real * eps)]
prob = Problem(obj, constr)
print(prob.is_dcp())
m、A_shape、b_real、eps等所有参数均已定义。
我的问题: 每当我在 cost 的声明中使用参数 gamma 并且我想解决它时,cvxpy 告诉我问题不遵循 DCP 规则,这是因为子表达式 param123 * norm124。 当我将 gamma 替换为 1.0 或将其删除时,我没有收到此错误,并且 prob.is_dcp() 返回 True,我可以' t 解释,因为我用值 1.0 初始化 gamma。
如果您需要更多信息,请随时询问并提前非常感谢!
【问题讨论】:
标签: python cvxpy convex-optimization