簡體   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