7

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

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

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

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

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

4

3 回答 3

4

另一个开源内点线性规划求解器是用 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

于 2012-01-09T10:04:39.973 回答
3

单纯形法和内点法都有它们的位置。一般来说,一种方法并不比另一种更好或更快,您会发现每种方法在不同类别的问题上表现更好。

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

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

祝你好运。

于 2011-06-09T01:23:19.380 回答
0

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

于 2020-06-28T15:41:30.077 回答