mathematical optimization library for Java — free or open source recommendations? [closed]

落爺英雄遲暮 提交于 2019-11-26 13:18:52

问题


Does anyone know of such a library that performs mathematical optimization (linear programming, convex optimization, or more general types of problems)? I'm looking for something like MATLAB, but with the ability to handle larger problems. Do I have to write my own implementations, or buy one of those commercial products (CPLEX and the like)?


回答1:


A good answer is dependent on what you mean by "convex" and "more general" If you are trying to solve large or challenging linear or convex-quadratic optimization problems (especially with a discrete component to them), then it's hard to beat the main commercial solvers, gurobi, cplex and Dash unless money is a big issue for you. They all have clean JNI interfaces and are available on most major platforms.

The coin-or project has several optimizers and have a project for JNI interface. It is totally free (EPL license), but will take more work to set-up and probably not give you the same performance.




回答2:


There is a linear optimization tool called lpsolve. It's written in C (I think) but comes with a Java/JNI wrapper (API is not very OO but it does the job). It's pretty easy to use and I have had it running quite happily and stably in a live system for the last year.




回答3:


You may try JOptimizer, open source and suitable for general convex optimization problems (linear programming, quadratic programming, qcqp, cone programming, semidefinite programming, ect




回答4:


OptaPlanner (Java, open source, ASL) can handle large problems and doesn't have an constraint type limitations (such as linear vs convex).




回答5:


You may want to look at JScience, it looks pretty complete. (Mathematical structures, linear algebra solving, etc.)




回答6:


IPOPT has an interface for Java. You may also be able to adapt the APMonitor modeling language for Java. I develop this platform so I'll be glad to work with someone if they'd like to create a new interface to Java. It already has a Python API and MATLAB interface and includes solvers such as IPOPT, APOPT, BPOPT, and others that can handle large-scale systems.




回答7:


Look into AMPL. The basic edition is free, but it costs money for larger problems. You don't pay for the language; you pay for solvers. It is also possible to upload your code and have it run on their servers.



来源:https://stackoverflow.com/questions/143020/mathematical-optimization-library-for-java-free-or-open-source-recommendatio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!