The stand-alone shared memory parallel MIP/MINLP solver FiberSCIP can be used easily via the fscip
command. 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 FiberSCIP. Create a default parameter file for FiberSCIP:
# Quiet = FALSE # OutputParaParams = 4
The column starting with "#" is treated as a comment. Therefore, this parameter file contains all default settings. Save this file as "default.prm" and solve "simple.lp" with these settings by running the command:
This model is solved by using the maximal number of cores on your PC:
The following solver is parallelized by UG version 1.0.0 [GitHash: cc58cd67] SCIP version 9.0.0 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Soplex 7.0.0] [GitHash: 7205bedd94] Copyright (c) 2002-2024 Zuse Institute Berlin (ZIB) External libraries: Readline 7.0 GNU library for command line editing (gnu.org/s/readline) Soplex 7.0.0 Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: 6657fb3b] 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 690e9e7 AMPL .nl file reader library (github.com/ampl/mp) bliss 0.77 Computing Graph Automorphisms by T. Junttila and P. Kaski (users.aalto.fi/~tjunttil/bliss) sassy 1.1 Symmetry preprocessor by Markus Anders (github.com/markusa4/sassy) Default LC presolving (default). ** Before presolving: virtualMemUsedAtLc = 45617152, getVmSize() = 45617152, SCIPgetMemUsed() = 415385, SCIPgetMemTotal() = 488113, SCIPgetMemExternEstim() = 1048576 ** set memory limit for presolving in LC to 8.79603e+12 for SCIP ** ** Estimated virtualMemUsedAtSolver = 30489713, getVmSize() = 46673920, SCIPgetMemUsed() = 418647, SCIPgetMemTotal() = 506087, SCIPgetMemExternEstim() = 1048576 ** set memory limit for solvers to 9.7734e+11 for each SCIP ** Original Problem : Problem name : simple Variables : 4 (0 binary, 1 integer, 0 implicit integer, 3 continuous) Constraints : 3 Objective sense : maximize Presolved Problem : Variables : 3 (1 binary, 0 integer, 0 implicit integer, 2 continuous) Constraints : 2 Constraints : Number linear : 2 ** Instance transfer method used: 0 ** ParaScipInstance copy does not increase the number of variables. ** LC is working with racing ramp-up and with rebuilding tree after racing. Nodes Active Time Nodes Left Solvers Best Integer Best Node Gap Best Node(S) Gap(S) * 0 0 1 8 34.0000 - - * 0 0 1 8 53.0000 - - * 0 0 1 8 122.5000 - - 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% 0 1 0 0 122.5000 122.5000 0.00% SCIP Status : problem is solved Total Time : 0.04 solving : 0.04 presolving : 0.00 (included in solving) B&B Tree : nodes (total) : 1 Solution : Solutions found : 3 Primal Bound : +1.22500000000000e+02 Dual Bound : +1.22500000000000e+02 Gap : 0.00000 %
The solution file "sample.sol" will be written as below:
[ Final Solution ] objective value: 122.5 x4 3 (obj:1) x2 10.5 (obj:2) x3 19.5 (obj:3) x1 40 (obj:1)