Tag: 求解器

在C ++中寻找优化algorithm来代替Excel Solver

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

Excel求解器不服从二进制约束

我在Excel中创build了一个与Solver结合使用的模型。 它大部分工作。 唯一的问题是,求解器并不是真的将被约束为二进制的单元格视为正确的。 当find解决scheme时,其中一些数字实际上是0.9999996,1.0000000003,0.0000017等等。 我在Mac OS X上使用Excel 2004。有什么想法?

如何在C#中实现Excel求解器function?

我在C#中有一个应用程序,我需要做一些优化计算,像Excel Solver插件一样,一个选项当然是写我自己的解算器实现,但我有点时间不够,所以我正在调查已经存在的图书馆可以帮助我。 我一直在尝试Microsoft Solver Foundation,它看起来非常整齐,很酷,问题在于它似乎不适用于我需要做的那种计算。 在这个问题的最后,我添加了有关我需要执行和优化的计算的信息。 所以基本上我的问题是,如果你们中的任何一个知道我可以用于这个目的的任何其他库,或者任何可以帮助我解决问题的教程,或者任何能够帮助我解决这个问题的想法。 谢谢。 附加信息: 这是我需要计算的数据: 我有7个variables,让我们叫他们var1,var2,…,var7 这些variables的约束是: 所有这些都需要是0 <= varn <= 0.5(其中n是variables的编号) 所有variables的总和应该等于1 目标是最大化目标公式,在Excel中看起来像这样: (MMULT(TRANSPOSE(L26:L32),M14:M20)) / (SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32))) 在此公式中看到的范围L26:L32实际上是具有上面variablesvar1,var2,…,varn的范围。 M14:M20和M4:S10是我从不同来源获得的数据范围,十进制值更可能。 正如我之前所说的,我使用的是Microsoft Solver Foundation,我用它来模拟几乎所有的东西,我创build了处理目标公式操作的函数,但是当我试图解决模型时总是失败,我认为这是因为操作的复杂性。 无论如何,我只是想显示这些数据,所以你可以有一个关于我需要实现的计算types的想法。