Comments (10)
I'm not sure if it would have been better to create a new issue but I suspect mine is another manifestation of this issue (please let me know if you prefer a separate issue).
Optimizing model.mps.txt gives the following values with different solvers under different presolve settings.
We noticed the difference while upgrading from 1.5.3 to 1.7.0 so included that one in the table as well.
Everyone agrees on the optimal objective function values if the presolve is off but HiGHS deviates from the optimal significantly if the presolve is active.
Solver | Presolve-on | Presolve-off | ||
---|---|---|---|---|
BestBound | BestSol | BestBound | BestSol | |
HiGHS-1.5.3 | 112.85649849700943 | 112.85649849700943 | 132.63375308481827 | 132.63375308481827 |
HiGHS-1.7.0 | 115.3379075077637 | 115.3379075077637 | 132.6337530848185 | 132.6337530848185 |
Gurobi-11.0.2 (from lp) | 132.6337531104 | 132.6337530848 | 132.6337530848 | 132.6337530848 |
Gurobi-11.0.2 (from mps) | -132.6337531349 | -132.6337531016 | -132.6337530848 | -132.6337530848 |
I couldn't try on 1.7.1 as the model is created in julia and the latest version of highs.jl points to 1.7.0.
Here are at the solver logs:
gurobi-lp-presolve-off.log
gurobi-lp.log
gurobi-mps-presolve-off.log
gurobi-mps.log
highs-1.5.3-presolve-off.log
highs-1.5.3.log
highs-1.7.0-presolve-off.log
highs-1.7.0.log
from highs.
Thanks. There are bugs in the MIP presolve that we are steadily fixing. This can be added to the instances @fwesselm
I just tried the latest
branch, and this seems to be fixed:
Solving report
Status Optimal
Primal bound -132.633753085
Dual bound -132.633753085
Gap 0% (tolerance: 0.01%)
Solution status feasible
-132.633753085 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 1.53 (total)
0.07 (presolve)
0.00 (postsolve)
Nodes 1
LP iterations 677 (total)
0 (strong br.)
237 (separation)
36 (heuristics)
from highs.
With latest
:
- First (
1725a.mps
) is incorrectly identified as infeasible in presolve, and solved correctly with--presolve=off
. Error is in reduction 851/861 - First (
1725b.mps
) gets wrong optimal objective value of-4987010.44031
rather than-4987029.63936
, with the latter obtained when--presolve=off
. Error is in reduction 850/971
from highs.
@jajhall I am having a look, if that's Ok
from highs.
Sure, I've got marking to do for a few more days
from highs.
Thanks. There are bugs in the MIP presolve that we are steadily fixing. This can be added to the instances @fwesselm
from highs.
This is great news @fwesselm
This might be due to differences in compute environment but one thing that I want to flag is that the total solver duration is very different between your output and mine (1.53s vs. 0.06s).
I wonder if reading from MPS versus creating the model directly from julia has any role here.
from highs.
This is great news @fwesselm
This might be due to differences in compute environment but one thing that I want to flag is that the total solver duration is very different between your output and mine (1.53s vs. 0.06s).
I wonder if reading from MPS versus creating the model directly from julia has any role here.
Oh, yes, I did not pay attention to the running times. I built in debug mode, which will be much slower.
from highs.
Yes, solving in debug
takes 1.02s for me, and 0.16s in release
from highs.
I just tried the
latest
branch, and this seems to be fixed:
Hopefully, although fixes to presolve may cause the sequence of reductions to change and avoid the error
from highs.
Related Issues (20)
- Build fails on macOS: `f951: Error: '-fno-fat-lto-objects' are supported only with linker plugin` HOT 3
- Get Column Cost HOT 1
- Spurious statement of Integer when writing model HOT 1
- primal_solution_status is reported as kSolutionStatusFeasible for infeasible model when solver=ipm and presolve=off
- How to Set a Partial MIP Solution using setSolution()? HOT 11
- Logging header not printed if `h.writeModel` or `h.writeSolution` called before a method using the HighsIO
- `Highs::writeModel("")` uses `HighsIO`, but `Highs::writeSolution("")` uses `fprintf` for stdout HOT 1
- HiGHS 1.7.1 HighsCallbackDataOut data type can no longer be accessed directly for mip_solution item. HOT 1
- Time limit solving Jeroslow MIP seems not to be triggered HOT 2
- Stop MIP solve on `simplex_iteration_limit` (or other LP iteration limit) - Access iteration count via callback? HOT 2
- CMake configuration fails with versions >3.23.0 and <3.24.0
- Longer runtimes for ILP models created with `addVariable` versus `addCol` HOT 4
- PInvokeStackImbalance exception when targetting .NET Framework (Windows)
- highspy API improvements and benchmark HOT 1
- Stream HiGHs solver output in pyomo HOT 1
- Add user cuts
- Running in Parallel gives unexpected result. HOT 9
- LeakSanitizer locates memory leaks in highs HOT 11
- linker error due to .res files from v1.7.0
- Add an option to obtain dual information from the best solution found in MIP problems HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from highs.