A small LP that fail to solve
Just started using HiGHS and very happy with it so far. Thanks!
I'm getting into some trouble with model status "Unknown" after optimizing, and wondering whether it could be a bug. I exported the problematic LP from a HiGHS instance into both .lp and .mps formats. Solving on the command line reproduces the issue when using the .mps file (but not the .lp file). Other solvers such as CBC and Gurobi report "Optimal" for both files.
Attaching the .mps file and the solver output. test.mps.gz highs.log.txt
I've looked at this with detailed logging on, and see what's happening.
Implementing a fix isn't difficult, but it's slightly scary, as it will change the behaviour of the simplex solver in a very small way
From: Bjørnar Steinnes Luteberget @.> Sent: Wednesday, October 30, 2024 12:04:09 PM To: ERGO-Code/HiGHS @.> Cc: Subscribed @.***> Subject: [ERGO-Code/HiGHS] A small LP that fail to solve (Issue #2015)
This email was sent to you by someone outside the University. You should only click on links or attachments if you are certain that the email is genuine and the content is safe.
Just started using HiGHS and very happy with it so far. Thanks!
I'm getting into some trouble with model status "Unknown" after optimizing, and wondering whether it could be a bug. I saved the problematic LP instances from a HiGHS instance into both .lp and .mps formats. Solving on the command line reproduces the issue when using the .mps file (but not the .lp file). Other solvers such as CBC and Gurobi report "Optimal" for both files.
Attaching the .mps file and the solver output. test.mps.gzhttps://github.com/user-attachments/files/17571965/test.mps.gz highs.log.txthttps://github.com/user-attachments/files/17571968/highs.log.txt
— Reply to this email directly, view it on GitHubhttps://github.com/ERGO-Code/HiGHS/issues/2015, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFMWLY7HREU5GWRZ4XFIMATZ6DDLTAVCNFSM6AAAAABQ36JYZKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGYZDGOBYGI3TGMI. You are receiving this because you are subscribed to this thread.Message ID: @.***>
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.
and see what's happening.
Hey @jajhall, are you able to elaborate on what's happening here? Have similarly run into highs returning unknown status whereas gurobi is returning optimal.
The solutions from highs and gurobi appear to be the same regardless. I have attached the log with log_dev_level=2 turned on - would be really great if you can offer any insight! Happy to open a new issue if it looks different to what has happened with this issue.
I don't think this is the same as the original case in this issue. I don't quite understand why simplex is stopping with 23 small primal infeasibilities, although you have some very large cost O(10^7) and RHS O(10^8) values that may be making it hard to solve the problem to absolute tolerances of 1e-7, since 10^8/10^-7=10^15, which is getting close to the reciprocal of machine precision.
However, as you observe, the point obtained by HiGHS is close to being optimal, so you can take your own decision to accept it. If, for example, the primal infeasibilities correspond to column or row activities that exceed a bound of 1e8 by 1e-5, then the relative infeasibility is very low.
I'm doing some work in a branch related to #2251 that will probably end up with HiGHS accepting that this solution is "relatively" optimal, and supply entries in the HighsInfo structure that allow users to assess the absolute and relative errors. Gurobi may do something similar, since it occasionally reports a solution as being "optimal", but with absolute primal infeasibilities that exceed the tolerance.
I can't guarantee to reproduce what you observe, but are you able to share the model?
Also, what version of HiGHS, and what operating system are you using?
@jajhall Thanks for your quick response. I have run on both 1.9.0 and 1.10.0 on linux and macOS. With some further experimentation I am actually experiencing some erratic behaviour - sometimes the solution does match gurobi but sometimes it's way off.
I'll send the model and some more info via email if that's OK so as not to further hijack this GitHub issue!