5

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

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

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

所以基本上我的问题是,你们中是否有人知道我可以用于此目的的任何其他库,或者任何可以帮助我自己解决问题的教程,或者任何让我能够解决这个问题的想法。

谢谢。

附加信息:

这是我需要计算的数据:

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

这些变量的约束是:

  • 所有这些都需要为 0 <= varn <= 0.5(其中 n 是变量的编号)
  • 所有变量的总和应该等于 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,我用它建模了几乎所有东西,我创建了处理目标公式运算的函数,但是当我尝试求解模型时它总是失败,我认为这是因为操作的复杂性。

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

4

1 回答 1

2

以下是一些商业 .NET 库,其中包含不同类型的多变量优化函数,可以替代 Excel 的求解器:

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

于 2010-04-15T16:01:34.760 回答