[Clp] Clp_initialPrimalSolve claims infeasibility where it should not

John Forrest jjhforrest at gmail.com
Tue Dec 5 10:54:38 EST 2023


Thank you for finding a bug which has been around for some years - and 
more likely to occur on small problems!

It was a bug in presolve - in CoinPresolveDual.cpp

Fixed in master and stable but not in a release.

On 05/12/2023 10:37, Henning Thielemann wrote:
>
> On Mon, 4 Dec 2023, John Forrest wrote:
>
>> Unable to reproduce - either on stable or master.
>>
>> The exact driver used and log file would be useful.
>
> See attached minimal example, it is really just loading the model and 
> solving. It gives following output:
>
> Coin0001I At line 1 NAME          ClpDefau
> Coin0001I At line 2 ROWS
> Coin0001I At line 7 COLUMNS
> Coin0001I At line 19 RHS
> Coin0001I At line 23 RANGES
> Coin0001I At line 26 BOUNDS
> Coin0001I At line 35 ENDATA
> Coin0002I Problem ClpDefau has 3 rows, 4 columns and 7 elements
> Clp0027I Model was imported from initial-primal-infeasible.mps in 
> 0.000105 seconds
> Coin0506I Presolve 2 (-1) rows, 2 (-2) columns and 4 (-3) elements
> Clp0006I 0  Obj -928 Primal inf 97.083331 (2) Dual inf 1.675e+08 (2)
> Clp0029I End of values pass after 2 iterations
> Clp0006I 2  Obj -1168.0667 Primal inf 68.608332 (1)
> Clp0006I 2  Obj -1168.0667 Primal inf 68.608332 (1) Dual inf 1.999999 (1)
> Clp0006I 3  Obj -1030.85 Primal inf 68.608332 (1)
> Clp0001I Primal infeasible - objective value -1030.85
> Coin0505I Presolved problem not optimal, resolve after postsolve
> Coin0511I After Postsolve, objective -1030.85, infeasibilities - dual 
> 0 (0), primal 205.825 (1)
> Clp0032I PrimalInfeasible objective -1030.85 - 3 iterations time 
> 0.002, Presolve 0.00
> status: 1
>
>
> Status 1 means "primal infeasible", right?
>
> If you out-comment model.setOptimizationDirection or replace 
> model.initialPrimalSolve by another method, status becomes 0 and no 
> infeasibility is reported.
>
> I use clp-1.17.9 from NixOS-23.11, but the library is named 
> libClp.so.1.14.9.




More information about the Clp mailing list