Scippy

SoPlex

Sequential object-oriented simPlex

About

SoPlex is an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm. It provides special support for the exact solution of LPs with rational input data. It can be used as a standalone solver reading MPS or LP format files via a command line interface as well as embedded into other programs via a C++ class library. The main features of SoPlex are:

  • presolving, scaling, exploitation of sparsity, hot-starting from any regular basis,
  • column- and row-oriented form of the simplex algorithm,
  • an object-oriented software design written in C++,
  • a compile-time option to use 80bit extended ("quad") precision for numerically difficult LPs,
  • an LP iterative refinement procedure to compute high-precision solution, and
  • routines for an exact rational LU factorization and continued fraction approximations in order to compute exact solutions.

SoPlex has been used in numerous research and industry projects and is the standard LP solver linked to the mixed-integer nonlinear programming and constraint integer programming solver SCIP.

News

Nov/2024 Version 7.1.2 released as part of the SCIP Optimization Suite 9.2.0 CHANGELOG
Sep/2024 Version 7.1.1 released as part of the SCIP Optimization Suite 9.1.1 CHANGELOG
Jun/2024 Version 7.1.0 released as part of the SCIP Optimization Suite 9.1.0 CHANGELOG
May/2024 Version 7.0.1 released as part of the SCIP Optimization Suite 9.0.1 CHANGELOG
Feb/2024 Version 7.0.0 released as part of the SCIP Optimization Suite 9.0.0 CHANGELOG
Aug/2023 Version 6.0.4 released as part of the SCIP Optimization Suite 8.0.4 CHANGELOG
Dec/2022 Version 6.0.3 released as part of the SCIP Optimization Suite 8.0.3 CHANGELOG
04/Nov/2022 SoPlex license update
Starting with the next release SoPlex will be licensed under the Apache 2.0 License.
06/Oct/2022 Version 6.0.2 released as part of the SCIP Optimization Suite 8.0.2 CHANGELOG
Jun/2022 Version 6.0.1 released as part of the SCIP Optimization Suite 8.0.1 CHANGELOG
28/Jan/2022 Version 6.0.0 released as part of the SCIP Optimization Suite 8.0.0 CHANGELOG
15/Dec/2021 Beta version 6.0.0 released
26/May/2021 Public Mirrors on GitHub
The two main development branches of SCIP, SoPlex and PaPILO are now publicly mirrored on GitHub.
13/Jan/2021 Version 5.0.2 released. CHANGELOG
19/Dec/2020 Version 5.0.2 beta released.
23/Jun/2020 Version 5.0.1 released. CHANGELOG
30/Mar/2020 Version 5.0.0 released. CHANGELOG
10/Jul/2019 Version 4.0.2 released. CHANGELOG
28/Jun/2019 Beta of Version 4.0.2 released.
10/Jan/2019 Version 4.0.1 released. CHANGELOG
02/Jul/2018 Version 4.0.0 released. CHANGELOG
05/Feb/2018 Version 3.1.1 released. CHANGELOG
21/Dec/2017 Version 3.1.0 released. Release Notes
01/Sep/2017 Version 3.0.1 released. Release Notes
09/Mar/2017 Version 3.0.0 released. Release Notes
29/Feb/2016 Version 2.2.1 released. Release Notes
01/Jul/2015 Version 2.2.0 released. Release Notes
23/Mar/2015 Binaries for Windows available for download.
18/Dec/2014 Version 2.0.1 released. Release Notes
07/Mar/2014 Binaries for Linux and Windows available for download.
27/Feb/2014 Version 2.0.0 released. Release Notes

older news...

25/Feb/2014 Website relaunched.
16/Oct/2013 Version 1.7.2 released. Release Notes
04/Jan/2013 Version 1.7.1 released. Release Notes
31/Jul/2012 Version 1.7.0 released. Release Notes
28/Oct/2011 Version 1.6.0 released. Release Notes
30/Sep/2010 Version 1.5.0 released. Release Notes
06/Aug/2010 Patch 1.4.2c available for download providing an additional interface method to set a starting basis in the SoPlex class.
19/Jan/2010 Patch 1.4.2b available for download. Please update if you encounter problems in combination with older compiler versions.
12/Jun/2009 Patch 1.4.2a available for download. Please update.
11/Sep/2009 Version 1.4.2 released. Release Notes
20/Feb/2009 Version 1.4.1 released. Release Notes
30/Sep/2008 Version 1.4.0 released. Release Notes
27/Aug/2007 Version 1.3.2 released. Release Notes
21/Aug/2007 Website relaunched.
17/Nov/2006 Version 1.3.1 released. Release Notes
03/Feb/2006 Version 1.3.0 released. Release Notes
10/Apr/2002 Version 1.2.1 released. Release Notes
14/Jan/2002 Version 1.2.0 released. Release Notes

License

Since November 4, SoPlex is licensed under the Apache 2.0 License.

Releases up to and including Version 6.0.2 remain under the ZIB Academic License as indicated by the files contained in the releases. The new license applies from Version 6.0.3 onwards.

Any publication for which SoPlex is used must include an acknowledgement and a reference to one of the following articles, depending on the version used:

The SCIP Optimization Suite 7.0
Gerald Gamrath, Daniel Anderson, Ksenia Bestuzheva, Wei-Kun Chen, Leon Eifler, Maxim Gasse, Patrick Gemander, Ambros Gleixner, Leona Gottwald, Katrin Halbig, Gregor Hendel, Christopher Hojny, Thorsten Koch, Pierre Le Bodic, Stephen J. Maher, Frederic Matter, Matthias Miltenberger, Erik Mühmer, Benjamin Müller, Marc E. Pfetsch, Franziska Schlösser, Felipe Serrano, Shinano Yuji, Christine Tawfik, Stefan Vigerske, Fabian Wegscheider, Dieter Weninger, Jakob Witzig
Available at Optimization Online and as ZIB-Report 20-10, March 2020
BibTeX

