有什么好的工具可以解决 Linux 上的整数程序吗?
我有一个小问题要计算以节省时间:D。这是一种子集和问题。我有一个大约 20 个整数值的列表,我想计算满足某个最小值的最小总和的子集。你可以用一个整数程序来制定这个......就像
\sum_{i=1}^{n} w*x -> min
和
\sum_{i=1}^{n} w*x >= c with x \in \{0,1\}
还是有其他好方法可以做到这一点?
有什么好的工具可以解决 Linux 上的整数程序吗?
我有一个小问题要计算以节省时间:D。这是一种子集和问题。我有一个大约 20 个整数值的列表,我想计算满足某个最小值的最小总和的子集。你可以用一个整数程序来制定这个......就像
\sum_{i=1}^{n} w*x -> min
和
\sum_{i=1}^{n} w*x >= c with x \in \{0,1\}
还是有其他好方法可以做到这一点?
您是否尝试过使用LibreOffice Calc Solver来做到这一点?
如果您了解 C#,Mono 框架上的Microsoft Solver Foundation也可以为您完成这项工作。
试试Lindo/Lingo。它们不是免费的,但您可以尝试一下。
它们允许您以非常简洁的数学方式指定您的问题。
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.
您可以尝试 gnu octave - 它是 matlab 的一个子集