[Cbc] Options to prevent CBC from "stalling" in presolve / root node processing
John Forrest
john.forrest at fastercoin.com
Fri Jan 25 11:06:09 EST 2013
Troy,
Yes. I could have put an #if/endif around entire loop - it was only
meant as a very very temporary fix for Jean-Paul (or others with lots
and lots of such cuts).
Basically on his problem >95% of time was being spent seeing if cut was
duplicate!
I have now updated Cgl/trunk to do a better job of duplicates. Affects
CglPreProcess.?pp
John
On 25/01/13 15:23, Daniels, Troy (US SSA) wrote:
>
>> -----Original Message-----
>> From: cbc-bounces at list.coin-or.org [mailto:cbc-bounces at list.coin-or.org]
>> On Behalf Of John Forrest
>> Sent: Friday, January 25, 2013 9:40 AM
>> To: cbc at list.coin-or.org
>> Subject: Re: [Cbc] Options to prevent CBC from "stalling" in presolve / root
>> node processing
>>
>> Jean-Paul,
>>
>> The problem is due to a rather naive implementation of
>> insertCutIfNotDuplicate used in preprocessing. I will modify Cgl trunk code -
>> maybe to use a version of my code in CglProbing. That will take a day or so.
>>
>> Meanwhile change line 350 of OsiCuts.cpp from
>>
>> for ( int i =0; i<numberRowCuts;i++) {
>>
>> to
>>
>> for ( int i =0; i<numberRowCuts-numberRowCuts;i++) {
>>
> Is that what you meant to write? Unless I'm misreading something, that is equivalent to
>
> for ( int i =0; i<0;i++) {
>
> which is also equivalent to
>
> if (0) {
>
> Troy
>
>> this will insert lots of duplicates but that will be sorted out at end of
>> preprocessing.
>>
>> You will find a slight difference in speed!
>>
>> John
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/cbc
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>
More information about the Cbc
mailing list