谁能给我展示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求解器基础仅通过其内部点求解器支持线性编程和二次编程。对于此求解器,请参阅Tomas提到的SVM帖子。
MSF有一个通用的非线性规划求解器,Limited-Memory-BFGS,但是它不支持任何约束。该求解器还需要一个显式梯度函数。有关此求解器,请参阅:
Logistic regression in F# using MSF
Tomas提到的F#ODSL仅支持线性编程。我有一个QP扩展名,可以在codexplex上获得。
回到您的问题-使用线性约束(类似于fmincon
)优化f(x),我还没有看到任何具有此功能的免费库。 NMath.NET(商业)似乎只有一个。我尝试过使用它来解决高度非线性的优化问题,但对我而言不起作用。最后,我求助于在DotNumerics中实现的B-LBFGS。
我想您也会对以下SO问题感兴趣:
Open source alternative to MATLAB's fmincon function?
答案指向SciPy.optimize.cobyla
,它似乎类似于fmincon
。但是主要的信息是,对于您的特定问题,fmincon
可能太笼统了。您可以使用更具体的求解器,例如LBFGS或QP。同样,如果您的初始值不好,一般求解器有时也将不起作用。
关于c# - Solver Foundation与Matlab fmincon中的约束非线性优化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6318609/