2

嗨,我使用的是Microsoft求解基金會來解決線性規劃問題,但是變量已經超過1000,它會提示以下錯誤: {「型號大小限制已經超過了這個版本的產品。 請聯繫微軟公司的許可選項\ r \ nLimits:。 NonzeroLimit = 100000,MipVariableLimit = 2000,MipRowLimit = 2000, MipNonzeroLimit = 10000,CspTermLimit = 25000,到期=無「}微軟求解地基上變限制

有沒有更好的求解器效率高,可以接受1000多個可以在Visual Studio IDE中工作的變量?謝謝。

+0

的[企業版](http://msdn.microsoft.com/en-us/library/ff524499(VS.93)的.aspx)沒有限制,並且可通過Gurobi(雖然你可能需要給他們打電話來獲取該特定產品的報價),或者提供他們自己品牌的商業產品。 –

回答

3

不知道你的意思究竟是什麼:「可以在Visual Studio IDE工作」求解然而,如果你想要一個具有功能C#接口的大規模(開源)LP解算器,我會推薦lp_solve,下載地址爲here。求解器是用C/C++編寫的,但是有一個全面且易於使用的C#包裝器,它使用P/Invoke來調用各種方法。

2

漢斯Mittelmann的benchmarks提供的幾個LP求解比較。如果您正在尋找高性能的免費求解器,那麼我推薦使用CLPIPOPT。它們都在C++中有接口,因此從Visual C++使用它們應該沒有問題。好的商業解決方案是CPLEXGurobi

正如Marc Gravell所提到的,您可以購買Microsoft Solver Foundation的企業版本,但不限於此,但請注意它是discontinued

+0

好點。但請注意,IPOPT是一個非線性編程解決方案,並且(據我所知)沒有C#(這是標記語言)用於_CLP_的封裝。 –

1

我不知道你現在有多少的限制有,但(如果你有小於1000的約束),你可以利用雙,並有1000度的限制,而不是變量,則仍然使用當前的Microsoft求解Foundation版本。 採取雙重不應該太難以自動化。

2

的求解基金會似乎已經放棄了 - 我懷疑我們將看到它的任何新版本。對於許多問題,變量限制太小。我發現谷歌或工具是有用的 - 他們已經把GLPK和CBC解決方案(其中包括)的.NET包裝器,並且已經發布它作爲源代碼。搜索「Google OR Tools」。這些求解器的速度並不像商業求解器那麼快(見上面關於vitaut的基準測試) - 但商業求解器的價格通常在6-12k英鎊的價格範圍內。