我想为我的JuMP模型设置一个上限。也就是说,考虑到我是最小化的,JuMP不应该考虑所有值高于上限的节点和解决方案。我该怎么做?我可以在JuMP的文档或谷歌上搜索到什么?我试过bound
,但什么也找不到。
JuMP不能解决问题。相反,它公式化它们,并将解决方案传递给解算器。您可能想阅读:https://jump.dev/JuMP.jl/stable/background/algebraic_modeling_languages/
您可以告诉某些解算器存在解的极限。例如,Gurobi有:https://www.gurobi.com/documentation/9.5/refman/cutoff.html#parameter:Cutoff
model = Model(Gurobi.Optimizer)
set_optimizer_attribute(model, "Cutoff", 1000)
请注意,这是Gurobi特有的。如果使用不同的解算器,则需要查看相应属性(可能不存在(的文档。
你为什么要这个?切断很少有帮助。
好吧,我找到了一种方法,我不知道这是否是推荐的方法,但至少它有效。
我的目标如下:
@objective(m, f(x,y))
假定f(x,y)
是为阵列x
和y
定义的
然后我在f
:上设置了一个约束
threshold = 1000 # Or any other relevant value
@constrait(m, f(x,y) <= threshold)