Solving Constraint Integer Programs

Available implementations of the LP solver interface

SCIP comes with implementations of the LP solver interface lpi.h for many LP solvers:

LPI name LP solver
spx SoPlex
xprs FICO XPress
grb Gurobi (interface is in beta stage, version at least 7.0.2 required)
clp CoinOR CLP (interface currently sometimes produces wrong results)
glop Google Glop (experimental, LPI is contained in Glop package/Google OR tools)
msk Mosek (experimental)
qsopt QSopt (experimental)
none disables LP solving entirely (not recommended; only for technical reasons)

There are two different implementations for SoPlex. The default one (spx) uses an updated interface that is provided by SoPlex itself (since version 2.0), resulting in a slimmer LPI that is similiar to those for CPLEX or XPRESS. The other one - spx1 - is the older LPI that directly uses the internal simplex solver of SoPlex and therefore needs to duplicate some features in the LPI that are already available in SoPlex itself. It lacks some features like persistent scaling which are only available in the modern implementation. Upcoming features may not be supported. Old compilers might have difficulties with the new implementation because some C++11 features are required that may not be supported.

To use the old implementation, set the Makefile option LPS=spx1 or configure your CMake build with LEGACY=ON.