如何在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的想法。

下面是一些包含不同种类的多元优化函数的商业.NET库,可以替代Excel的求解器:

  • 极端优化数字图书馆
  • 中心空间NMath.Net库
  • Visual Numerics库

如果你为此find一个好的非商业/开源库,请告诉我。