Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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)?

like image 904
Zach Scrivena Avatar asked Sep 27 '08 04:09

Zach Scrivena


People also ask

What is LP in Java?

Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships.

Where is mathematical Optimisation used?

Mathematical optimization is used in much modern controller design. High-level controllers such as model predictive control (MPC) or real-time optimization (RTO) employ mathematical optimization.

What is an optimization solver?

Overview. Optimization solvers. Optimization solvers help improve decision-making around planning, allocating and scheduling scarce resources. They embed powerful algorithms that can solve mathematical programming models, constraint programming and constraint-based scheduling models.


2 Answers

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.

like image 194
David Nehme Avatar answered Sep 25 '22 23:09

David Nehme


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.

like image 45
oxbow_lakes Avatar answered Sep 21 '22 23:09

oxbow_lakes