Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CBC reports a "feasible" problem as "infeasible" despite presolve being turned off #611

Open
tle4336 opened this issue Jul 24, 2023 · 2 comments

Comments

@tle4336
Copy link

tle4336 commented Jul 24, 2023

Hi everyone, I am currently encountering a weird situation where I have a LP model that should have had an optimal solution but it was judged by CBC Solver as infeasible, even when turning off the presolve mode. The objective function is max f(x) + g(y) with set of constraints T1, T2, T3 where T1 only contains constraints involving x, T2 only contains constraints involving y and T3 contains constraint involving both x and y (x and y are multi-dimensional vectors).

I know for the fact that f(x) and g(y) has maximum values at x=x_1 and y = y_1 with the same set of constraints T1 and T2, and max(f(x) + g(y)) with only set of constraints T1, T2 are feasible by CBC solver. However, when adding set of constraints T3, the problem became infeasible by CBC solver. But I can see it have at least one solution, which is at either x=x1 and y=0 or y=y1 and x=0 (meaning, max(f(x) + g(y)) = max(f(x)) or max(g(y)). So why does CBC solver judge this problem as infeasible?

Attached are the .zip file containing the two .mps files for infeasible vs feasible problems described exactly as above, all judged by CBC solver. I also attached a screenshots showing the message logs given by CBC.

Infeasible vs Feasible.zip

feasible_1
feasible_2
infeasible_2
infeasible_3
infeasible_4
infeasible_1

@chmduquesne @dpo @baol @merraksh @jjhforrest

@jjhforrest
Copy link
Contributor

L _C3578
HI_1302_x1015 _C3578 2.000000000000e+00
HI_8217_x682 _C3578 2.000000000000e+00
RHS _C3578 1.000000000000e+00

G _C2849
HI_1302_x1015 _C2849 1.000000000000e+00
RHS _C2849 1.000000000000e+00
Row _C2849 says HI_1302_x1015 at least 1.0 - this makes row _C3578 infeasible

@tle4336
Copy link
Author

tle4336 commented Jul 24, 2023

@jjhforrest Thank you so much for pointing out that. I am still having trouble in getting down to that kind of in-depth review level on the violated constraints. I will review where the coefficients 2.00000 came from in L_C3578 (they should all be 1).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants