【问题标题】:CVXPY Problem with DCP rules at param*normCVXPY 在 param*norm 的 DCP 规则问题
【发布时间】: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())

mA_shapeb_realeps等所有参数均已定义。

我的问题: 每当我在 cost 的声明中使用参数 gamma 并且我想解决它时,cvxpy 告诉我问题不遵循 DCP 规则,这是因为子表达式 param123 * norm124。 当我将 gamma 替换为 1.0 或将其删除时,我没有收到此错误,并且 prob.is_dcp() 返回 True,我可以' t 解释,因为我用值 1.0 初始化 gamma

如果您需要更多信息,请随时询问并提前非常感谢!

【问题讨论】:

    标签: python cvxpy convex-optimization


    【解决方案1】:

    好的,我找到了解决方案: 我只测试了将参数的参数 nonpos 设置为 False 但这没有帮助。我不知道的是,还有参数 nonneg,然后我将其设置为 True,现在 DCP 分析也返回 True

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多