如何设置 JuMP 最小化模型的上限?

How to set an upper bound on a JuMP minimizing model?

我想为我的 JuMP 模型设置一个上限。也就是说,假设我正在最小化,JuMP 不应考虑所有值高于上限的节点和解决方案。我该怎么做?我可以在 JuMP's documentation 或 Google 上搜索哪些内容?我尝试了 bound 但找不到任何东西。

好吧,我找到了方法,不知道是不是推荐的方法,但至少可以用。

我使用我的 objective 如下:

@objective(m, f(x,y))

虽然假设为数组 xy

定义了 f(x,y)

然后我在f上设置了一个约束:

threshold = 1000 # Or any other relevant value
@constrait(m, f(x,y) <= threshold)

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 特有的。如果您使用不同的求解器,则需要查看相应属性(可能不存在)的文档。

你为什么要这个?截断很少有帮助。