jump-dev / HiGHS.jl

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

Option "mip_rel_gap" is unknown #90

Closed DillonJ closed 2 years ago

DillonJ commented 2 years ago

According to the readme and browsing the latest HiGHS repo, it looks like option mip_rel_gap is supported.

However:

using JuMP
import HiGHS
model = Model(HiGHS.Optimizer)
set_optimizer_attribute(model, "mip_rel_gap", 0.05)

results in

ERROR:   getOptionIndex: Option "mip_rel_gap" is unknown
ERROR: LoadError: MathOptInterface.UnsupportedAttribute{MathOptInterface.RawParameter}: Attribute MathOptInterface.RawParameter("mip_rel_gap") is not supported by the model.
odow commented 2 years ago

I cannot reproduce. Please check your versions.

(highs) pkg> st
      Status `/private/tmp/highs/Project.toml`
  [87dc4568] HiGHS v0.3.2
  [4076af6c] JuMP v0.22.3

julia> using JuMP

julia> import HiGHS

julia> model = Model(HiGHS.Optimizer)
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: HiGHS

julia> set_optimizer_attribute(model, "mip_rel_gap", 0.05)

julia> get_optimizer_attribute(model, "mip_rel_gap")
0.05
(highs) pkg> st
      Status `/private/tmp/highs/Project.toml`
  [87dc4568] HiGHS v1.0.0
  [4076af6c] JuMP v1.0.0-DEV `https://github.com/jump-dev/JuMP.jl.git#master`

julia> using JuMP

julia> import HiGHS

julia> model = Model(HiGHS.Optimizer)
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: HiGHS

julia> set_optimizer_attribute(model, "mip_rel_gap", 0.05)

julia> get_optimizer_attribute(model, "mip_rel_gap")
0.05
DillonJ commented 2 years ago

Thanks for looking at this.

I've updated HiGHS, but my version is lower than yours - is this platform related? How do I access HiGHS v 0.3.2?

(@v1.6) pkg> up HiGHS
    Updating registry at `C:\Users\jodyd\.julia\registries\General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
  No Changes to `C:\Users\jodyd\.julia\environments\v1.6\Project.toml`
  No Changes to `C:\Users\jodyd\.julia\environments\v1.6\Manifest.toml`

(@v1.6) pkg> up JuMP
    Updating registry at `C:\Users\jodyd\.julia\registries\General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
  No Changes to `C:\Users\jodyd\.julia\environments\v1.6\Project.toml`
  No Changes to `C:\Users\jodyd\.julia\environments\v1.6\Manifest.toml`

(@v1.6) pkg> st
      Status `C:\Users\jodyd\.julia\environments\v1.6\Project.toml`
  [9961bab8] Cbc v0.8.1
  [e2554f3b] Clp v0.8.4
  [87dc4568] HiGHS v0.2.3
  [4076af6c] JuMP v0.21.10
  [21216c6a] Preferences v1.2.3
  [438e738f] PyCall v1.92.3
  [295af30f] Revise v3.3.2
  [0cda1612] SpineInterface v0.7.6 `C:\Workspace\Spine\SpineInterface.jl`
  [0d8fc150] SpineOpt v0.6.4 `C:\Workspace\Spine\SpineOpt.jl`
  [8fd58aa0] HiGHS_jll v0.3.2+0
blegat commented 2 years ago

It looks like SpineOpt holds JuMP to v0.21 and prevents it to be updated to v0.22. Either remove it or create a local environment.

odow commented 2 years ago

Closing because this is not a bug in HiGHS.