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

时间:2012-07-10 21:53:15

标签: c++ nonlinear-optimization

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

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

已经有stackoverflow question,但并非所有人都有约束。

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


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

1 个答案:

答案 0 :(得分:6)

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

UPDATE Sequential Quadratic Programming只是解决带约束的非线性目标函数的一种方法,例如interior point methods。应用内点方法的一个非常好的大规模开源C ++替代方案是Ipopt(在另一个answer中已经提到过)。还有例如商业包KNITRO。如果您不能或不想提供目标函数和约束渐变,您还可以查看COBYLA2,其中可以下载C版本here

如需进一步的灵感,您还可以参考Decision Tree For Optimization Software,其中列出了适用于各种不同问题的不同优化代码。