15

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

4

7 回答 7

11

一个好的答案取决于您所说的“凸”和“更一般”的含义主要的商业求解器,gurobicplexDash,除非钱对你来说是个大问题。它们都有干净的 JNI 接口,并且在大多数主要平台上都可用。

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

于 2008-09-28T18:22:11.280 回答
5

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

于 2008-09-28T15:23:50.897 回答
2

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

于 2012-04-13T11:47:58.413 回答
2

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

于 2012-12-13T15:24:13.173 回答
1

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

于 2008-09-27T05:07:22.073 回答
1

IPOPT 有一个Java 接口。您还可以将 APMonitor 建模语言用于 Java。我开发了这个平台,所以如果有人想为 Java 创建一个新接口,我会很高兴与他们合作。它已经拥有Python API和 MATLAB 接口,并包括诸如 IPOPT、APOPT、BPOPT 等可以处理大型系统的求解器。

于 2013-05-09T15:47:51.750 回答
0

查看AMPL。基本版是免费的,但遇到更大的问题需要花钱。您无需为语言付费;您为求解器付费。也可以上传您的代码并让它在他们的服务器上运行。

于 2008-09-27T17:18:17.683 回答