You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docplex中设置时长限制中断模型后如何获取最新上界?

使用docplex求解超时后获取最新上界的操作方法

你可以直接通过求解后的solve_details属性读取对应边界值,具体操作逻辑如下:

  • 先在调用求解方法前配置超时参数,参数timelimit单位为秒
  • 求解触发超时终止后,直接读取model.solve_details.upper_bound即可拿到最新上界
  • 若求解过程中还没找到任何可行解,返回的上界值为正无穷inf,可根据需求做判断处理

代码示例

from docplex.mp.model import Model

# 构建模型(变量、约束、目标函数的定义逻辑根据你的需求补充)
mdl = Model("demo_model")
x = mdl.continuous_var(name="x", lb=0)
y = mdl.integer_var(name="y", lb=0)
mdl.add_constraint(2*x + 3*y >= 10)
mdl.minimize(5*x + 8*y)

# 设置运行时长限制为60秒
mdl.parameters.timelimit = 60

# 启动求解,log_output可以打印求解日志方便观察进度
sol = mdl.solve(log_output=True)

# 读取超时后的最新上界
latest_upper_bound = mdl.solve_details.upper_bound
print(f"求解终止后最新上界:{latest_upper_bound}")

# 可选:判断是否为超时终止状态,状态码10对应超时触发的停止
if mdl.solve_details.status_code == 10:
    print("模型因达到设置的时长限制自动停止")
    # 也可同步读取当前下界、gap等信息
    latest_lower_bound = mdl.solve_details.lower_bound
    current_gap = mdl.solve_details.gap

补充说明

如果你的求解目标是最大化问题,当前最优可行解对应的值为lower_bound属性,上界则是求解器推导的理论最大值边界,按需读取即可。

内容的提问来源于stack exchange,提问作者Nada.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:36:03