6

有什么好的工具可以解决 Linux 上的整数程序吗?

我有一个小问题要计算以节省时间:D。这是一种子集和问题。我有一个大约 20 个整数值的列表,我想计算满足某个最小值的最小总和的子集。你可以用一个整数程序来制定这个......就像

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

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

还是有其他好方法可以做到这一点?

4

5 回答 5

9

我会尝试GLPKSCIP

他们有自己的建模语言,GLPK 有 GNU MathProg,SCIP 有 ZIMPL,所以你可以方便地编写你的 LP 问题。

GNU MathProg 具有与AMPL兼容的优势。因此,您可以在 GNU MathProg 模型中尝试使用 CPLEX 或 Gurobi 的学生版 AMPL。请记住,AMPL、CPLEX 和 Gurobi 是商业软件。

于 2012-05-19T18:58:41.613 回答
4

您是否尝试过使用LibreOffice Calc Solver来做到这一点?

如果您了解 C#,Mono 框架上的Microsoft Solver Foundation也可以为您完成这项工作。

于 2012-09-28T10:07:15.690 回答
1

试试Lindo/Lingo。它们不是免费的,但您可以尝试一下。

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

于 2012-05-19T17:29:44.343 回答
0

I wanted to add one more option to the GLPK suggestions that @Ali has made. I suggest that anyone interested in solving LPs/IPs also look into the optimization packages that the R Language offers.

If you already know and use R, then it is just a matter of downloading the right package. And even if you don't, this is a good way to get introduced to R, which is really taking off in the analytics space.

This vignette is very good way to know which R packages are relevant. For you, RSymphony or Rglpk might be the ones to start with.

于 2012-05-20T07:59:01.837 回答
0

您可以尝试 gnu octave - 它是 matlab 的一个子集

于 2012-05-19T17:21:23.420 回答