Джулия не соответствует методу supports_default_copy_to(::GLPK.Optimizer, ::Bool), объявляющему модель

Я новичок в Джулии и попытался запустить первый пример сценария во втором издании Julia Programming for Operations Research, но первые две строки:

using JuMP, GLPK
m = Model(with_optimizer(GLPK.Optimizer))

выдать следующую ошибку:

julia> m = Model(with_optimizer(GLPK.Optimizer))
ERROR: MethodError: no method matching supports_default_copy_to(::GLPK.Optimizer, ::Bool)
Closest candidates are:
  supports_default_copy_to(::MathOptInterface.Utilities.AbstractModel, ::Bool) at /home/mepstein/.julia/packages/MathOptInterface/C1XBe/src/Utilities/model.jl:693
  supports_default_copy_to(::MathOptInterface.Utilities.MockOptimizer, ::Bool) at /home/mepstein/.julia/packages/MathOptInterface/C1XBe/src/Utilities/mockoptimizer.jl:521
  supports_default_copy_to(::MathOptInterface.Utilities.CachingOptimizer, ::Bool) at /home/mepstein/.julia/packages/MathOptInterface/C1XBe/src/Utilities/cachingoptimizer.jl:165

Если это уместно, using JuMP, GLPK бросил следующее warning:

┌ Warning: Replacing module MathOptInterface
└ @ Base loading.jl:942

И мои версии:

Julia: 1.3.1 (latest stable)
  "GLPK" => v"0.12.0"
  "JuMP" => v"0.20.1"

person Max Power    schedule 07.01.2020    source источник


Ответы (1)


Проблема решена автором книги на странице https://github.com/chkwon/jpor_codes/issues/4

Запуск ] up из интерпретатора julia обновил GLPK до 12.1 с 12.0. Интересно, потому что я только что установил GLPK всего пару часов назад. На самом деле я даже не уверен, что «обновил» установленную версию; судя по журналу, ] up сделал некоторые файлы конфигурации совместимыми с уже установленной версией?

julia>
(v1.3) pkg>  up
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed GLPK ─ v0.12.1
  Updating `~/.julia/environments/v1.3/Project.toml`
  [60bf3e95] ↑ GLPK v0.12.0 ⇒ v0.12.1
  Updating `~/.julia/environments/v1.3/Manifest.toml`
  [60bf3e95] ↑ GLPK v0.12.0 ⇒ v0.12.1
  Building GLPK → `~/.julia/packages/GLPK/HjJiX/deps/build.log`

В любом случае код в вопросе выше теперь работает и дает следующий результат:

julia> using JuMP, GLPK

julia> m = Model(with_optimizer(GLPK.Optimizer))
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: GLPK```
person Max Power    schedule 07.01.2020