The SCIP Optimization Suite 6.0
Ambros Gleixner, Michael Bastubbe, Leon Eifler, Tristan Gally, Gerald Gamrath, Robert Lion Gottwald, Gregor Hendel, Christopher Hojny, Thorsten Koch, Marco E. Lübbecke, Stephen J. Maher, Matthias Miltenberger, Benjamin Müller, Marc E. Pfetsch, Christian Puchert, Daniel Rehfeldt, Franziska Schlösser, Christoph Schubert, Felipe Serrano, Yuji Shinano, Jan Merlin Viernickel, Matthias Walter, Fabian Wegscheider, Jonas T. Witt, Jakob Witzig
Available at Optimization Online and as ZIB-Report 18-26, July 2018
BibTeX

The SCIP Optimization Suite 5.0
Ambros Gleixner, Leon Eifler, Tristan Gally, Gerald Gamrath, Patrick Gemander, Robert Lion Gottwald, Gregor Hendel, Christopher Hojny, Thorsten Koch, Matthias Miltenberger, Benjamin Müller, Marc E. Pfetsch, Christian Puchert, Daniel Rehfeldt, Franziska Schlösser, Felipe Serrano, Yuji Shinano, Jan Merlin Viernickel, Stefan Vigerske, Dieter Weninger, Jonas T. Witt, Jakob Witzig
ZIB-Report 17-61, Zuse Institute Berlin, December 2017
Bibtex

The SCIP Optimization Suite 4.0
Stephen J. Maher, Tobias Fischer, Tristan Gally, Gerald Gamrath, Ambros Gleixner, Robert Lion Gottwald, Gregor Hendel, Thorsten Koch, Marco E. Lübbecke, Matthias Miltenberger, Benjamin Müller, Marc E. Pfetsch, Christian Puchert, Daniel Rehfeldt, Sebastian Schenker, Robert Schwarz, Felipe Serrano, Yuji Shinano, Dieter Weninger, Jonas T. Witt, Jakob Witzig
ZIB-Report 17-12, Zuse Institute Berlin, March 2017
Bibtex

The SCIP Optimization Suite 3.2
Gerald Gamrath, Tobias Fischer, Tristan Gally, Ambros M. Gleixner, Gregor Hendel, Thorsten Koch, Stephen J. Maher, Matthias Miltenberger, Benjamin Müller, Marc E. Pfetsch, Christian Puchert, Daniel Rehfeldt, Sebastian Schenker, Robert Schwarz, Felipe Serrano, Yuji Shinano, Stefan Vigerske, Dieter Weninger, Michael Winkler, Jonas T. Witt, Jakob Witzig
ZIB-Report 15-60, Zuse Institute Berlin, February 2016
Bibtex

If you use SoPlex as an exact rational LP solver, please cite the references

Iterative Refinement for Linear Programming
Ambros M. Gleixner, Daniel E. Steffy, Kati Wolter
INFORMS Journal on Computing 28(3):449-464, 2016,
preprint available as ZIB-Report 15-15

Linear programming using limited-precision oracles
Ambros M. Gleixner, Daniel E. Steffy
Math. Program. 183, 525–554, 2020,
preprint available as ZIB-Report 19-57

Combining Precision Boosting with LP Iterative Refinement for Exact Linear Optimization
Leon Eifler, Jules Nicolas-Thouvenin, Ambros M. Gleixner
under review, preprint available as ZIB-Report 23-26

Download

The source code of soplex is available on github. The releases are also available as tarballs. The files you can download there come without warranty. Use at your own risk!

If you use conda, you can install soplex using the conda packages.

Platforms

SoPlex is implemented in C++. The code should be compliant with the current ANSI standard. With a modern C++ compiler you should be able to compile the code on any platform.

More details can be found in the Doxygen documentation.

SoPlex is also available on the NEOS Server, where you can post your model in LP or MPS format to solve it.

Contact

For questions about SoPlex or to report a bug, please write to the SoPlex mailing list soplex@zib.de after subscribing to it at the SoPlex mailing list page.

Developers

Main developers

Leon Eifler
Ambros Gleixner

Further and former developers

Benjamin Hiller
Thorsten Koch
Matthias Miltenberger
Sebastian Orlowski now at atesio
Daniel Rehfeldt
Roland Wunderling former main developer - now at IBM

Contributors

Tobias Achterberg now at Gurobi
Timo Berthold
Andreas Bley now at University Kassel
Dennis Elbrächter
Wei Huang now at Siemens AG, Corporate Technology
Eva Ramlow
Dan Steffy
Marc Pfetsch now at TU Darmstadt
Andreas Tuchscherer

Cooperation

SoPlex is developed in cooperation with

Imprint and privacy statement

© 2024 by Zuse Institute Berlin (ZIB). For the imprint and privacy statement we refer to the Imprint of ZIB with the following additions and modifications:

Download form

The sharing and storage of this information is necessary due to the contract between ZIB and I2DAMO GmbH that allows I2DAMO GmbH to issue commercial SoPlex licenses. Furthermore the number of SoPlex downloads is tracked and used to generate statistics about the downloads and to generate the world map of download locations. The personal information is used to distinguish the number of downloads from the number of users per year, that might download more than one version or archive. In addition to the privacy statements of ZIB and I2DAMO GmbH we hereby declare that your name and affiliation recorded for the SoPlex download

  • is shared with I2DAMO GmbH in this context.
  • is used for purposes of granting licenses and for statistics about software downloads.
  • is processed and stored on our server for the duration of a year.