如何设置 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))
虽然假设为数组 x
和 y
定义了 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 特有的。如果您使用不同的求解器,则需要查看相应属性(可能不存在)的文档。
你为什么要这个?截断很少有帮助。
我想为我的 JuMP 模型设置一个上限。也就是说,假设我正在最小化,JuMP 不应考虑所有值高于上限的节点和解决方案。我该怎么做?我可以在 JuMP's documentation 或 Google 上搜索哪些内容?我尝试了 bound
但找不到任何东西。
好吧,我找到了方法,不知道是不是推荐的方法,但至少可以用。
我使用我的 objective 如下:
@objective(m, f(x,y))
虽然假设为数组 x
和 y
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 特有的。如果您使用不同的求解器,则需要查看相应属性(可能不存在)的文档。
你为什么要这个?截断很少有帮助。