为什么 GLPK Solver 在 JuMP 中没有详细说明?

问题描述

我创建了这个简单的代码作为演示:

using GLPK
using JuMP
m = Model(GLPK.Optimizer)
@variable(m,y[i=1:100],Bin)
@objective(m,Min,sum(y))
@constraint(m,[j=5:50],sum([y[i] for i in j:j+10]) >= 5)
optimize!(m)

请注意这个整数程序不代表任何东西,它只是举例。之前的代码没有输出任何内容,而我记得使用 Gurobi 甚至 GLPK 和 Julia JuMP 来输出有关它在当前求解过程中的位置的数据。已经处理了多少节点,算法运行了多长时间,当前最佳边界等。请注意,它与我的整数程序的大小无关,因为它不会在我使用更多约束和变量运行的更大程序上输出任何内容

我也试过:

julia> get_optimizer_attribute(m,MOI.Silent())
false

与以下内容一致且不会改变任何内容

julia> unset_silent(m)
false

我错过了什么吗?

我正在运行 Julia 1.5.2、JuMP v0.21.5 和 GLPK v0.14.4。

解决方法

设置日志级别:

julia> set_optimizer_attribute(m,"msg_lev",GLPK.GLP_MSG_ALL)
3

julia> optimize!(m)
GLPK Simplex Optimizer,v4.64
46 rows,100 columns,506 non-zeros
     67: obj =  2.500000000e+001 inf =  2.000e+001 (5)
     74: obj =  2.600000000e+001 inf =  0.000e+000 (0)
*    77: obj =  2.500000000e+001 inf =  0.000e+000 (0)
OPTIMAL LP SOLUTION FOUND
GLPK Integer Optimizer,506 non-zeros
100 integer variables,all of which are binary
Integer optimization begins...
+    77: mip =     not found yet >=              -inf        (1; 0)
+    77: >>>>>  2.500000000e+001 >=  2.500000000e+001   0.0% (1; 0)
+    77: mip =  2.500000000e+001 >=     tree is empty   0.0% (0; 1)
INTEGER OPTIMAL SOLUTION FOUND