用于Java的数学优化库---免费还是开放源代码建议?

时间:2020-03-06 14:49:08  来源:igfitidea点击:

有谁知道执行数学优化(线性编程,凸优化或者更常见的问题类型)的库吗?我正在寻找类似MATLAB的东西,但具有处理更大问题的能力。我必须编写自己的实现,还是购买其中一种商业产品(CPLEX等)?

解决方案

我们可能想看看JScience,它看起来很完整。 (数学结构,线性代数求解等)

调查AMPL。基本版是免费的,但解决较大的问题需要付费。我们不用支付语言费用;我们为求解器付费。也可以上传代码并使其在其服务器上运行。

有一个称为lpsolve的线性优化工具。它是用C编写的(我认为),但是带有Java / JNI包装器(API不是非常面向对象,但它确实可以完成工作)。它非常易于使用,并且在过去的一年中,我让它在实时系统中运行得非常愉快且稳定。

一个好的答案取决于我们所说的"凸"和"更一般"的含义。如果我们要解决大型或者具有挑战性的线性或者凸二次方优化问题(尤其是对它们使用离散分量),那么很难克服除非金钱对我们来说是一个大问题,否则主要的商业解决方案,gurobi,cplex和Dash。它们都具有干净的JNI接口,并且可在大多数主要平台上使用。

coin-or项目有多个优化器,并且有一个用于JNI接口的项目。它是完全免费的(EPL许可证),但设置起来会花费更多的工作,并且可能不会给我们带来相同的性能。