[SCIP] Reoptimization

Ambros Gleixner gleixner at zib.de
Mon Jul 3 17:54:54 CEST 2023


Hi Thiago,

 > I imagine that SCIP is somehow taking advantage of the solution of the
 > last LP resolved to solve the next one, I would like to disable this.

No, after SCIPfreeTransform(), all solving information should be gone, 
so there is nothing you need to disable.


 > However, after some problems solved, I have an error due to numerical
 > instability. However, when writing each of the LPS and solving them
 > separately, I don't have this error.

This is most likely due to minimal numerical differences or a different 
order of variables and constraints when writing and reading the problems.

Generally, SCIP is not the right tool if you want to solve a sequence of 
LPs most efficiently.  It works, but like this you do not profit from 
warm starts as you would when you use a (simplex-based) LP solver 
directly.  (The reoptimization feature you mention is meant for warm 
starting the branch-and-bound search under specific conditions on the 
problem modifications, so the integer part of the MIP.)

Nevertheless, you could file a bug report with more details on 
github.com/scipopt/scip regarding the numerical issues.

Best,
Ambros



Am 03.07.2023 um 11:35 schrieb Thiago NOVAES:
> Hi,
> 
> I'm having a problem that I can't solve even after consulting the 
> appropriate documentation and channels.
> 
> What I want to do is solve a sequence of LPs, between each problem I 
> make modifications (e.g. add variables and constraints, modify variables 
> and constraints...). Initially I used SCIPfreeTransforme() after every 
> SCIPsolve().
> 
> However, after some problems solved, I have an error due to numerical 
> instability. However, when writing each of the LPS and solving them 
> separately, I don't have this error.
> 
> I imagine that SCIP is somehow taking advantage of the solution of the 
> last LP resolved to solve the next one, I would like to disable this. I 
> found this link https://www.scipopt.org/doc-4.0.1/html/REOPT.php 
> <https://www.scipopt.org/doc-4.0.1/html/REOPT.php>which seems to be what 
> I need.
> 
> The problem is that even using SCIPenableReoptimization() and 
> SCIPfreeReoptSolve(), I can't use SCIPchgCoefLinear(), because I'm not 
> in the correct stage.
> 
> If I use SCIPenableReoptimization() and SCIPfreeTransforme() I get an 
> error saying "ERROR: constraint handler <benderslp> already initialized".
> 
> I don't know if my explanation is clear, but my problem seems to be the 
> same one described here: 
> https://stackoverflow.com/questions/72027891/resolving-lps-with-constraint-addition-deletion-in-scip <https://stackoverflow.com/questions/72027891/resolving-lps-with-constraint-addition-deletion-in-scip>
> 
> Could you send me a small example using SCIPenableReoptimization(), 
> resolving an LP, then making additions and modifications and solving the 
> problem again?
> 
> Best Regards,
> 
> Thiago NOVAES
> 
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip


More information about the Scip mailing list