Wednesday, June 8, 2011

Open-source Java tools for OR/BA projects

A list of open-source Java-based resources for optimization and business analytics is presented in this post. There's surprisingly few of these going around. COIN-OR has relatively few or no pure Java tools, but if you have heard of any, please post.

Object-oriented, algorithmic, decision-driven analysis of a complex business system having many moving parts, is an effective approach, and Java, a solid delivery option. Add to this the inherent cross-platform interoperability and performance improvements in recent times, and Java becomes a pareto-optimal deployment choice in many project instances.

This is by no means an exhaustive list, and yes, it's missing all those heavy-duty MINLP and SOCP Cadillac solvers, but there's always some solid mileage in your old Chevy if you're a good driver (whatever that means)

LP solver: "Gooplex": Google's 'toy' implementation that is well-written and thus extensible (Apache commons) to a more sophisticated DIY simplex implementation. An old post on this topic here. Great for solving one or a million tiny LPs.

NLP: L-BFGS for large-scale unconstrained nonlinear optimization. This is a translation of the original FORTRAN version written by Jorge Nocedal. The license for this tool appears to be fairly relaxed (LGPL), but do your own checks. The bound-constrained L-BGFS-B is not 'free' for commercial use.

Trivia: Which is supposedly the fastest pure Java LP solver 'in the world'?

Predictive analytics
Colt: high-performance tools for linear algebra, matrix methods, OLS, etc.
Jama: A light-weight package for linear algebra
OpenForecast: Moving averages, multivariate regression, etc.
Wikipedia's meta list of numerical Java tools
Libsvm: SVM for classification, etc.


  1. Watchmaker Framework is a great Java library for genetic algorithms. For constraint programming in Java, I like the CHOCO solver library.

  2. Thanks for adding to the list. very useful!

  3. This is such a great resource that you are providing and you give it away for free. I love seeing blog that understand the value of providing a quality resource for free.

  4. Great effort by you.. such research by you provide best value for the people.

  5. Thanks for adding to the list. very useful!
    apply tools


Note: Only a member of this blog may post a comment.