[ACCEPTED]-mathematical optimization library for Java --- free or open source recommendations?-convex-optimization

Accepted answer
Score: 11

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

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

Score: 5

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

Score: 2

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

Score: 2

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

Score: 1

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

Score: 1

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

Score: 0

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

More Related questions