我在C#中有一个应用程序,我需要做一些优化计算,就像Excel Solver Add-in一样,一个选项肯定是编写我自己的求解器实现,但是我有点时间,所以我'我正在研究已经存在的图书馆,可以帮助我解决这个问题。
我一直在尝试Microsoft Solver Foundation,这看起来非常整洁和酷,问题是它似乎不能用于我需要做的计算。
在这个问题的最后,我正在添加有关我需要执行和优化的计算的信息。
所以基本上我的问题是,如果你们中的任何人知道我可以用于此目的的任何其他库,或任何可以帮助我自己的解算器的教程,或任何能让我领导解决这个问题的想法。
感谢。
其他信息:
这是我需要计算的数据:
我有7个变量,我们称之为var1,var2,...,var7
这些变量的约束是:
目标是最大化目标公式,在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,我用它来模拟几乎所有内容,我创建了处理目标公式操作的函数,但是当我尝试解决模型时它总是失败,我认为它是因为操作的复杂性。
无论如何,我只想展示这些数据,以便您了解我需要实施的计算类型。
答案 0 :(得分:2)
以下是一些商业.NET库,包含不同类型的多变量优化函数,可以替代Excel的求解器:
如果您为此找到了一个好的非商业/开源图书馆,请告诉我。