【问题标题】:Implementions of "Interior Point Method" to solve LP (and QP)解决LP(和QP)的“内点法”的实现
【发布时间】:2011-08-22 14:04:17
【问题描述】:

我想看看 IPM 的几个实现。首选语言是 C/C++、Java 或任何脚本语言,如 python、perl。其他的也很好。

我正在寻找可以帮助我的好资源,

  1. 优化技术基础,
  2. 内点法的基础知识及其与其他技术的基础区别,
  3. IPM 类型,
  4. 算法细节,以及
  5. 示例实现。

我对此感兴趣,这是我项目的一部分,我将使用这些想法/逻辑来求解线性或二次方程的系统。

如果您对上述资源有任何信息,请告诉我。

【问题讨论】:

  • 单纯形有什么问题?据我所知,它仍然比任何 IPM 更快地解决线性方程组?
  • Simplex 也可以解决,但根据 Boyd 的凸优化书需要时间。所以,现在对 IPM 很感兴趣。
  • @willem,对于解决非常稀疏的 LP 问题,内点法比单纯形法更有效。

标签: language-agnostic mathematical-optimization solver linear-programming


【解决方案1】:

另一个开源的内点线性规划求解器是用 C 语言编写的 GLPK: http://www.gnu.org/software/glpk/http://en.wikibooks.org/wiki/GLPK

Bob Vanderbei 的线性规划书 (http://www.princeton.edu/~rvdb/LPbook/) 是一本很好的书,用于解释二次规划中内点算法的使用。引用的网站也有软件链接,但它似乎不是“商业质量”软件。 Vanderbei 还拥有 LOQO,这是一种更工业化的二次规划内点代码 (http://www.princeton.edu/~rvdb/ps/loqo5.pdf)。最近关于内点qp的另一个想法是:http://www-personal.umich.edu/~murty/Grav-QP.pdf

【讨论】:

    【解决方案2】:

    单纯形法和内点法都有它们的位置。一个不是更好或更快 一般来说,你会发现每种方法在不同的情况下表现更好 问题的类别。

    在代码方面,开源 Coin-OR 项目Clp 具有用 C++ 实现的 Simplex、Dual Simplex 和 Internal Point 方法。

    但是,如果您只是想求解线性或二次方程组 形式 f(x) = 0,那么这根本不是你想要的。如果你想要的系统是 线性,那么您需要了解直接或迭代线性求解器。如果问题 是非线性的,你应该研究一下牛顿法或准牛顿法。

    祝你好运。

    【讨论】:

      【解决方案3】:

      首先,不要比较单纯形法和内点法。他们有不同的方法来解决问题。单纯形法用于最大化或最小化函数,而内点法用于确定给定函数内的所有可能点,这些点通过添加或减去满足具有 delta(非常小的值)的集合函数。您可以在此处找到有关它们的详细信息 [1]:http://www-personal.umich.edu/~murty/Grav-QP.pdf

      【讨论】:

        猜你喜欢
        • 2019-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多