[SCIP] Copying SCIP with active pricers fails

Alexander Helber helber at or.rwth-aachen.de
Tue Aug 8 16:04:51 CEST 2023


Hi Ambros,

thank you for looking into it! I tried your suggestion, but i still 
encountered two problems:

1. Deactivating the pricer is not possible in the PROBLEM stage. My 
workaround was to copy with pricing disabled and then include and 
activate the pricer in the copied SCIP.
2. Due to me copying with pricing disabled, SCIP marked all copied 
constraints to not be modifiable. This led the copy to be trivially 
solvable in presolving. Solution here was to iterate through all my 
original constraints and applying their modifiable tag to their copies.

So I think it would be very helpful to have a clean fix in a future 
release :)

All the best,
Alex

P.S: If anyone else stumbles upon the same problem and fixes it in a 
similar way, don't forget to "SCIPcopyParamSettings" (or set them to 
specific values for the copy) after including the pricer in the copy if 
your pricer has parameters.

On 04.08.23 09:57, Ambros Gleixner wrote:
> Hi Alex,
>
> Sorry for the longer wait.  You clearly identified a logical bug here.
>
> One workaround might be:
> 1. deactivate your pricer in the sourcescip by SCIPdeactivatePricer()
> 2. copy (with enablepricing=TRUE)
> 3. activate your pricer again in the sourcescip
> 4. find pricer in the targetscip and activate it
>
> Please let us know if that works or not.  We will look into fixing 
> this cleanly in future versions.
>
> Best,
> Ambros
>
>
> Am 24.07.2023 um 11:57 schrieb Alexander Helber:
>> Dear SCIP community,
>>
>> I am working on a branch-and-price approach for a specific problem 
>> and wanted to add a simple heuristic which solves the same problem 
>> with some variables fixed. I implemented the copying callbacks for my 
>> problem data and pricer, but now face the problem that `SCIPcopy` 
>> throws an exception due to the SCIP copy being in the wrong stage.
>>
>> The SCIP copy is a freshly created instance and therefore the INIT 
>> stage, as expected by `SCIPcopy` (see `scip_copy:2888` in SCIP 
>> 8.0.2). But then the pricers are added and activated (`set.c:911`), 
>> which is only possible in the PROBLEM stage (`scip_pricer.c:380`). I 
>> can not find a use of `SCIPcopy` with pricing enabled in the codebase 
>> of the SCIP Optimization Suite, so it is unclear to me if I should do 
>> something different here. I would greatly appreciate your help.
>>
>> All the best
>> Alex
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-- 
Alexander Helber
Research and Teaching Assistant

Chair of Operations Research
RWTH Aachen University
Kackertstrasse 7
52072 Aachen
Germany
Web: or.rwth-aachen.de
Mail:helber at or.rwth-aachen.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20230808/21ff4d6e/attachment.html>


More information about the Scip mailing list