LP reported Infeasible by presolve is Optimal without #2510
-
|
Dear HiGHS developers, I have a not so large LP (6763 rows; 6735 cols; 12187 nonzeros) and I am attaching it to this discussion - in LP format (I had to change the extension to TXT, but it's an LP file generated by HiGHS). Up to now I had been using GLPK (which didn't complain about infeasibility in solving this type of problems) and I was looking forward to use HiGHS as it is so much faster - 10 times faster on my problems - when it doesn't complain about infeasibility. I have a number of questions. I have only overridden these options in a file named "highs_options.txt", as I do not need incredible precision: Running with:
I get: So the presolver tells me that the model is infeasible. If I use So the model has been solved to optimality. I get the exact same solution from GLPK (with presolver). Of course I could disable the presolver in HiGHS, but then I lose all the speed advantage. Models are solved relatively fast but I have to solve thousand upon thousands of them, and without presolver HiGHS is actually 10% slower than GLPK (on average). So, for the questions:
This is on Windows 10, HiGHS 1.11.0 compiled via Visual Studio/CMake. Thank you in advance for any suggestion. Output of GLPK (glpsol.exe), if it can help in any way (GLPK.lp is the same file as HiGHS.lp, but generated by GLPK). Note that the number of nonzeros in GLPK is greater than the ones in HiGHS, because if I don't force HiGHS to exclude values < 1e-6 then I get that the problem is infeasible. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
I've reproduced your experience with this model. I gave it to a commercial solver which (like vanilla HiGHS) identified infeasibility in presolve. Switching presolve off, that same commercial solver (like vanilla HiGHS) still identifies infeasibility. Fundamentally, your LP is badly scaled and close to being infeasible, in that it may only have a small space of feasible solutions, and the bad scaling can make this space appear empty When HiGHS options are set (as you describe) to obtain an optimal solution, the nonzero optimal values of your variables are (at least) of order 10^3, and I see that some of your bounds of order 10^5 are active. Given that the feasibility tolerance is 1e-6, this is asking for 11 orders of magnitude of accuracy. Far from being the worst that I've seen, but still challenging. Ideally your optimal solution values and constraint activities should be of order one. HiGHS has a The value of |
Beta Was this translation helpful? Give feedback.
-
|
Thank you very much @jajhall for your thoughtful answer. If I came out as disrespectful, please accept my apologies, it was definitely not my intention. I am mostly a programmer and I am not very strong in linear programming (on the contrary...). I will implement your suggestion of using Other than that, you were explaining about "feasibility tolerance". I can see that HiGHS has 6 possible entries for tolerances:
For problems like mine, would you suggest modifying one (or more, or all?) of them? And if yes, assuming my problems span the ranges/magnitudes you have seen for the constraint matrix/bounds, which value(s) would you suggest me to use? Sorry for the dumb questions, any suggestion is most welcome. |
Beta Was this translation helpful? Give feedback.
I've reproduced your experience with this model.
I gave it to a commercial solver which (like vanilla HiGHS) identified infeasibility in presolve. Switching presolve off, that same commercial solver (like vanilla HiGHS) still identifies infeasibility.
Fundamentally, your LP is badly scaled and close to being infeasible, in that it may only have a small space of feasible solutions, and the bad scaling can make this space appear empty
When HiGHS options are set (as you describe) to obtain an optimal solution, the nonzero optimal values of your variables are (at least) of order 10^3, and I see that some of your bounds of order 10^5 are active. Given that the feasibility tolerance is 1e-6, th…