为什么 MATLAB 的 quadprog 在我的问题上优于 MOSEK?

计算科学 matlab 二次规划
2021-12-18 12:29:50

对于我试图解决的问题,MOSEK 的二次程序求解器似乎比 MATLAB 的内点求解器慢 100 倍。

过去有没有人遇到过这种行为,或者可能猜到什么样的问题可能导致这种行为?

问题的形式是:

min 0.5xTQx+cTxs.t. Axb

具有比变量更多的线性约束。

1个回答

对于这种形式的问题,您应该使用 MOSEK 解决对偶问题。在某些情况下,这可以提供几个数量级的加速。MOSEK 针对更常见的情况进行了调整

min 0.5xTQx+cTxs.t. Ax=bx>=0

变量比约束多得多。

如果您通过 support@mosek.com 联系 MOSEK 支持并愿意向我们提供您的问题,那么我们很可能会告诉您应该进行哪些更改以获得更好的 MOSEK 性能。如果您不愿意提供任何信息(尺寸和密度)QA,其他特殊结构的问题)那么很难帮助你。