问题描述
我正在尝试获取包含在 IIS 中的约束,例如遇到以下不可行的问题
using JuMP,Gurobi
model = direct_model(Gurobi.Optimizer())
# defining variables
@variable(model,z)
@variable(model,x1[a=1:10,b=1:5] => 0)
@variable(model,x2[a=1:10,b=1:5,c=1:7] => 0)
# and so on...
# objective and constraints
@objective(model,Max,z)
@constraint(model,const1[a=1:10,c=1:7],equation1)
@constraint(model,const2[b=1:5,equation2)
# and so on...
optimize!(model)
if termination_status(model) == MOI.INFEASIBLE_OR_UNBOUNDED
@assert termination_status(model) == MOI.INFEASIBLE_OR_UNBOUNDED
compute_conflict!(model)
MOI.get(model,MOI.ConstraintConflictStatus(),const1)
end
MethodError: no method matching get(::Model,::MathOptInterface.ConstraintConflictStatus,::Array{ConstraintRef{Model,MathOptInterface.ConstraintIndex{MathOptInterface.ScalaraffineFunction{Float64},MathOptInterface.EqualTo{Float64}},Scalarshape},3})
我这样做对吗?
我使用的是 JuliaPro_v1.53-1、JuMP v0.21.6、Gurobi v0.9.11
感谢任何帮助或建议。
提前致谢
解决方法
const1
是一个数组。使用广播:
MOI.get.(model,MOI.ConstraintConflictStatus(),const1)