jump-dev / HiGHS.jl

A Julia interface to the HiGHS solver
https://highs.dev
MIT License
108 stars 15 forks source link

Turning off presolve #135

Closed ccoffrin closed 1 year ago

ccoffrin commented 1 year ago

I tried the following but it did not seem to work,

set_optimizer_attribute(model, "presolve", "off")

I was using the HiGHS v1.2.0 release and JuMP v1.4.0

odow commented 1 year ago

Do you have a log or a reproducible example?

odow commented 1 year ago

If you have a reproducible example that is clearly wrong, then it's a bug upstream in HiGHS.

julia> using JuMP, HiGHS

julia> begin
           model = Model(HiGHS.Optimizer)
           set_optimizer_attribute(model, "presolve", "off")
           N = 100
           @variable(model, 0 <= x[1:N] <= 1, Int)
           @constraint(model, rand(N)' * x <= 10)
           @objective(model, Max, rand(N)' * x)
           optimize!(model)
       end
Running HiGHS 1.3.0 [date: 1970-01-01, git hash: e5004072b-dirty]
Copyright (c) 2022 ERGO-Code under MIT licence terms

Presolve is switched off

Solving MIP model with:
   1 rows
   100 cols (100 binary, 0 integer, 0 implied int., 0 continuous)
   100 nonzeros

        Nodes      |    B&B Tree     |            Objective Bounds              |  Dynamic Constraints |       Work      
     Proc. InQueue |  Leaves   Expl. | BestBound       BestSol              Gap |   Cuts   InLp Confl. | LpIters     Time

         0       0         0   0.00%   51.07918189     -inf                 inf        0      0      0         0     0.0s
 S       0       0         0   0.00%   51.07918189     25.38787809      101.20%        0      0      0         0     0.0s
         0       0         0   0.00%   25.46769002     25.38787809        0.31%        0      0      1         1     0.0s
 L       0       0         0   0.00%   25.42419217     25.42375711        0.00%      282     17      3        49     0.0s

Solving report
  Status            Optimal
  Primal bound      25.4237571075
  Dual bound        25.4241921703
  Gap               0.00171% (tolerance: 0.01%)
  Solution status   feasible
                    25.4237571075 (objective)
                    0 (bound viol.)
                    0 (int. viol.)
                    0 (row viol.)
  Timing            0.03 (total)
                    0.00 (presolve)
                    0.00 (postsolve)
  Nodes             1
  LP iterations     82 (total)
                    0 (strong br.)
                    48 (separation)
                    33 (heuristics)
odow commented 1 year ago

Closing because I don't think this is a problem in HiGHS.jl. Please re-open if you have a reproducible example.