Solving Constraint Integer Programs


There are several ways of accessing the SCIP Optimization Suite from other software packages or programming platforms.

File formats

The easiest way to load a problem into SCIP is via an input file, given in a format that SCIP can parse directly, see SHELL. SCIP 3.0 is capable of reading more than ten different file formats, including formats for nonlinear problems and constraint programs. This gives researchers from different communities an easy, first access to the SCIP Optimization Suite. See List of readable file formats.

C++ wrapper

Since SCIP is written in C, its callable library can be directly accessed from C++. If a user wants to program own plugins in C++, there are wrapper classes for all different types of plugins available in the src/objscip directory of the SCIP standard distribution. See also Wrapper Classes.

Modeling languages and Matlab interface

A natural way of formulating an optimization problem is to use a modeling language. Besides ZIMPL there are several other modeling tools with a direct interface to SCIP. These include Comet, a modeling language for constraint programming, AMPL and GAMS, which are well-suited for modeling mixed-integer linear and nonlinear optimization problems, and CMPL for mixed-integer linear problems. The AMPL, GAMS, and ZIMPL interfaces are included in the SCIP distribution, the GAMS interface originated here.

With SCIP 3.0, a first beta version of a functional MATLAB interface has been released. It supports solving MIPs and LPs defined by Matlab's matrix and vector types. The OPTI project by Jonathan Currie provides an external MATLAB interface for the SCIP Optimization Suite. On top of this, YALMIP by Johan Löfberg provides a free modeling language.

Python and Java interfaces

With SCIP 3.1, beta versions of a Java native interface and a Python interface have been released. There are also several third-party python interfaces to the SCIP Optimization Suite, e.g., NUMBERJACK and python-zibopt. NUMBERJACK is a constraint programming platform implemented in python. It supports a variety of different solvers, one of them being the SCIP Optimization Suite. python-zibopt is developed and maintained by Ryan J. O'Neil and is a python extension of the SCIP Optimization Suite. PICOS is a python interface for conic optimization, provided by Guillaume Sagnol.