[Scip] Running SCIP as a local optimizer

Ramón Casero Cañas rcasero at gmail.com
Thu Mar 13 19:01:46 CET 2014


Hi Stefan,

Many thanks for the advice. In principle I'd like to avoid leaving the
program depending on a non-standard recompilation, so I may look into Ipopt
(I still need SCIP for the first solution, so that'd be an improvement).

I've been trying to test your suggested parameters. In particular, maximum
number of nodes and solutions, as presolve doesn't seem to be a problem
(it's quick). But I'm not too sure what's going on as I'm not getting any
output on the screen​.

This is something that is happening with both SCIP binaries

scip-3.0.2.linux.x86_64.gnu.opt.spx
scip-3.1.0.linux.x86_64.gnu.opt.spx

I read the attached problem,

<SCREEN>
SCIP version 3.0.2 [precision: 8 byte] [memory: block] [mode: optimized]
[LP solver: SoPlex 1.7.2] [GitHash: 14f3662]
Copyright (c) 2002-2013 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin
(ZIB)

External codes:
  SoPlex 1.7.2         Linear Programming Solver developed at Zuse
Institute Berlin (soplex.zib.de) [GitHash: 9830bec]
  cppad-20120101.3     Algorithmic Differentiation of C++ algorithms
developed by B. Bell (www.coin-or.org/CppAD)
  ZLIB 1.2.7           General purpose compression library by J. Gailly and
M. Adler (zlib.net)
  GMP 5.1.1            GNU Multiple Precision Arithmetic Library developed
by T. Granlund (gmplib.org)
  ZIMPL 3.3.1          Zuse Institute Mathematical Programming Language
developed by T. Koch (zimpl.zib.de)
  Ipopt 3.11.0         Interior Point Optimizer developed by A. Waechter
et.al. (www.coin-or.org/Ipopt)

user parameter file <scip.set> not found - using default parameters

SCIP> read /tmp/model-tpdd8a084c_5635_4615_8349_d4127484c97d.pip

read problem </tmp/model-tpdd8a084c_5635_4615_8349_d4127484c97d.pip>
============

original problem has 13723 variables (0 bin, 0 int, 0 impl, 13723 cont) and
22863 constraints
</SCREEN>

set the parameter, and start solving

SCIP> set limits totalnodes 1
SCIP> optimize
presolving:
(round 1) 0 del vars, 0 del conss, 54864 add conss, 1 chg bounds, 0 chg
sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 2) 0 del vars, 0 del conss, 54864 add conss, 1 chg bounds, 0 chg
sides, 0 chg coeffs, 73152 upgd conss, 0 impls, 0 clqs
(round 3) 0 del vars, 0 del conss, 54864 add conss, 109729 chg bounds, 0
chg sides, 0 chg coeffs, 73152 upgd conss, 0 impls, 0 clqs
presolving (4 rounds):
 0 deleted vars, 0 deleted constraints, 54864 added constraints, 109729
tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
 0 implications, 0 cliques
presolved problem has 68587 variables (0 bin, 0 int, 0 impl, 68587 cont)
and 77727 constraints
  77727 constraints of type <quadratic>
Presolving Time: 68.66


>From here on, there's no output. Unless I hit CTRL+C. After a few seconds,
I start getting output on the screen

^Cpressed CTRL-C 1 times (5 times for forcing termination)
 time | node  | left  |LP iter|LP it/n| mem |mdpt |frac |vars |cons |cols
|rows |cuts |confs|strbr|  dualbound   | primalbound  |  gap
 1092s|     1 |     0 | 52792 |     - |3088M|   0 |   0 |  68k|  77k|  68k|
258k|   0 |   0 |   0 |-2.093579e+08 |      --      |    Inf
 1337s|     1 |     0 | 84850 |     - |3101M|   0 |   0 |  68k|  77k|  68k|
277k|  19k|   0 |   0 |-2.093579e+08 |      --      |    Inf


and after a while execution dies with a "user interruption" status.


 model-tpdd8a084c_5635_4615_8349_d4127484c97d.pip<https://docs.google.com/file/d/0B_DwAzcs96ajNEt2MDhiOWR4UHM/edit?usp=drive_web>
​

Best regards,

Ramon.



On 10 March 2014 10:11, Stefan Vigerske <stefan at math.hu-berlin.de> wrote:

> Hi,
>
> I think there is no mechanism implemented in the standalone binary that
> would let you do this.
> But if you can let SCIP read your solution, so it is accepted as feasible
> point, and add
>
>    if( SCIPgetBestSol(scip) != NULL )
>    {
>       SCIP_CALL( SCIPupdateStartpointHeurSubNlp(scip, heur,
> SCIPgetBestSol(scip), 0.0) );
>    }
>
> at src/scip/heur_subnlp.c:2010
> (just right before the  "if( heurdata->startcand == NULL )"  line)
> then you should get close to what you want.
>
> This will make SCIP call Ipopt with the best solution found so far as
> starting point, which is likely to be your initial solution.
> You might want to set a node limit to 1 or a solution limit to 2, as well.
> Also you could disable presolve (presolving/maxrounds = 0).
>
> Hope that helps,
> Stefan
>
>
>
>
> On 03/10/2014 01:47 AM, Ramón Casero Cañas wrote:
>
>> Dear all,
>>
>> I was wondering whether there's a way to tell SCIP to function as a
>> local optimizer.
>>
>> In particular, I have a solution of a quadratic program with
>> polynomial constraints. The solution fulfils the constraints, but it's
>> not a local minimum.
>>
>> What I would like SCIP to do is simply look for the local minimum
>> while still fulfilling the constraints, which I suppose will be much
>> faster than if it tries to start looking for a global minimum.
>>
>>  From previous advice, I think somebody would recommend using Ipopt
>> instead of SCIP. But I already have written the software to create my
>> objective function and constraints, run the optimization and read back
>> the solution for SCIP, so if I'd rather avoid having to write another
>> interface. (And if I got this right, SCIP is using Ipopt internally
>> anyway, right?).
>>
>> Best regards,
>>
>> Ramon.
>>
>>
>


-- 
Dr. Ramón Casero Cañas

Oxford e-Research Centre (OeRC)
University of Oxford
7 Keble Rd
Oxford OX1 3QG

tlf     +44 (0) 1865 610739
web     http://www.cs.ox.ac.uk/people/Ramon.CaseroCanas
photos  http://www.flickr.com/photos/rcasero/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20140313/a2674af5/attachment.html>


More information about the Scip mailing list