This question already has answers here:
Recommended library for linear programming in .Net? [closed]

(3个答案)


4年前关闭。




我在C#中有一个应用程序,我需要做一些优化计算,例如Excel Solver Add-in,一个选择当然是编写自己的求解器实现,但是我时间很短,所以我正在研究已经存在的库可以帮助我解决这个问题。

我一直在尝试使用Microsoft Solver Foundation,它看起来很整洁,很酷,但问题是它似乎不适用于我需要进行的那种计算。

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

因此,基本上我的问题是,您是否知道我可以为此目的使用的任何其他库,或者可以帮助自己做一个求解器的任何教程,或者有什么主意可以帮助我解决这个问题。

谢谢。

附加信息:

这是我需要计算的数据:

我有7个变量,让我们称它们为var1,var2,...,var7

这些变量的约束是:
  • 所有这些都必须为0
  • 所有变量的总和应等于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,几乎对它进行了建模,创建了处理目标公式运算的函数,但是当我尝试求解模型时,它总是失败,我认为这是因为操作的复杂性。

    无论如何,我只是想显示这些数据,以便您对需要实现的计算类型有一个了解。

    最佳答案

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

  • Extreme Optimization Numerical Libraries
  • Centerspace NMath.Net library
  • Visual Numerics library

  • 如果您为此目的找到了一个很好的非商业/开源库,请告诉我。

    关于c# - 如何在C#中实现Excel Solver功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2646447/

    10-10 19:00