首页 > 解决方案 > 如何在 CVXPY 中实现这个线性规划问题?

问题描述

我想在 CVXPY 中实现这个线性规划问题:

问题

其中排序的是一个排序统计量,其中英石z表示所涉及的变量;b表示 中的欧几里得单位球rp。问题表述来自一篇论文,其中还指出:

该问题相当于最小化前 n 个变量的总和,这是一个凸变量,可以通过现成的求解器(例如 CVX)来求解。

所以我在他们的主页上修改了 CVXPY 示例,这是我想出的代码:

beta_ = cp.Variable(shape=X.shape[1])

constraints = [cp.norm(beta_, 2) <= 1]

obj = cp.Minimize(cp.sum_largest((-X @ beta_) * y, n))

prob = cp.Problem(obj, constraints)
prob.solve()  # Returns the optimal value.
print("status:", prob.status)
print("optimal value", prob.value)
print("optimal var", beta_.value)

Xy分别是一个 numpy 矩阵和一个 numpy 向量。问题是这段代码打印:

status: unbounded
optimal value -inf
optimal var None

我不是代数或线性规划方面的专家,所以我不知道如何为这个问题找到一个有意义的解决方案。我的代码错了吗?或者它真的是一个没有解决方案的无限问题?

标签: pythonlinear-programmingcvxpyconvex-optimization

解决方案


推荐阅读