[SCIP] HSL library for IPOPT=true option

Stefan Vigerske stefan at math.hu-berlin.de
Sat May 27 12:46:58 CEST 2017


Hi,

if Ipopt was build without any linear solvers, then it will try to load 
MA27 from a libhsl.so library at runtime. It's up to the user to provide 
this library. If Ipopt was build with a linear solver (e.g., MA27, 
Mumps), then it will use the one it was build with.
HSL provides a special Ipopt package of their solvers at 
http://www.hsl.rl.ac.uk/ipopt/ One can use this to build Ipopt with HSL 
codes, or to build a libhsl.so that Ipopt can load at runtime. HSL codes 
are free for academics, I don't know what would apply for SAP.

Alternatively, you could just build Ipopt with Mumps as linear solver. 
That is open source, though performance can be different than with MA27. 
But if you are mainly interested in having SCIP use the Lapack interface 
of Ipopt, then that doesn't matter.

Finally, you could also try to turn off everything that tries to solve a 
NLP in SCIP, so it doesn't even try to call Ipopt as a solver. By 
setting parameters this would be, e.g.,
   constraints/quadratic/gaugecuts = FALSE
   constraints/quadratic/sepanlpmincont = 2.0
   heuristics/subnlp/freq = -1
   heuristics/nlpdiving/freq = -1
Or just remove the creation of nlpi-ipopt towards the end of 
src/scip/scipdefplugins.c

Hope that helps,
Stefan


On 05/26/2017 08:43 PM, Shigiltchoff, Oleg wrote:
> I'm trying to use SCIP in our c++ library. I am compiling (suse linux) with IPOPT=true option to activate LAPACK (fortran library). After installing libgfortran.so.3,the linking gives the following error (see below). Apparently I need libhsl.so library, which is available at https://github.com/casadi/casadi/wiki/Obtaining-HSL. Now, the question is if I need HSL production license? Our company (SAP) has SCIP license for OFL (our SAP product), but they don't use LAPACK. So, if HSL is part of SCIP, how do I obtain libhsl.co library?
> 
> Original Problem:
> STATISTICS
>    Problem name     : problem1
>    Variables        : 5 (0 binary, 0 integer, 0 implicit integer, 5 continuous)
>    Constraints      : 0 initial, 2 maximal
> OBJECTIVE
>    Sense            : minimize
> VARIABLES
>    [continuous] <x1>: obj=0, original bounds=[-3,3]
>    [continuous] <x2>: obj=0, original bounds=[-3,3]
>    [continuous] <x3>: obj=0, original bounds=[-3,3]
>    [continuous] <x4>: obj=0, original bounds=[-3,3]
>    [continuous] <obj>: obj=1, original bounds=[-inf,+inf]
> CONSTRAINTS
>    [linear] <constrj>:  -0.103111371376616<x1>[C] -0.0918254105621112<x2>[C] -0.0360826398483436<x3>[C] +0.0683195483527113<x4>[C] >= -1;
>    [quadratic] <constrm>:  +13.1200771409643<x1>[C] +57.2279181564708<x1>[C]^2 +3.95909498225939<x2>[C] +53.2052128347995<x2>[C]^2 +23.5748721949639<x3>[C] +51.4737147305889<x3>[C]^2 +23.2133345748624<x4>[C] +41.831859605578<x4>[C]^2 -<obj>[C] +95.7868558769789<x1>[C]<x2>[C] +91.0132323375585<x1>[C]<x3>[C] +67.4959089332421<x1>[C]<x4>[C] +97.4849344358596<x2>[C]<x3>[C] +74.6177976486421<x2>[C]<x4>[C] +79.4290929005315<x3>[C]<x4>[C] <= 0;
> END
> 
> Solving...
> feasible solution found by trivial heuristic after 0.0 seconds, objective value 0.000000e+00
> presolving:
> (round 1, fast)       0 del vars, 1 del conss, 0 add conss, 1 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
> (round 2, fast)       0 del vars, 1 del conss, 0 add conss, 2 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
> presolving (3 rounds: 3 fast, 1 medium, 1 exhaustive):
>   0 deleted vars, 1 deleted constraints, 0 added constraints, 2 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
>   0 implications, 0 cliques
> presolved problem has 5 variables (0 bin, 0 int, 0 impl, 5 cont) and 1 constraints
>        1 constraints of type <quadratic>
> Presolving Time: 0.00
> transformed 1/2 original solutions to the transformed problem space
> Exception of type: OPTION_INVALID in file "IpAlgBuilder.cpp" at line 271:
>   Exception message: Selected linear solver MA27 not available.
> Tried to obtain MA27 from shared library "libhsl.so", but the following error occured:
> libhsl.so: cannot open shared object file: No such file or directory
> [src/nlpi/nlpi_ipopt.cpp:1110] ERROR: Ipopt returned with application return status -12
> [src/nlpi/nlpi.c:503] ERROR: Error <0> in function call
> [src/scip/cons_quadratic.c:7117] ERROR: Error <0> in function call
> [src/scip/cons_quadratic.c:7286] ERROR: Error <0> in function call
> [src/scip/cons_quadratic.c:10662] ERROR: Error <0> in function call
> [src/scip/cons.c:2623] ERROR: Error <0> in function call
> [src/scip/set.c:4559] ERROR: Error <0> in function call
> [src/scip/scip.c:13864] ERROR: Error <0> in function call
> [src/scip/scip.c:14650] ERROR: Error <0> in function call
> [../../AFL/SCAL/EDS/optimize.cpp:233] ERROR: Error <0> in function call
> 
> 
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
> 


-- 
http://www.gams.com/~stefan


More information about the Scip mailing list