未定义的Floatmax阻止我解决MIP

时间:2018-12-08 01:34:59

标签: julia glpk julia-jump

基本上,我已经完全定义了一个MIP,一切正常,直到尝试通过GLPK解决时,它给我以下错误:UndefVarError:未定义floatmax 我试图将floatmax定义为任何东西,但无济于事。我完全被困住了。这是我的代码和问题的图像: 1

2 个答案:

答案 0 :(得分:1)

您似乎已安装了旧版本的Compat。尝试运行Pkg.update()floatmax是从Compat 1.1.0开始在Julia 0.6上定义的。我在此处修正了版本要求:https://github.com/JuliaOpt/GLPKMathProgInterface.jl/pull/55

答案 1 :(得分:0)

问题是您使用的是Julia 0.6,floatmax由GLPKMathProgInterface.jl软件包内部使用。

可能的解决方案是:

  1. 切换至Julia 1.0(推荐)
  2. 在将GLPKMathProgInterface.jl移植到Julia 1.0之前,请安装较旧的版本; v0.4.2版本应该没问题
  3. 在包含部分之前,在源文件GLPKMathProgInterface.jl中手动添加以下定义:

    floatmax(::Type{Float64}) = prevfloat(Float64(Inf))

(我没有运行它,因为我已经没有Julia 0.6了,但是它应该可以工作;风险是,即使您对此进行了修复,也可能需要这样的修复-因此,实际上不建议使用选项3,但它可能会起作用,所以我给了它