I am looking to build a list of "pure" Java LP solvers. That is LP solvers which are implemented entirely in Java so that platform specific binaries are not necessary. So far, I have only been able to find two,

1) The apache commons optimization package:
org.apache.commons.math.optimization.linear.SimplexSolver
http://commons.apache.org/math/userguide/optimization.html

2) ojAlgo
http://ojalgo.org/mathematical_programming.html

asked 02 Nov '11, 11:30

Carleton's gravatar image

Carleton
29214
accept rate: 0%

Welcome! When you say implemented entirely in Java, do you mean written in Java or written in a language that runs on a JVM? Not that I know of, or would want to write, an LP solver in Clojure.

(02 Nov '11, 17:47) Luis de la T...

Written in Java is what I had in mind, although any LP binary for the JVM would be an interesting side note.

(02 Nov '11, 18:05) Carleton

I'm actually working on a basic two-phase simplex solver in Clojure at the moment. Mostly as an exercise to teach myself Clojure. It won't be ready for a while yet though.

(02 Nov '11, 18:49) DC Woods ♦

From a user's perspective, the JVM language the library is written in shouldn't matter too much. In Drools Planner (which is pure Java), I have several users who use another JVM language (Scala mostly). Although I did have to change a small thing in my generics usage to make it more user-friendly for them... so it does matter a little bit.

(03 Nov '11, 12:16) Geoffrey De ... ♦

Choco is a also pure Java LP solver I think (Update: apparently it's only a CP solver). There are also some non-LP solvers in pure Java which solve the same kind of problems (and probably scale out better): our Drools Planner, cpsolver, ...

link

answered 03 Nov '11, 05:59

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
3.6k32764
accept rate: 6%

edited 03 Nov '11, 12:16

Just to add some precision concerning Geoffrey De Smet post. Choco (http://www.emn.fr/z-info/choco-solver/) is a java library for CP but as far as I know not designed for LP.

link

answered 03 Nov '11, 06:58

Renaud's gravatar image

Renaud
60517
accept rate: 8%

Thanks for the correction :)

(03 Nov '11, 12:11) Geoffrey De ... ♦

OR-Objects appears to have an LP solver: http://1997.opsresearch.com/OR-Objects/index.html

I haven't tried it, I just found it while looking for something else.

link

answered 04 Nov '11, 18:23

Luis%20de%20la%20Torre's gravatar image

Luis de la T...
4231612
accept rate: 11%

OptimJ from ATEJI is now free. It plugs to third party such as LP-Solve or GLPK (free) , CPLEX and Gurobi (commercial)

link

answered 07 Nov '11, 18:15

David's gravatar image

David
30616
accept rate: 12%

But even ATEJI is implemented in java (in fact it's an language extension I believe), OP is asking for solver in pure java and LP-Solve and GPLK is not. Besides if OP is looking for a "small" solver, it would be overkill to use a "big" modeling language.

(07 Nov '11, 18:37) Bo Jensen ♦

My original inquiry is partly out of curiosity and partly out of a desire with imbed LP solvers into Java applications without the need to make special builds for different platforms. All solvers mentioned in this comment requite platform specific builds.

(08 Nov '11, 02:12) Carleton
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×231
×40
×39

Asked: 02 Nov '11, 11:30

Seen: 9,203 times

Last updated: 08 Nov '11, 02:12

OR-Exchange! Your site for questions, answers, and announcements about operations research.