[Scip] Running SCIP as a local optimizer

Stefan Vigerske stefan at math.hu-berlin.de
Mon Mar 10 11:11:18 CET 2014


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.
>



More information about the Scip mailing list