[Cbc] [CBC] gomory makes problem infeasible (even in version 2.9.5)

mg giunto.cardanico at gmail.com
Wed Aug 12 10:47:28 EDT 2015


Thanks a lot John,
Regards

Marco


2015-08-12 16:26 GMT+02:00 John Forrest <john.forrest at fastercoin.com>:

> Marco,
>
> The bad cut looks like -
>
> cut has violation of 0.666667 value 1.66667
>  [9,0.333333] [11,-0.333333] [15,-3.33333] [4,0.666667] [8,-2]
> [12,0.666667] [13,0.666667] [14,0.666667] [17,0.666667] <= -18
>
> Of course the numbers are not exactly that and four entries are for
> continuous variables.  If they had all been integral then I think cut would
> have been cleaned up.  As it is the cut made the problem infeasible by 4e-7.
>
> If there had been more variables in cut and some non integer then the cut
> would have been relaxed a tiny bit.
>
> As I don't want to make sudden changes, I have changed the code a bit so
> that you can define the number of variables in cut (with some non integer)
> when the cut will be relaxed a bit.
>
> To do this you have to configure with -DGOMORY_RELAX_NUMBER=n.  (n==5)
> works for you.  This only affects cuts with non integer variables.
>
> John
>
>
> On 10/08/15 07:50, mg wrote:
>
> Sorry, here's the missing attachment
>
> Regards,
> Marco
>
> 2015-07-28 15:36 GMT+02:00 John Forrest <john.forrest at fastercoin.com>:
>
>> Attached????????????
>>
>>
>> On 24/07/15 08:29, mg wrote:
>>
>> Hi All,
>> if I remember correctly in version 2.9.4, gomory cuts generator started
>> to give some problems causing false infeasibilities. In theory, version
>> 2.9.5 contains some fixes for this issue, but I think it's not completely
>> corrected since I've found a model that appears infeasible unless you
>> disable gomory cuts.
>>
>> Attached you can find the LP file. Please note that I'm running this
>> model through callCbc(), and you need to disable heuristics otherwise
>> DiveCoefficient will find a solution before gomory cuts "too much"..
>>
>> Here's a piece of code to reproduce the problem :
>>
>> OsiClpSolverInterface solver;
>> CbcModel model(solver);
>> model.solver()->readLp("infeas.lp");
>> std::string args("-heur off -solve"); // using "-gomory off -solve" it
>> works
>> callCbc(args, model);
>>
>> Thanks in advance,
>> Marco
>>
>>
>> _______________________________________________
>> Cbc mailing listCbc at list.coin-or.orghttp://list.coin-or.org/mailman/listinfo/cbc
>>
>>
>>
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/cbc
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20150812/5d4a439e/attachment.html>


More information about the Cbc mailing list