因为Excel求解器在数千次优化(原因是它使用电子表格作为接口)上运行速度很慢,我试图实现一个类似的(特定于问题的)解决方案在C++中(使用Visual Studio 2010,在Win 7 64位平台上)。我会通过VBA中的Declare语句来包含DLL,并且已经有这方面的经验,所以这不是问题。在C++中寻找优化算法来替换Excel求解器
我的问题是最小化经验数据与非线性但平滑的目标函数之间的平方误差的总和,问题将包括非负性(X> = 0)或甚至是正性约束(例如X > = 0.00000001),其中X表示决策变量。
我正在寻找一个强大的,经过验证的实现。它可能是已建立图书馆的一部分。例如,我已经研究了ALGLIB存储的内容(请参阅http://www.alglib.net/optimization/),似乎只有其中一个算法接受有界约束。但我不知道它有什么价值,因此我试图收集一些意见。
或者,在另一个说明中,最好是用这样的基本约束来增强ALGLIB的Levenberg-Marquardt算法,例如通过拒绝不符合我的约束条件的每个中间解决方案? (猜测不会这样做,但仍值得问)