【问题标题】:lambda_sum_largest constraint is not DQCP in CVXPYlambda_sum_largest 约束不是 CVXPY 中的 DQCP
【发布时间】:2021-08-31 10:45:14
【问题描述】:

我在使用 DQCP 在 CVXPY 中设置约束时遇到问题。从我理解的文档中,我可以在表单中有一个约束

quasiconvex>=constant

所以,既然每个凸函数也是一个拟凸函数,那么我认为 lambda_sum_largest 也应该是拟凸函数,当用 .is_dqcp() 检查时它是 True。 但是像

这样的约束
(cp.lambda_sum_largest(A,1)>=2.0).is_dqcp()

不是。因此我很惊讶,我在这里错过了什么?

完整的(但很小的)代码在这里:

import cvxpy as cp
import numpy as np

lambdas = [-2.0,-1.0,1.0,2.0]

x = cp.Variable(4)
A = cp.bmat( np.diag([x[0], x[1], x[2], x[3]]) )

constraints  = [cp.lambda_sum_largest(A,1)>=lambdas[-1]]
problem = cp.Problem(cp.Minimize(cp.sum_squares(x)), constraints)

problem.solve(qcp=True)

【问题讨论】:

    标签: python cvxpy convex-optimization


    【解决方案1】:

    好吧,一个尴尬的错误,允许的约束不是

    quasiconvex>=constant
    

    但是

    quasiconvex<=constant
    

    【讨论】:

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