6

c++ 中有没有用于带约束的顺序非线性优化的好的库?

我正在寻找不等式约束和/或上限和下限。

对此已经有一个stackoverflow问题,但并非所有人都有限制。

我知道NLopt,但它不适用于我的具体问题。还有其他人吗?


如果其他人有兴趣,我终于找到了我正在寻找的解决方案lpOpt

4

1 回答 1

7

您可以尝试的一种 SQP 算法是DONLP2。它最初是用 Fortran 77 编写的,但也有一个 ANSI C 版本。它使用密集代数,因此它主要适用于中小型问题。它是免费的学术用途。您需要直接向作者索取代码,按照链接中的说明进行操作。

更新 顺序二次规划只是解决具有约束的非线性目标函数的一种方法,还有例如内点方法。一个非常好的应用内点方法的大型开源 C++ 替代方案是Ipopt(已在另一个答案中提到)。还有例如商业包KNITRO。如果你不能或不想提供目标函数和约束梯度,你也可以看看 COBYLA2,它的 C 版本可以在这里下载。

如需更多灵感,您还可以参考优化软件决策树,其中列出了适用于各种不同问题的不同优化代码。

于 2012-07-11T09:09:19.967 回答