Skip to main content

PySCIPOpt: Mathematical Programming in Python with the SCIP Optimization Suite

  • Conference paper
  • First Online:
Mathematical Software – ICMS 2016 (ICMS 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9725))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    SCIP can already be used to solve models formulated in JuMP via AMPL’s nl format [7]. Furthermore, there is an ongoing development effort to develop an interface that supports callbacks [14].

  2. 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

  1. Achterberg, T.: Constraint integer programming. Ph.D. thesis, Technische Universität Berlin (2007)

    Google Scholar 

  2. Dantzig, G.B., Fulkerson, D.R., Johnson, S.M.: Solution of a large-scale traveling-salesman problem. Oper. Res. 3, 393–410 (1954)

    MathSciNet  Google Scholar 

  3. 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)

    Google Scholar 

  4. Lubin, M., Dunning, I.: Computing in operations research using Julia. INFORMS J. Comput. 27(2), 238–248 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  5. 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)

    Google Scholar 

  6. Wunderling, R.: Paralleler und objektorientierter Simplex-Algorithmus. Ph.D. thesis, Technische Universität Berlin (1996)

    Google Scholar 

  7. AmplNLWriter.jl. https://github.com/JuliaOpt/AmplNLWriter.jl

  8. Cython. http://www.cython.org/

  9. Decision support methods, Universidade do Porto. http://www.dcc.fc.up.pt/~jpp/mad/

  10. PEP 0257 - Docstring Conventions. https://www.python.org/dev/peps/pep-0257/

  11. GCG: Generic Column Generation. http://www.or.rwth-aachen.de/gcg/

  12. Gurobi optimizer reference manual. http://www.gurobi.com/

  13. SCIP: Solving Constraint Integer Programs. http://scip.zib.de/

  14. SCIP.jl. https://github.com/ryanjoneil/SCIP.jl

  15. SoPlex: Sequential object-oriented simPlex. http://soplex.zib.de/

  16. UG: Ubiquity Generator framework. http://ug.zib.de/

  17. ZIMPL: Zuse Institute Mathematical Programming Language. http://zimpl.zib.de/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matthias Miltenberger .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics