-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xpress ignore LP warm starts #127
Comments
I would like to get this working as soon as possible. Someone has already tried something? Is there some hint from what is the source of the bug? I will probably work this weekend on this problem. I am almost sure the warm start is really being ignored because I currently warm start a model with a feasible solution of a subset of the model (a model with less columns) and the XPress spends hours without finding any feasible solution. |
https://www.fico.com/fico-xpress-optimization/docs/latest/solver/optimizer/HTML/XPRSaddmipsol.html |
Before making the change, let me confirm if I understood correctly. The solution is to call the aforementioned XPRESS function inside
Ah, I found it, is this |
You can write as follows: function MOI.set(
model::Optimizer,
::MOI.VariablePrimalStart,
x::MOI.VariableIndex,
value::Union{Nothing, Float64}
)
info = _info(model, x)
info.start = value
if value !== nothing
Xpress.addmipsol(model.inner, 1, [value], [info.column], C_NULL)
end
return
end |
Created a PR (#148) to solve the problem. The solution is considerably more complex. Not only because I believe that |
Fix issue #127 (Xpress ignore warm starts).
Since #148, MIP warmstart is accepted. LP warmstart for xpress is harder because we need a basis (see https://www.fico.com/fico-xpress-optimization/docs/latest/solver/optimizer/HTML/XPRSloadbasis.html) |
If I can raise two questions:
|
Yes, xpress does re-use the last solution for LPs. JuMP API for start values is not restricted to MIP by definition. Although it fits well on Xpress' mip start and fits poorly on xpress lp start because it would require converting the solution into a basis. |
It looks like it does, but I couldn't find any evidence these are actually passed to the solver
Xpress.jl/src/MOI/MOI_wrapper.jl
Lines 2866 to 2886 in e325c68
Reported on Discourse: https://discourse.julialang.org/t/warmstarting-variables-does-not-work-with-xpress/60989
The text was updated successfully, but these errors were encountered: