繁体   English   中英

Microsoft Solver Foundation变量限制

[英]Microsoft Solver Foundation Variable limitation

您好我正在使用Microsoft Solver Foundation来解决线性编程问题,但该变量已超过1000,并且它会提示以下错误:{“此版本的产品已超出模型大小限制。请与Microsoft Corporation联系以获取许可选项。\\ r \\ nLimits:NonzeroLimit = 100000,MipVariableLimit = 2000,MipRowLimit = 2000,MipNonzeroLimit = 10000,CspTermLimit = 25000,Expiration = none。“}

有没有更好的求解器是有效的,可以接受1000多个可以在Visual Studio IDE中使用的变量? 谢谢。

不确定你的意思是:解算器“可以在Visual Studio IDE中工作吗?”

但是,如果你想要一个带有功能C#接口的大规模(开源)LP求解器,我会推荐lp_solve ,下载就在这里 求解器是用C / C ++编写的,但是有一个全面且易于使用的C#包装器,它使用P / Invoke来调用各种lpsolve方法。

Hans Mittelmann的基准测试提供了几种LP求解器的比较。 如果您正在寻找高性能的免费解算器而不是我推荐的CLPIPOPT 它们都具有C ++接口,因此从Visual C ++中使用它们应该没有问题。 良好的商业解决方案是CPLEXGurobi

正如Marc Gravell所提到的,您可以购买不受限制的Microsoft Solver Foundation企业版,但请注意它已停止使用

Solver Foundation似乎已被抛弃 - 我怀疑我们是否会看到它的任何新版本。 变量限制对于许多问题来说太小了。 我发现Google OR Tools很有用 - 他们将.NET包装器放在GLPK和CBC求解器(以及其他)之间,并将其作为源代码发布。 搜索“Google OR Tools”。 这些求解器并不像商业求解器那么快(参见上面关于vitaut帖子的基准) - 但商业求解器的价格通常在6-12,000英镑左右。

我不知道您目前有多少约束,但是(如果您的约束少于1000个)您可以采用双重约束而不是变量,然后仍然使用您当前的Microsoft Solver Foundation版本。 采取双重不应该太难自动化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM