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

有帮助吗?

解决方案

一个好的答案取决于你所说的“凸”是什么意思。和“更一般的”如果您正在尝试解决大型或具有挑战性的线性或凸二次优化问题(特别是对于它们的离散分量),那么很难击败主要的商业解算器, gurobi cplex 短跑除非钱对你来说是个大问题。它们都具有干净的JNI接口,可在大多数主要平台上使用。

coin-or 项目有几个优化器,并有一个JNI接口项目。它是完全免费的( EPL 许可证),但需要更多的工作来设置并且可能不会给你相同的表现。

其他提示

有一个名为 lpsolve 的线性优化工具。它是用C语言编写的(我认为),但附带了一个Java / JNI包装器(API不是非常OO,但它可以完成这项工作)。它非常易于使用,并且我在去年的现场系统中运行起来非常愉快和稳定。

您可以尝试 JOptimizer ,开源并适用于一般凸优化问题(线性规划,二次规划,qcqp) ,锥编程,半定规划等,

OptaPlanner (Java,开源,ASL)可以处理大问题,并且没有约束类型限制(例如线性与凸起)。

您可能需要查看 JScience ,它看起来非常完整。 (数学结构,线性代数求解等)

IPOPT有一个 Java界面。您也可以使用适用于Java的APMonitor建模语言。我开发这个平台,所以如果他们想创建一个新的Java接口,我会很高兴与某人合作。它已经有一个 Python API 和MATLAB界面,并包含IPOPT,APOPT等求解器,BPOPT和其他可以处理大规模系统的人。

查看 AMPL 。基本版是免费的,但是对于更大的问题需要花钱。你不用语言付钱;你为求解者买单。也可以上传您的代码并让它在服务器上运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top