2010-04-15 77 views
5

我在C#中有一个应用程序,我需要做一些优化计算,像Excel Solver插件一样,一个选项当然是写我自己的求解器实现,但我有点时间不够,所以我调查已经存在的可以帮助我的图书馆。如何在C#中实现Excel求解器功能?

我一直在尝试Microsoft Solver Foundation,它看起来非常整齐,很酷,问题在于它似乎不适用于我需要做的那种计算。

在这个问题的最后,我添加了关于我需要执行和优化的计算的信息。

所以基本上我的问题是,如果你们中的任何一个知道我可以用于这个目的的任何其他库,或者任何可以帮助我做自己的求解器的教程,或者任何让我带头解决这个问题的想法。

谢谢。

附加信息:

这是我需要计算的数据:

我有7个变量,让我们称他们为VAR1,VAR2,...,var7

的约束这些变量是:

  • 所有这些需要是0 <的Varn = < = 0.5(其中,n是数Ò F中的变量)
  • 所有变量的总和应等于1

的目标是最大化目标公式,在Excel中看起来像这样:

(MMULT(TRANSPOSE(L26:L32),M14:M20))/(SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32)))

范围那你在这个公式中看到,L26:L32实际上是具有上面变量var1,var2,...,varn的范围。

M14:M20和M4:S10是我从不同来源获得的数据的范围,有更多可能的十进制值。我之前说过,我使用Microsoft Solver Foundation,我用它来模拟几乎所有东西,我创建了处理目标公式操作的函数,但是当我试图解决模型时总是失败,我认为这是因为操作的复杂性。

在任何情况下,我只是想显示这些数据,以便您可以了解我需要实现的计算类型。

回答

相关问题