【发布时间】:2020-02-27 13:22:06
【问题描述】:
我正在使用 MOSEK 作为求解器在 cvxpy 中求解 SDP。 我的问题是不可行的,MOSEK 有一个很好的功能,它提供了一个“不可行报告”。就我而言,报告如下所示:
MOSEK PRIMAL INFEASIBILITY REPORT.
Problem status: The problem is primal infeasible
The following constraints are involved in the primal infeasibility.
Index Name Lower bound Upper bound Dual lower Dual upper
37 none -0.000000e+00 0.000000e+00 2.647059e-03
406 none 3.000000e+02 0.000000e+00 6.250000e-04
2364 none -0.000000e+00 0.000000e+00 6.183824e-03
2980 none -8.100000e-01 0.000000e+00 1.000000e+00
3049 -0.000000e+00 -0.000000e+00 0.000000e+00 4.235294e+00
3052 -0.000000e+00 -0.000000e+00 0.000000e+00 1.000000e+00
我想了解此报告所指的约束条件。我在 cvxpy 中的约束列表仅包含 105 个约束,但其中许多是矩阵或向量约束。这就解释了为什么 MOSEK 报告的指数高达 3052。但是,很难找出报告中列出了我的哪些约束。
有没有办法找出 MOSEK 报告了我的哪些 cvxpy 约束?
【问题讨论】:
-
用松弛来放松你的约束,最小化松弛的总和,看看什么是非零的,这可能是最有效的。
-
这是个好主意,我会试试的:)
标签: optimization cvxpy mosek