朱莉娅"no method matching supports_default_copy_to(::GLPK.Optimizer, ::Bool)"声明模型



我是 Julia 的新手,并尝试运行 Julia 运筹学编程第二版中的第一个示例脚本,但前两行:

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"

由书籍作者在 https://github.com/chkwon/jpor_codes/issues/4 解决的问题

julia解释器运行] up将 GLPK 从 12.0 升级到 12.1。有趣的是,因为我几个小时前才刚刚安装了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```

最新更新