coin-or / Cbc

COIN-OR Branch-and-Cut solver
Other
786 stars 113 forks source link

Problem proven infeasible (apparently wrong) #478

Open sergionuc opened 2 years ago

sergionuc commented 2 years ago

Hi!

First of all, thank you so much for all the great work on Cbc, it is a really powerful solver.

I have found a possible issue on Cbc. The solver claims the problem is infeasible. However, it is feasible and Glpk can solve it. I could reproduce the same error in a small problem (which is attached).

I am using Cbc 2.10.6 on macOS Monterey and Windows 10.

I would be very grateful if you could take a look.

Thanks for your help cbc_p1.lp.txt .

jjhforrest commented 2 years ago

Definitely a bug - will investigate.

On 26/01/2022 18:20, sergionuc wrote:

Hi!

First of all, thank you so much for all the great work on Cbc, it is a really powerful solver.

I have found a possible issue on Cbc. The solver claims the problem is infeasible. However, it is feasible and Glpk can solve it. I could reproduce the same error in a small problem (which is attached).

I am using Cbc 2.10.6 on macOS Monterey and Windows 10.

I would be very grateful if you could take a look.

Thanks for your help cbc_p1.lp.txt https://github.com/coin-or/Cbc/files/7944183/cbc_p1.lp.txt .

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/478, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHE4U56ZFI452NHUHRDUYA3OZANCNFSM5M3YIOHQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

jjhforrest commented 2 years ago

I have found the problem - I am not sure of the best fix.

There is an integer tolerance so that variables within epsilon of integer are treated as integer.  This slack is necessary on may real world problems.  The default is 1.0e-6.  With that the values of small positive for S and T seemed acceptable and so the code thought it had got an optimal solution at root node.  However on further checking this was not correct and the code got confused.  Element values of 1.0e11 are perfectly correct but caused this problem.

With -integertolerance 1.0e-11 the problem solves correctly.

I will think how to stop the code getting confused.

On 26/01/2022 18:20, sergionuc wrote:

Hi!

First of all, thank you so much for all the great work on Cbc, it is a really powerful solver.

I have found a possible issue on Cbc. The solver claims the problem is infeasible. However, it is feasible and Glpk can solve it. I could reproduce the same error in a small problem (which is attached).

I am using Cbc 2.10.6 on macOS Monterey and Windows 10.

I would be very grateful if you could take a look.

Thanks for your help cbc_p1.lp.txt https://github.com/coin-or/Cbc/files/7944183/cbc_p1.lp.txt .

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/478, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHE4U56ZFI452NHUHRDUYA3OZANCNFSM5M3YIOHQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

sergionuc commented 2 years ago

Thank you so much for your analysis and help!!