[Scip] Heuristics - Shift and Propagate

Stefan Heinz heinz at zib.de
Wed Nov 2 15:21:23 MET 2011


Hi Jacob,

On 11/02/11 14:53, Jacob Spönemann wrote:
>  Hi Stefan,
>
> thanks for the fast reply!
>
> I am using 2.0.1 and, if possible, want stay with it, since I already 
> did lots of evaluations with that version.
>
> The only plugin I found which uses a second SCIP instance seems to be 
> the heuristic "Crossover", which is called right before the execution 
> of "Shift and Propagate" (-> stack trace). So adding 
> SCIPcopyParamSettings() in heur_crossover.c right after 
> SCIP_CALL(SCIPcreate(&subscip)); could fix my problem?
>
Almost you should add the line

  SCIP_CALL( SCIPcopyParamSettings(scip, subscip) );

after

SCIP_CALL( SCIPincludeDefaultPlugins(subscip) );

That should be line heur_crossover.c:781.

Checking your issue I saw that several other heuristics are also not 
copying the settings in SCIP version 2.0.1. To force that you can change 
the following parameters:

heuristics/crossover/uselprows = FALSE
heuristics/dins/uselprows = FALSE
heuristics/localbranching/uselprows = FALSE
heuristics/mutation/uselplprows = FALSE
heuristics/rens/uselprows = FALSE
heuristics/rins/uselprows = FALSE

If you are using these values you do not need to change the code in 
these heuristics.

Best Stefan

PS: In SCIP version 2.1.0 these heuristics copy the settings ;-)

> Unfortunately, the error occurs after more than 3 hours of solving 
> (the error does not occur in smaller instances of the underlying 
> problem), so testing bugfixes takes some time...
>
> Best regards,
>
> Jacob
>
> Am 02.11.2011 12:51, schrieb Stefan Heinz:
>> Hi Jacob,
>>
>> which SCIP version are you using (I hope 2.1.0 ;-)). Can you send us 
>> additionally a back trace.
>>
>> We are assuming that this problem occurs in subscip where the 
>> settings of the master SCIP are not copied. Are you using within one 
>> of your plugins a second SCIP instance? If so you should copy the 
>> settings by using:
>>
>> SCIPcopyParamSettings()
>> http://scip.zib.de/doc/html/scip_8h.html#ade1245b4b0ecd94c85251d9330ed85ef 
>>
>>
>> Best Stefan
>>
>> On 11/02/11 09:52, Jacob Spönemann wrote:
>>> Hi all,
>>>
>>> I implemented a column generation algorithm using SCIP and Gurobi.
>>>
>>> I am running into problems when the heuristic "Shift and Propagate" 
>>> is executed (in the end convertSides in lpi_grb.c causes the error 
>>> because the Gurobi interface cannot handle ranged rows). I tried to 
>>> disable the heuristic by setting the frequency parameter to -1, but 
>>> nevertheless the heuristic is executed.
>>>
>>> I observed that the value of the frequency parameter is set to 0 
>>> during solution process. Is there any chance to prevent that?
>>>
>>> Best regards,
>>>
>>> Jacob
>>>
>>> Am 31.01.2011 04:29, schrieb Stephen J Maher:
>>>> Hi Gregor,
>>>>
>>>> I have been using the updated file that you sent to me. It worked 
>>>> well.
>>>>
>>>> Unfortunately I am having another problem with the shift and 
>>>> propagate heuristic. I have disabled it by setting the frequency 
>>>> parameter to -1, however I am getting the error
>>>>
>>>> src/scip/heur_shiftandpropagate.c:1464: heurExecShiftandpropagate: 
>>>> Assertion `SCIPisFeasEQ(scip, lb, ub)' failed
>>>>
>>>> Is there a way for me to avoid this error?
>>>>
>>>> Thanks for your help,
>>>>
>>>> Steve
>>>>
>>>>
>>>>
>>>> Gregor Hendel wrote:
>>>>> Hi Steve,
>>>>>
>>>>> I have changed the file heur_shiftandpropagate.c, s.t. it should 
>>>>> work now. In the attachment, you'll find the file. Just replace
>>>>> the old version in <scip-base-dir>/src/scip by the new one. I'm 
>>>>> not able to test it on column generation codes, so
>>>>> please inform me if this bugfix has fixed your problem sufficiently.
>>>>>
>>>>>> HI Gregor,
>>>>>>
>>>>>> I have run my code using the debugger gdb and it seems that the 
>>>>>> problem with this heuristic occurs when the rens heuristic is 
>>>>>> called. The problem still exists when I disable both, the rens 
>>>>>> and shift-and-propagate, heuristics. If I disable all of the 
>>>>>> heuristics the problem doesn't occur.
>>>>>>
>>>>>> I am adding variables dynamically. I have a variable pricer that 
>>>>>> adds variables representing network flows. I am also adding 
>>>>>> constraints of the problem through a version of benders 
>>>>>> decomposition. At each iteration I am removing all variables from 
>>>>>> the master problem and reinitialising using the optimal variables 
>>>>>> from the previous iteration.
>>>>>>
>>>>>> The problem is written as a MIP with the network flow variables 
>>>>>> being binary and there is a set of continuous variables as well.
>>>>>>
>>>>>> Thanks a lot for your help.
>>>>> Thank you for helping us developing a more stable SCIP version.
>>>>>
>>>>> Best, gregor
>>>>
>>>>
>>>> _______________________________________________
>>>> Scip mailing list
>>>> Scip at zib.de
>>>> http://listserv.zib.de/mailman/listinfo/scip
>>>
>>>
>>>
>>> _______________________________________________
>>> Scip mailing list
>>> Scip at zib.de
>>> http://listserv.zib.de/mailman/listinfo/scip
>>
>



More information about the Scip mailing list