Skip to content

Commit f6e36af

Browse files
committed
Slightly improve a tolerance issue in KirlikSayin
From a previous solve, z_k may be a value like z+eps where z in Z and eps is the feasibility tolerance. However, if scalars[k] is integer valued, then presolve may (somewhat reasonably) deduce that this problem is infeasible. Instead of rounding z_k, changing EqualTo to LessThan seemed to work on the instances I have. I don't know why. There is also a weird situation in which Gurobi declared a problem unbounded. I can't reproduce without running the entire thing, but I think it is a mix of presolve proving that there is no finite solution (because its infeasible) and yet there being a "feasible" MIP solution in memory from the previous solve. It comes down to the weird mix of tolerances in MIP starts, presolve, simplex, and this equality constraint. This is most probably a bug in Gurobi, in that it should either report optimal or infeasible. But not unbounded. I've seem something similar in SDDP.jl.
1 parent fcea8f7 commit f6e36af

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

src/algorithms/KirlikSayin.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ function minimize_multiobjective!(
170170
zₖ_constraint = MOI.Utilities.normalize_and_add_constraint(
171171
inner,
172172
scalars[k],
173-
MOI.EqualTo(zₖ),
173+
MOI.LessThan(zₖ),
174174
)
175175
optimize_inner!(model)
176176
if !_is_scalar_status_optimal(model)

0 commit comments

Comments
 (0)