I recently ran a MIP model with cplex
specifying it should stop solving when integer feasibility was proven (mipsolutions=1
).
When I ran the model with one easy objective function, the model did not find any feasible integer solutions after an hour. However, when I replaced the objective function with a different, also easy one—keeping all constraints the same—cplex
proved integer feasibility in 3–4 minutes.
Moreover, I constructed the second objective function in such a way that if I had plugged the solution from model 2 into the objective function from model 1, the objective function value would have been exactly equal the value that would have been obtained from model 1. And vice versa.
This makes me wonder: why does one objective function prove feasibility faster than another?