C++中带约束的顺序非线性优化库

6

有没有关于带约束的顺序非线性优化的好的C++库?

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

已经有一个stackoverflow问题,但并非所有问题都有约束条件。

我知道NLopt,但它对我的特定问题效果不佳。还有其他的吗?


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

1个回答

7

你可以尝试使用一个SQP算法DONLP2。它最初是用Fortran 77编写的,但也有一个ANSI C版本。它使用密集代数,因此主要适用于小到中等规模的问题。它可供学术使用免费。您需要直接向作者请求代码,并按链接中的说明操作。

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

为了获得更多的灵感,您还可以查阅优化软件决策树,该决策树列出了适用于各种不同问题的不同优化代码。


2
@pyCthon,我注意到你自己找到了Ipopt。我已经根据你的发现编辑了我的回答,并且还包括了一些额外的链接。虽然有点晚,但我希望你仍然会觉得它们很有用。 - Anders Gustafsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接