任何人都可以向我展示 Microsoft Solver foundation 3.0 中约束非线性优化的示例或评论吗?与 Matlab 的 fmincon 相比如何?或者是否有更好的 .net 库用于约束非线性优化?谢谢,
最佳答案
2012 年 2 月 25 日的重要更新:
MSF 3.1 现在通过其 NelderMeadSolver 求解器支持使用有界变量的非线性优化:http://msdn.microsoft.com/en-us/library/hh404037(v=vs.93).aspx
对于一般的线性约束,Microsoft solver foundation 仅通过其内点求解器支持线性规划和二次规划。对于此求解器,请参阅 Tomas 提到的 SVM 帖子。
MSF 有一个通用的非线性规划求解器 Limited-Memory-BFGS,但它不支持任何约束。该求解器还需要一个显式梯度函数。对于此求解器,请参阅:
Logistic regression in F# using MSF
Tomas提到的F# ODSL只支持线性规划。我有它的 QP 扩展,可在 codexplex 获得.
回到您的问题 - 使用线性约束优化 f(x)(类似于 fmincon
),我还没有看到任何具有此功能的免费库。 NMath.NET (商业)似乎有一个。我尝试用它来解决高度非线性优化问题,但它对我不起作用。最后我求助于在 DotNumerics 中实现的 B-LBFGS。
我想您也会对以下 SO 问题感兴趣:
Open source alternative to MATLAB's fmincon function?
答案指向SciPy. optimize. cobyla
,这似乎是类似于fmincon
的东西。但主要信息是,对于您的特定问题,fmincon
可能过于笼统。您可以使用更具体的求解器,例如LBFGS 或 QP。如果您的初始值不好,一般求解器有时也不起作用。
关于c# - Microsoft Solver foundation 与 Matlab fmincon 中的约束非线性优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318609/