【发布时间】: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