OPTIMAL LP SOLUTION FOUND
GLPK Integer Optimizer, v4.64
16 rows, 120 columns, 800 non-zeros
120 integer variables, all of which are binary
Integer optimization begins…
sorry for replying to a post dating back 4 months, but I think there is at least one good reason for disabling the simple rounding heuristic in GLPK.
Namely, there is a known bug with that heuristic and the lazy constraint callback in GLPK: if am not wrong, when a solution is found by the simple rounding heuristic, it is not checked for feasibility by invoking the lazy constraint callback.
The bug is reported at least until GLPK 4.60, but I experienced a similar issue with a more recent version of GLPK in Julia 1.5.0. This implies that if the solution found by simple rounding heuristic satisfies the constraints in the model, it is considered (incorrectly) feasible also if some lazy constraints are in fact violated (just because…they are not checked).
In a branch-and-bound this may prune the search-tree nodes containing the correct optimal solution, thus reporting incorrect solutions.
The suggested workaround is to turn off the simple rounding heuristic, via flag sr_heur (which I did not find how to do in JuMP).
Thanks for your attention!
Michele
Hi joaquimg,
thanks for your reply.
Unfortunately I was already aware of the sketch you sent me, on how to set GLPK parameters in JuMP.
It seems that the flag sr_heur is not supported by JuMP, or that the one you were referring to is not the correct way to do.
More precisely, trying
UndefVarError: GLP_OFF not defined
Stacktrace:
[1] getproperty at .\Base.jl:26 [inlined]
Also trying with:
set_optimizer_attribute(model, "sr_heur", 0)
gives the error:
MathOptInterface.UnsupportedAttribute{MathOptInterface.RawParameter}: Attribute MathOptInterface.RawParameter(“sr_heur”) is not supported by the model.
Stacktrace:
[1] set(::GLPK.Optimizer, ::MathOptInterface.RawParameter, ::Int64) at .julia\packages\GLPK\oTTtu\src\MOI_wrapper.jl:315
explicitly saying that sr_heur is not supported.
I did this tests on a machine running Windows 8.1, Julia 1.5.0 and GLPK v4.64.
Best regards,
Michele
thanks again for your support. This is the output you asked in a previous message (I keep only the relevant stuff):
(@v1.5) pkg> st
Status .julia\environments\v1.5\Project.toml
[a076750e] CPLEX v0.6.6
[60bf3e95] GLPK v0.13.0
[4076af6c] JuMP v0.21.3
You were 100% right: updating the JuMP and GLPK packages to the latest versions, the simple rounding heuristic was successfully disabled as you suggested, using: