[Cbc] Very different results with CBC/CLP 2.7.7

John Forrest john.forrest at fastercoin.com
Tue Mar 19 10:20:09 EDT 2013


Hervé,

The changed results are due to some slight way in which coefficients are 
calculated.  Part way through presolve we get two constraints -

x = 1.0029681327 * y
and
x = 1.002968133 * y

presolve finds it can substitute for x but this gives

1.0e-10 * y == 0.0

This happens for sixty or so variables which change the objective as now 
all y must be zero.

I think this may also explain why a suboptimal basis i.e. with y==0 
looks optimal as code does not think it can increase y from zero on 
postsolved problem.

I have put an option in so small elements are cancelled on such 
substitutions.  Not wishing to change default behaviour I have made it 
an obscure option - so now you would need to set preoptions 1036 (i.e. 
the 12 you needed before + 1024).  At present this is only in trunk but 
should migrate to new version of stable soon.

John Forrest

On 12/03/13 17:21, John Forrest wrote:
> Hervé
>
> Your matrix does give Clp some problems.  I am not sure what changes 
> to Clp (or Coin presolve) have affected runs.  With my latest trunk 
> (not in svn) it solves with
> -preoption 12 -primaltol 1.0e-5 -primals
> but fails with latest stable.
>
> stable works with
> -presolve off -scaling off -primaltol 1.0e-5 -primals but takes 5-6 
> minutes.
>
> Leaving aside the primal feasibility issues, it seems to be a scaling 
> issue with objective.  I can give the unpresolved version a suboptimal 
> basis and it declares it optimal.
>
> I will carry on looking.
>
> John Forrest
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>



More information about the Cbc mailing list