-
Notifications
You must be signed in to change notification settings - Fork 87
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
[FileFormats.MPS] another potential wrong result #2479
Comments
Thanks, I'll take a look.
One cause might be that we don't preserve row order when reading from an MPS file in MOI. It looks like presolve is different.
They're solving different models. |
Fix is #2480 |
Hi @odow |
No, you need |
Hi @odow, Sorry to interrupt you again. I tried ] add MathOptInterface#master; however, I found there was at least one wrong case in MIPLIB called supportcase6. The correct answer is 51906.47737 (https://miplib.zib.de/instance_details_supportcase6.html). However, both gurobi and highs returned infeasible. Could you take a look? Thanks a lot. |
My fix in #2480 wasn't quite correct. PR incoming |
Actually. There is some ambiguity. The variable So per Gurobi "The variables introduced between a pair of markers must take integer values. All variables within markers will have a default lower bound of 0 and a default upper bound of 1 (other bounds can be specified in the BOUNDS section)." Okay. So it is integer, and the default bounds are The only other place it appears is But I assume it also means that the default upper is ignored? Mosek say https://docs.mosek.com/latest/capi/mps-format.html So I would argue that this should still be cc @simonbowly can you share any insight? |
Ah, MPS, what fun.
Yes, that's the convention Gurobi follows. Specifically: if a variable is in the INTORG section, it gets a default domain of So an integer variable in
The CPLEX docs seem to be the only ones that make a slightly less ambiguous statement on the topic:
|
I hate this format. FWIW, MOI always adds explicit MathOptInterface.jl/src/FileFormats/MPS/MPS.jl Lines 705 to 717 in eff2982
|
But also like. Why would you write |
I can only speculate. Seems to be an age-old convention passed down through the generations, given that CPLEX and HIGHS appear to follow the same approach. Maybe the difference between |
We need a JuMP office at ZIB... |
Expect for #2469, we found that another model from MIPLIB called neos-4738912-atrato.mps generated a potential wrong result with Julia + Gurobi. We checked this file and found there was no "*".
There are two issues: first, the final obj of Julia + Gurobi is slightly different to Python GRB. Though the difference is small, but considering we are using the same solver and the GAP is 0, we still think there might be an issue. Second, why the runtime for Julia + Gurobi is doubled to Python GRB? We are using the same solver (Gurobi 10.0.1) and the same device.
Looks Julia + HiGHS generating the same obj to Julia + Gurobi, which are slightly different to the optimal obj from the MIPLIB website. Maybe it is another JuMP bug.
The text was updated successfully, but these errors were encountered: