[Scip] Behavior of scipFixVar

michael.winkler at zib.de michael.winkler at zib.de
Sat Jun 7 13:15:26 CEST 2014


Hi,

actually what you want to do in b) is performing a restart instead of
creating a copy. This can be done by calling SCIPrestartSolve(). As a
result SCIP will perform a restart as soon as possible. This will then
perform presolving and all found solution are still saved and known to
SCIP as before (note that some of these solution might become invalid in
this restartet instance).

Then whether you want to only perform fixings or even do a restart,
depends on how far the branch and bound process is already progressed and
how many fixings you perdformed. SCIP itself performs restarts in the root
node by itself if enough fixings are found (5% of the variables).

So a restart can help if you fix many variables, or if you know that your
fixings will result to many more fixed variables and you are quite early
in the optimization process.

(If you do all of this in the interactive shell you need to use the
"newstart" and then again "optimize" command.)

Best, Michael


> Hi,
>
> I have some questions about the behavior of scipFixVar.
>
> After solving a problem for some iteration, I stopped it & find that
> some variables are definitely 0. I wish to continue solving a smaller
> problem rather than the original.
>
> a) Do I use scipFixVar on the stopped problem? Or
> b) I create a new copy of the problem from the onset & use scipFixVar on
> the new copy. With this presolve, will remove the known variable & as a
> result the problem will be smaller.
>
> If I do b), subsequent solving may find some solutions found before
> during the first solving. Can this be avoided by loading (into the new
> copy) solutions found before? What scip command can I use to load these
> solutions?
>
> Thanks a lot.
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>




More information about the Scip mailing list