coin-or / Cbc

COIN-OR Branch-and-Cut solver
Other
808 stars 115 forks source link

Constraint violation in a MILP (after preprocessing) #452

Open raphGbck opened 2 years ago

raphGbck commented 2 years ago

I built a MILP model with Pyomo, with a few binary variables. See in attach .LP file (converted to .txt for Github acceptance), obtained with Pyomo write function. milp_cbc_bug.txt

When I use the default options of CBC solver, I obtain a solution which is not acceptable: one constraint is violated: -0.014245 < 0 while it should be positive. I could obtain an acceptable solution by deactivating the default sos preprocessing. But I expect the default options to work as well.

Reproduced on Windows, CBC versions 2.10.3 and 2.10.5

jjhforrest commented 2 years ago

Thanks - will look at SOS bug in preprocessing.

On 15/11/2021 15:18, raphGbck wrote:

I built a MILP model with Pyomo, with a few binary variables. See in attach .LP file (converted to .txt for Github acceptance), obtained with Pyomo write function. milp_cbc_bug.txt https://github.com/coin-or/Cbc/files/7539596/milp_cbc_bug.txt

When I use the default options of CBC solver, I obtain a solution which is not acceptable: one constraint is violated: -0.014245 < 0 while it should be positive. I could obtain an acceptable solution by deactivating the default sos preprocessing. But I expect the default options to work as well.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/452, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHYPZH7SGMXDSX5Y2TUMEQCPANCNFSM5IB6G6HQ. 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.

jjhforrest commented 2 years ago

Tolerance problem - non zero bound was computed which was below tolerance but not zero.

Hopefully fixed in stable by being a bit more cautious. On 15/11/2021 15:18, raphGbck wrote:

I built a MILP model with Pyomo, with a few binary variables. See in attach .LP file (converted to .txt for Github acceptance), obtained with Pyomo write function. milp_cbc_bug.txt https://github.com/coin-or/Cbc/files/7539596/milp_cbc_bug.txt

When I use the default options of CBC solver, I obtain a solution which is not acceptable: one constraint is violated: -0.014245 < 0 while it should be positive. I could obtain an acceptable solution by deactivating the default sos preprocessing. But I expect the default options to work as well.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/452, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHYPZH7SGMXDSX5Y2TUMEQCPANCNFSM5IB6G6HQ. 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.