What is SCIP?
SCIP is a framework to solve constraint integer programs (CIPs) and mixed-integer nonlinear programs. In particular,
- SCIP incorporates a mixed-integer programming (MIP) solver as well as
- an LP based mixed-integer nonlinear programming (MINLP) solver, and
- is a framework for branch-and-cut-and-price.
See the web site of SCIP for more information about licensing and to download SCIP.
If you are new to SCIP and don't know where to start you should have a look at the first steps walkthrough .
Structure of this manual
This manual gives an accessible introduction to the functionality of the SCIP code in the following chapters
Setup and news
- Installing SCIP
- Frequently Asked Questions (FAQ)
- Release notes and changes between different versions of SCIP
Tutorials and guides
- First Steps Walkthrough
- Tutorial: the interactive shell
- Important programming concepts for working with(in) SCIP
- How to start a new project
- How to search the documentation for interface methods
- Detailed guides for adding user plugins
- Detailed guides for advanced SCIP topics
Examples and applications
- Coding examples in C and C++ in the source code distribution
- Extensions of SCIP for specific applications
References
- Supported types of optimization problems
- Readable file formats
- Interfaces
- List of all SCIP parameters
- SCIP Authors
- License
- Links to external documentation
Quickstart
Let's consider the following minimal example in LP format. A 4-variable problem with a single, general integer variable and three linear constraints
Maximize obj: x1 + 2 x2 + 3 x3 + x4 Subject To c1: - x1 + x2 + x3 + 10 x4 <= 20 c2: x1 - 3 x2 + x3 <= 30 c3: x2 - 3.5 x4 = 0 Bounds 0 <= x1 <= 40 2 <= x4 <= 3 General x4 End
Saving this file as "simple.lp" allows to read it into SCIP and solve it by calling the scip binary with the -f
flag to solve the problem from the provided file and exit.
reads and optimizes this model in no time:
SCIP version 8.0.4 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Soplex 6.0.4] [GitHash: a8e51afd1e] Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB) External libraries: Readline 7.0 GNU library for command line editing (gnu.org/s/readline) Soplex 6.0.4 Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: 950b1658] CppAD 20180000.0 Algorithmic Differentiation of C++ algorithms developed by B. Bell (github.com/coin-or/CppAD) ZLIB 1.2.11 General purpose compression library by J. Gailly and M. Adler (zlib.net) GMP 6.1.2 GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org) AMPL/MP 4e2d45c4 AMPL .nl file reader library (github.com/ampl/mp) bliss 0.77 Computing Graph Automorphism Groups by T. Junttila and P. Kaski (www.tcs.hut.fi/Software/bliss/) user parameter file <scip.set> not found - using default parameters read problem <doc/inc/simpleinstance/simple.lp> ============ original problem has 4 variables (0 bin, 1 int, 0 impl, 3 cont) and 3 constraints presolving: (round 1, fast) 2 del vars, 1 del conss, 0 add conss, 4 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs (round 2, fast) 2 del vars, 1 del conss, 0 add conss, 6 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs (round 3, fast) 2 del vars, 1 del conss, 0 add conss, 7 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs (0.0s) probing cycle finished: starting next cycle (0.0s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -) (0.0s) no symmetry present presolving (4 rounds: 4 fast, 1 medium, 1 exhaustive): 2 deleted vars, 1 deleted constraints, 0 added constraints, 7 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients 2 implications, 0 cliques presolved problem has 3 variables (1 bin, 0 int, 0 impl, 2 cont) and 2 constraints 2 constraints of type <linear> Presolving Time: 0.00 time | node | left |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr| dualbound | primalbound | gap | compl. t 0.0s| 1 | 0 | 0 | - | trivial| 0 | 3 | 2 | 0 | 0 | 0 | 0 | 0 | 1.630000e+02 | 3.400000e+01 | 379.41%| unknown t 0.0s| 1 | 0 | 0 | - | trivial| 0 | 3 | 2 | 0 | 0 | 0 | 0 | 0 | 1.630000e+02 | 5.300000e+01 | 207.55%| unknown p 0.0s| 1 | 0 | 0 | - | locks| 0 | 3 | 2 | 2 | 0 | 0 | 0 | 0 | 1.630000e+02 | 1.225000e+02 | 33.06%| unknown 0.0s| 1 | 0 | 2 | - | 599k | 0 | 3 | 2 | 2 | 0 | 0 | 0 | 0 | 1.252083e+02 | 1.225000e+02 | 2.21%| unknown 0.0s| 1 | 0 | 2 | - | 599k | 0 | 3 | 2 | 2 | 0 | 0 | 0 | 0 | 1.252083e+02 | 1.225000e+02 | 2.21%| unknown 0.0s| 1 | 0 | 3 | - | 603k | 0 | 3 | 2 | 3 | 1 | 1 | 0 | 0 | 1.225000e+02 | 1.225000e+02 | 0.00%| unknown 0.0s| 1 | 0 | 3 | - | 603k | 0 | 3 | 2 | 3 | 1 | 1 | 0 | 0 | 1.225000e+02 | 1.225000e+02 | 0.00%| unknown SCIP Status : problem is solved [optimal solution found] Solving Time (sec) : 0.00 Solving Nodes : 1 Primal Bound : +1.22500000000000e+02 (3 solutions) Dual Bound : +1.22500000000000e+02 Gap : 0.00 %
- Version
- 8.0.4