scipopt / scip

SCIP - Solving Constraint Integer Programs
Other
366 stars 63 forks source link

Difference in the objective value of a MIP in version 8.1.0 #86

Closed Thiago-NovaesB closed 4 months ago

Thiago-NovaesB commented 5 months ago

files.zip 1) original.lp is a MIP problem. 2) permutation.lp is the same "original" problem but with permuted rows and columns. 3) table.png is a table with the objective value for each problem in each version.

When solving both problems in versions 8.0.3 and 8.0.4, I get exactly the same solution (default parameters). However, when solving with 8.1.0 I find totally different solutions.

In "original", the objective value is very similar, so it's not necessarily a problem. But "permutation" has a very different objective value.

Can you help me understand what is happening?

DominikKamp commented 4 months ago

Thanks for creating this issue!

Indeed, we already looked into your bug report and could reproduce a bug on original.lp. This is currently under investigation. We will let you know when there are more insights.

It could be traced back to an issue in PaPILO. So a possible workaround is to set presolving/milp/maxrounds = 0. Could you check if this leads to the same objective value on original.lp and permutation.lp in your setup?

Thiago-NovaesB commented 4 months ago

I found very close values, such as 71882637.3662884 and 71882637.3662881. The variables are very different. It seems to me that this option really avoids the bug. I'll keep it that way until we have a more definitive solution. Thanks!

leoneifler commented 4 months ago

I will close this issue for now, as we have a separate internal issue tracking the bug.