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

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.

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.

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

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

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

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.

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

We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.