2012-05-19 42 views
6

有什麼好的工具可以解決Linux上的整型程序嗎?任何好的工具來解決Linux上的整數程序?

我有一個小問題,我想計算以節省時間:D。這是一種子集總和問題。我有大約20個整數值的列表,我想計算滿足一定最小值的最小和的子集。你可以用整數規劃制定這個...像

\sum_{i=1}^{n} w*x -> min 

\sum_{i=1}^{n} w*x >= c with x \in \{0,1\} 

還是有這樣做的其他的好辦法?

回答

9

我會嘗試GLPKSCIP

他們有自己的建模語言,GLPK有GNU MathProg,SCIP有ZIMPL,所以你可以方便地編寫你的LP問題。

GNU MathProg的優點是與AMPL兼容。因此,您可以使用您的GNU MathProg模型試用帶有CPLEX或Gurobi的AMPL的學生版本。請記住,AMPL,CPLEX和Gurobi是商業軟件。

+2

我用glpk和MathProg解決了我的問題。在[IBM](http://www.ibm.com/developerworks/linux/library/l-glpk1/)上找到了一篇很好的簡短介紹。謝謝。 – mageta

0

你可以試着GNU八度 - 其MATLAB

+0

很久以前,當我嘗試使用GNU Octave時,它只是在引擎蓋下調用GLPK。 – Ali

1

的一個子集嘗試Lindo/Lingo。他們不是免費的,但你可以嘗試。

它們允許您以非常整齊的數學方式指定您的問題。

0

我想爲@Ali提供的GLPK建議添加一個選項。我建議任何對解決LP/IP感興趣的人也會研究R語言提供的優化包。

如果你已經知道並使用R,那麼它只是下載正確的包的問題。即使你不這樣做,這也是引入R的好方法,R在分析領域真正起作用。

這個vignette是知道哪些R包相關的很好的方法。 對你而言,RSymphonyRglpk可能是最開始的。

3

您是否試圖使用LibreOffice Calc Solver(http://help.libreoffice.org/Calc/Solver)?

單聲道框架上的微軟求解基金會也可以爲你做這項工作,如果你知道C#。

相關問題