首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CVXPY与MOSEK求解器:我如何找到对应于Mosek“索引”的约束?

CVXPY与MOSEK求解器:我如何找到对应于Mosek“索引”的约束?
EN

Stack Overflow用户
提问于 2020-02-27 21:22:07
回答 1查看 271关注 0票数 1

我使用MOSEK作为求解器,在cvxpy中求解SDP。我的问题是不可行的,而MOSEK有一个很好的特性,它提供了一个“不可行性报告”。在我的例子中,报告如下所示:

代码语言:javascript
复制
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约束?

EN

回答 1

Stack Overflow用户

发布于 2021-03-06 13:43:15

我通过它的Cvxpy接口使用Mosek,也遇到了同样的问题。

我的假设是约束的排序Mosek的不可行性报告与Cvxpy中的完全相同,因为:

  1. 我已经在两个样本的不可行问题上测试了它(即,先验地知道哪些约束导致了不可行),并发现假设成立。

  1. 我在Cvxpy代码库中快速查看了cvxpy到Mosek的转换代码,发现cvxpy不会改变约束顺序。

所以,结论就是假设。

请注意:这个结论是基于相当小的测试集+对cvxpy代码库的幼稚理解,所以它可能是错误的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60434219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档