Java的二进制整数程序求解器

时间:2011-02-22 15:12:39

标签: java mathematical-optimization

我的问题是尝试通过Java解决二进制整数程序。我想进行一系列实验,这些实验的一个组成部分是求解整数程序,其中变量被约束在0和1之间。

过去我在MatLab中使用函数bintprog解决了这些问题。在搜索Java中使用的这样一个函数(或类?我是Java的新手)时,我空手而归。

是否有可用于解决具有良好文档的整数程序的Java库?

在我的搜索中,我看到了使用名为LP_Solve的包的建议,该包已经围绕它构建了Java包装器,并且为一个名为GLPK的包构建了一个类似的包装器(包装器{{3和here)(我以前用过的)。这些工具的问题在于它们并不是严格设计用于Java,因此缺少我认为需要的文档类型,甚至更糟糕的是有复杂的指令甚至开始在我自己的代码中使用它们。由于我目前正在学习Java语言,我想知道是否有任何非常好的软件包可用于解决二进制整数程序,混合整数线性程序或我自己的Java代码中的整数程序。

作为旁注,我真的不想切换到另一种语言,因为我正在构建执行我想要的任务的过去的代码和类。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

LP_Solve with Java wrapper 就是我将要使用的。它是一个免费的混合整数线性程序求解器。按照 instructions ,可以非常轻松地安装LP_Solve for Java。您下载的软件包中包含大量示例代码的文件,我发现这些代码很有用。安装中唯一让我失望的部分是必须加入Yahoo group才能找到要下载的文件。

答案 2 :(得分:0)

IBM cplex即使是c库也有java包装器和文档

答案 3 :(得分:-1)

如果您想要值0或1,请尝试使用bool数据类型...如果您查看概率(介于0到1之间),请尝试限制浮点值,使其为> = 0且&lt; = 1; < / p>