我使用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约束?
发布于 2021-03-06 13:43:15
我通过它的Cvxpy接口使用Mosek,也遇到了同样的问题。
我的假设是约束的排序Mosek的不可行性报告与Cvxpy中的完全相同,因为:
所以,结论就是假设。
请注意:这个结论是基于相当小的测试集+对cvxpy代码库的幼稚理解,所以它可能是错误的。
https://stackoverflow.com/questions/60434219
复制相似问题