PySCIPOpt

PySCIPOpt: Mathematical Programming in Python with the SCIP Optimization Suite. When it comes to customized mathematical programming, SCIP is often the software of choice: Its plug-in based design provides a simple method of extension to handle a variety of specific problem classes and it moreover allows for ubiquitous mastery of the solving procedure and access to detailed processual information. Furthermore, SCIP has frequently distinguished itself as being state-of-the-art in academic discrete optimization. However, with its source written in C, SCIP can prove challenging for inexperienced users wishing to implement hand-tailored extensions. 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. In this way, fast prototyping of new algorithmic ideas without the coding overhead of the C language is possible. 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.