LP 与分离预言机的实现?

计算科学 线性规划
2021-12-21 13:49:38

我正在寻找用于线性编程的椭圆体算法的实现,因为我想到的应用程序具有表示为分离预言的约束。这种实现在任何地方都可用吗?

如果没有,是否有可能与分离预言一起使用的内点方法的实现?(我不确定 IPM 是否可以与分离预言机一起使用,因此这部分问题可能是无稽之谈。)

1个回答

这是一个更长的答案,总结了我之前的评论:

我不知道实际上可用于求解 LP 的任何椭圆体算法的实现。在 MATLAB 中编写椭圆方法的实现很容易,但是如果您尝试解决相对较小的测试问题(例如 NETLIB 的 afiro 测试问题,它有大约 50 个约束和 100 个变量),您将很快发现双精度算术不能胜任这项任务。问题是所涉及的矩阵变得非常病态。如果你想玩这个,我建议从 Chavatal 的线性规划教科书中的讨论开始(关于椭球方法的附录。)

LP 的内点方法假定给定约束并且不适用于分离预言,因此这是不可能的。但是,您可能对使用类似思想有效构建可行集的 LP 外松弛的内点切割平面方法感兴趣。

Boyd 和 Vandenberghe 有一套很好的关于切割平面方法的讲义

https://web.stanford.edu/class/ee392o/localization-methods.pdf

Goffin 和 Vial 的分析中心切割平面法 (ACCPM) 可能是此类方法中最著名的方法。请参阅代码和参考资料

http://www.maths.ed.ac.uk/~gondzio/software/accpm.html

虽然我推荐 ACPM,但您的问题也可以通过各种其他方法解决一般凸优化问题,例如次梯度下降、捆绑方法等。我的专长更多是 LP 和圆锥优化问题的内点方法,所以你可能会从在该领域工作的人那里得到更好和更新的答案。