您好我正在使用Microsoft Solver Foundation解决线性规划问题,但变量已超过1000,并且它会提示以下错误: {“此版本的产品已超出型号尺寸限制。 有关许可选项,请与Microsoft Corporation联系。\ r \ nLimits: NonzeroLimit = 100000,MipVariableLimit = 2000,MipRowLimit = 2000, MipNonzeroLimit = 10000,CspTermLimit = 25000,Expiration = none。“}
是否有更好的解算器是有效的,可以接受1000多个可以在Visual Studio IDE中使用的变量?感谢。
答案 0 :(得分:3)
不确定你的意思是:求解器“可以在Visual Studio IDE中运行吗?”
但是,如果你想要一个带有功能C#接口的大规模(开源)LP求解器,我建议lp_solve,下载是here。解算器是用C / C ++编写的,但有一个全面且易于使用的C#包装器,它使用P / Invoke调用各种 lpsolve 方法。
答案 1 :(得分:2)
Hans Mittelmann的benchmarks提供了几个LP解算器的比较。如果您正在寻找高性能的免费求解器,而不是我推荐的CLP或IPOPT。它们都具有C ++接口,因此从Visual C ++中使用它们应该没有问题。良好的商业解决方案是CPLEX和Gurobi。
如Marc Gravell所述,您可以购买Microsoft Solver Foundation的企业版本,但不限于此,但请注意它是discontinued。
答案 2 :(得分:2)
Solver Foundation似乎已被抛弃 - 我怀疑我们是否会看到它的任何新版本。变量限制对于许多问题来说太小了。我发现Google OR Tools很有用 - 他们将.NET包装器放在GLPK和CBC求解器(以及其他)之间,并将其作为源代码发布。搜索“Google OR Tools”。这些求解器的速度不如商业求解器快(参见上面的vitaut帖子中的基准测试) - 但商业求解器的价格通常在6-12,000英镑之间。
答案 3 :(得分:1)
我不知道您目前有多少约束,但是(如果您的约束少于1000)您可以采用双重约束而不是变量,然后仍使用当前的Microsoft Solver Foundation版本。 采取双重不应该太难以自动化。