[SCIP] Presolving after pricing variables

berlingjan at gmail.com berlingjan at gmail.com
Fri Jul 26 21:02:39 CEST 2019


Hi Gerald,

I went for solution 2) to disable the pricer and to restart scip. The problem is that the pricer can only be disabled when scip is in stage problem or in stage solved and I could not manage to reach these stages from the pricer. In scip, time limit is reached but even though after the SCIPsolve() is finished, scip is in stage solving. How could scip reach stage solved? Is it necessary that the problem is solved to optimality? Could we go back to stage problem? 

Best,
Jan

> Am 25.07.2019 um 21:29 schrieb Gerald Gamrath <gamrath at zib.de>:
> 
> Hi Jan,
> 
> there are two options that you already mentioned which I would suggest as well, but I did not try them myself:
> 
> 1) copy the problem using SCIPcopy(), where you can set copypricers to FALSE. Additionally, you need to loop over all constraints in the subscip once and set them to be not modifiable via SCIPsetConsModifiable(). SCIP can only perform very few presolving, propagation, and separation steps if constraints are marked to be modifiable, because in that case, SCIP needs to assume that new variables will be added to the constraint later which might conflict with the reductions performed now.
> 
> 2) Again, set all constraint to be non-modifiable, disable the pricer, and then perform a restart and solve the problem.
> 
> In both cases, you potentially need to re-enable features that you disabled for the column generation phase.
> 
> I would probably go for the second option first, because it should be easier to implement, but I am not sure if perhaps some flags can still be set incorrectly in that case. If you still observe considerable differences, please write again.
> 
> Best,
> Gerald
> 
>> Am 24.07.19 um 18:54 schrieb Jan Berling:
>> Dear SCIP community,
>>  
>> I have a binary optimization problem which uses column generation, i. a. because adding all variables is not possible due to memory limitations. However, solving takes a lot of time and so pricing is stopped when a timelimit is exceeded, by setting the result pointer to SCIP_SUCCESS.
>>  
>> SCIP continues solving the “final restricted master problem” but this takes a lot of time.
>>  
>> I made an experiment giving the final transformed lp file to out-of-the-box-SCIP and the problem is solved more quickly, due to presolvers and cutting planes.
>>  
>> Is it possible to restart the solving of the transformed problem after pricing is stopped and to enable presolving/cutting-planes (e.g. by copying the problem, enabling presolvers, restarting, setting SCIP stage...)?
>> 
>> Kind regards,
>> Jan
>> 
>> 
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190726/562a84e9/attachment.html>


More information about the Scip mailing list