Gurobi vs. Cplex -- lower bounds
Awaiting user inputI have an lp file (produced by Cplex) for a difficult MIP. I tried running it on both Gurobi and Cplex to compare. In both cases I didn't set any parameters. Cplex almost immediately finds a fairly good lower bound, even in the root, but struggles to find good solutions. On the other hand, Gurobi does fantastically with finding a good primal -- much much better than anything that I've been able to get from Cplex, but it's really struggling to find a good lower bound. Even after branching of over 2000 nodes, the lower bound is much worse than the one that Cplex found in the root! Are there any suggestions as to what settings I should make to improve matters?
Also, there's a slight glitch that I encountered. When Cplex wrote out the lp file it wrote something like
a - b => 0
for a constraint, but Gurobi didn't like this. I edited the file to change all the => to >=, and then things worked. Is this a bug with Cplex (not adhering to the lp standard) or an omission by Gurobi?
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
According to Cplex' documentation it accepts \(\texttt{=>}\) as \(\geq\) so it might be Cplex not using the standard LP notation.
Could you share the LP file? You can find instructions on how to upload files in the forum in the Posting to the Community Forum article. This would allow the Community to have a closer look at the behavior you described.
Best regards,
Jaromił0 -
Unfortunately, the computer that I use Gurobi and Cplex on is not connected to the internet, so I can't really upload the file. In relation to my other comment, the quadratic program that I generated also had an offset in the objective. It appears that Gurobi ignored the offset (after giving a complaint that it couldn't find a variable), so that the results that I was seeing weren't really reflective of the progress in the problem, since they didn't take into account the offset. I've rewritten the lp to have a variable, which is always set to 1, to be multiplied by the offset in the objective. However, our temporary Gurobi license has expired, so I'll have to wait 30 days until we get our permanent license to try it out.
0
Post is closed for comments.
Comments
3 comments