gpt4 book ai didi

optimization - 是否可以创建或访问间隙历史记录

转载 作者:行者123 更新时间:2023-12-05 04:33:52 24 4
gpt4 key购买 nike

在 Julia JuMP 中,我想知道是否可以访问数组或类似的 GAP 历史记录,即 GAP 改进。

我知道在优化结束时,我可以使用类型为 Modelrelative_gap(m) 访问最终间隙我想要解决问题过程的改进历史。

例如,它可以是 Float64 的向量,以百分比表示:gaps=[20.2, 16.7, 13.8, 5.1, 0]。在这种情况下,我的问题得到了最优解决,因为最终差距为 0。

最后,我想绘制解决时间函数中的差距改进。那么也许所有的差距值都可以是两个元素的一对,差距和解决这个新差距改进的时间?

也许这在 JuMP 中是不可能的,所以您可以为 Gurobi 回答?

谢谢!

最佳答案

Oscar 在另一篇文章中回答了 Gurobi 回调解决方案 - 参见 Julia JUMP Gurobi MIP - query and store best objective and bound at runtime .

但是,由于 Gurobi 对其 TimeLimit 非常重视并且继续计算的时间很短,因此还有一种更简单的方法(此代码假设 mo 是您的 JuMP Gurobi 模型):

set_optimizer_attribute(mo, "TimeLimit", 2.0)
gap_history = Float64[]
max_steps = 1800
for t in 1:max_steps
optimize!(mo)
gap = MOI.get(mo, MOI.RelativeGap())
status=termination_status(mo)
push!(gap_history, gap)
gap > 0.01 || status == MOI.TIME_LIMIT || break
end

关于optimization - 是否可以创建或访问间隙历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71306852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com