If solver=pdlp (or simplex or ipm, rather than the default value of choose) HiGHS interprets the specified solver as an requirement for it to be used and solves the relaxation, logging (for example)
Solving LP relaxation since solver = pdlp
This was convenient when LP benchmarking using the MPS file for a MIP, but it's a bit opaque (despite the logging message). It would be better for Highs::run() to respect the problem type.
Now that there is the solve_relaxation option, there's not the need for this convenience, and I'd like to eliminate it, but it would be quite an alarming change if someone was relying on it.
Gurobi (for example) will always solve a MIP as a MIP, using the "Method" parameter to determine how the root LP is solved. That's what we should do (ultimately).
If
solver=pdlp
(orsimplex
oripm
, rather than the default value ofchoose
) HiGHS interprets the specified solver as an requirement for it to be used and solves the relaxation, logging (for example)This was convenient when LP benchmarking using the MPS file for a MIP, but it's a bit opaque (despite the logging message). It would be better for
Highs::run()
to respect the problem type.Now that there is the
solve_relaxation
option, there's not the need for this convenience, and I'd like to eliminate it, but it would be quite an alarming change if someone was relying on it.Gurobi (for example) will always solve a MIP as a MIP, using the "Method" parameter to determine how the root LP is solved. That's what we should do (ultimately).