在Linux上有哪些好用的工具可以解决整数规划问题?

6

有没有适用于Linux的好工具来解决整数规划问题?

我有一个小问题想要计算以节省时间:D。这是一种子集和问题。我有一个约20个整数值的列表,我想计算出满足某个最小值的最小和子集。您可以使用整数规划来制定此类问题……像这样

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

使用

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

还有其他好的方法来做这件事吗?
5个回答

9
我建议尝试GLPKSCIP。它们都有自己的建模语言,GLPK具有GNU MathProg,而SCIP具有ZIMPL,因此您可以方便地编写LP问题代码。
GNU MathProg的优点是与AMPL兼容。因此,您可以使用CPLEX或Gurobi的AMPL学生版与GNU MathProg模型进行尝试。请记住,AMPL、CPLEX和Gurobi都是商业软件。

2
我用glpk和MathProg解决了我的问题。在IBM找到了一个简单明了的介绍。非常感谢。 - mageta

4

您尝试过使用LibreOffice Calc Solver完成此任务吗?

如果您熟悉C#,Mono Framework上的Microsoft Solver Foundation也可以为您完成此工作。


1

试试Lindo/Lingo。它们不是免费的,但你可以试用。

它们允许你以非常整洁的数学方式指定你的问题。


0
你可以尝试使用GNU Octave - 它是Matlab的一个子集。

很久以前,当我尝试使用GNU Octave时,它在底层只是调用了GLPK。 - Ali

0

我想在@Ali提出的GLPK建议中再添加一个选项。我建议对于任何有兴趣解决LPs/IPs的人也应该研究一下R语言提供的优化包。

如果你已经知道并使用R,那么只需要下载正确的包即可。即使你不知道,这也是一个很好的介绍R的方式,因为它在分析领域真正开始流行起来。

这个vignette是了解哪些R包相关的很好的方式。 对于你来说,RSymphonyRglpk可能是开始的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接