Abstract
SCIP is a solver for a wide variety of mathematical optimization problems. It is written in C and extendable due to its plug-in based design. However, dealing with all C specifics when extending SCIP can be detrimental to development and testing of new ideas. This paper attempts to provide a remedy by introducing PySCIPOpt, a Python interface to SCIP that enables users to write new SCIP code entirely in Python. We demonstrate how to intuitively model mixed-integer linear and quadratic optimization problems and moreover provide examples on how new Python plug-ins can be added to SCIP.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
A proper implementation of this constraint handler would implement the callback conssepalp to separate the LP solution. The callback consenfolp is called at the end of the node processing loop, where possibly several calls to the conssepalp callback of the different constraint handlers have already been made.
For reasons of space we provide a concise, although rather inefficient, implementation.
References
Achterberg, T.: Constraint integer programming. Ph.D. thesis, Technische Universität Berlin (2007)
Dantzig, G.B., Fulkerson, D.R., Johnson, S.M.: Solution of a large-scale traveling-salesman problem. Oper. Res. 3, 393–410 (1954)
Gamrath, G., Fischer, T., Gally, T., Gleixner, A.M., Hendel, G., Koch, T., Maher, S.J., Miltenberger, M., Müller, B., Pfetsch, M.E., Puchert, C., Rehfeldt, D., Schenker, S., Schwarz, R., Serrano, F., Shinano, Y., Vigerske, S., Weninger, D., Winkler, M., Witt, J.T., Witzig, J.: The SCIP optimization suite 3.2. Technical report 15–60, ZIB, Takustr. 7, 14195 Berlin (2016)
Lubin, M., Dunning, I.: Computing in operations research using Julia. INFORMS J. Comput. 27(2), 238–248 (2015)
Vigerske, S., Gleixner, A., SCIP: global optimization of mixed-integer nonlinear programs in a branch-and-cut framework. Technical report 16–24, ZIB, Takustr. 7, 14195 Berlin (2016)
Wunderling, R.: Paralleler und objektorientierter Simplex-Algorithmus. Ph.D. thesis, Technische Universität Berlin (1996)
AmplNLWriter.jl. https://github.com/JuliaOpt/AmplNLWriter.jl
Cython. http://www.cython.org/
Decision support methods, Universidade do Porto. http://www.dcc.fc.up.pt/~jpp/mad/
PEP 0257 - Docstring Conventions. https://www.python.org/dev/peps/pep-0257/
GCG: Generic Column Generation. http://www.or.rwth-aachen.de/gcg/
Gurobi optimizer reference manual. http://www.gurobi.com/
SCIP: Solving Constraint Integer Programs. http://scip.zib.de/
SoPlex: Sequential object-oriented simPlex. http://soplex.zib.de/
UG: Ubiquity Generator framework. http://ug.zib.de/
ZIMPL: Zuse Institute Mathematical Programming Language. http://zimpl.zib.de/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Maher, S., Miltenberger, M., Pedroso, J.P., Rehfeldt, D., Schwarz, R., Serrano, F. (2016). PySCIPOpt: Mathematical Programming in Python with the SCIP Optimization Suite. In: Greuel, GM., Koch, T., Paule, P., Sommese, A. (eds) Mathematical Software – ICMS 2016. ICMS 2016. Lecture Notes in Computer Science(), vol 9725. Springer, Cham. https://doi.org/10.1007/978-3-319-42432-3_37
Download citation
DOI: https://doi.org/10.1007/978-3-319-42432-3_37
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-42431-6
Online ISBN: 978-3-319-42432-3
eBook Packages: Computer ScienceComputer Science (R0)