[Cbc] [CBC] gomory makes problem infeasible (even in version 2.9.5)
John Forrest
john.forrest at fastercoin.com
Wed Aug 12 10:26:54 EDT 2015
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
> <mailto: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 list
>> Cbc at list.coin-or.org <mailto:Cbc at list.coin-or.org>
>> http://list.coin-or.org/mailman/listinfo/cbc
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org <mailto: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/05fd6313/attachment.html>
More information about the Cbc
mailing list