About

JOptimizer is an open source library implemented in pure java programming language that addresses the problem of solving a minimization with equality and inequality constraints,

  minimizex f0(x)  s.t.
    fi(x)≤0,  i=1,...,m
    Ax=b,  

where f0,...,fm: RnR are convex and twice continuously differentiable multivariate real functions, and A ∈ RpXn with rankA = p < n. This is given the name of convex optimization and, for example, LP, QP, QCQP, SOCP, SDP are special cases of it.

Linear algebra is based on the open source library Colt, while theoretical foundation is based on the work of S.Boyd and L.Vandenberghe, "Convex Optimization".

NOTE
Please note that it is a general purpose library, in the sense that the implementation does not exploit any special structure of the problem (at least at a very high level with an appropriate choice of the class of the functions involved): in many cases it might be necessary to deep leverage the structure of the problem in order to increase the precision and the speed of the solution. You can do this via an ad-hoc extension of the library classes, or feel free to contact us at info@joptimizer.com.