SCPSolver - an easy to use Java Linear Programming Interface

Authors: Hannes Planatscher and Michael Schober

SCPSolver should enable a Java developer to use Linear Programming in less than 10 minutes.

Most solvers for linear programs are implemented in C/C++ for performance reasons. Java developers can use JNI interfaces for some solvers. However most interfaces are pretty difficult to setup, and lock the developer in to a specific solver. SCPSolver was developed to overcome those issues. The library has the following features:

  • easy to deploy on Linux, Mac Os X and Windows with prebuilt linear programming libraries (almost dependency-free)
  • plugin-concept: write model, use different solvers to solve it
  • currently supported solvers:
    • GLPK
    • lpsolve
    • CPLEX (solver pack must be built by script by user)
  • low learning curve: very simple, no-frills API
  • other features: implementation of sparse matrices and graphs, debugger for linear programs, prebuilt models for common optimization problems like set cover, ...

Project Homepage: