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

使用docplex求解调度问题时如何将step_at_end方法生效时间延后指定时长

实现方案

最优实现方式直接调用step_at_end原生支持的偏移参数即可,无需额外新增变量或约束,求解性能最优。

step_at_end方法完整参数为model.step_at_end(区间变量, 步长值, 偏移量=0),第三个参数默认为0,即步长在区间结束时立即生效,你只要把需要延后的时长x传入该参数即可实现延后计入库存的需求。

修改后的代码如下:

# DELAY为需要延后的时长,支持固定整数或数值表达式
DELAY = x
for wo in workorder_list:
    for quantity, material_id in wo['output']:
        stock[material_id] += model.step_at_end(workorders[wo['id']], quantity, DELAY)

如果你的延后时长是随工单动态变化的变量,也可以额外构造一个长度为0的虚拟区间,设置其开始时间为原工单结束时间加动态延迟,再对这个虚拟区间调用step_at_start方法添加步长即可,不过固定延迟场景下原生参数的方案是最优选择。

内容的提问来源于stack exchange,提问作者RMat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 06:24:04