联合调度训练
在“算法实验与优化平台”中选择 DFJSP-T 图策略与滚动联合调度,可创建训练任务,并将生成的模型用于测试和工厂回放。
训练和超参数探索模板使用 ctde_ppo 的 0.3.0 版本。更新平台后,刷新页面并重新载入模板;旧实验定义不会自动更新,继续使用时请重新选择算法卡片并设置训练参数。
模型根据作业、机器、车辆、道路和当前扰动联合选择生产与运输方案。在事件变化或检查间隔到达时重新决策,并持续更新交通路线。训练目标覆盖普通订单的加工、运输、等待及最终交付时间。
联合调度模型选择生产和运输方案,内置 PIBT 执行车辆移动,训练和模型测试无需选择额外 MAPF 算法。已承诺的运输持续执行,候选搜索不会让全部车辆等待。routing_horizon 调整候选方案的交通预测范围。领域中的路由器与车辆分配器选项用于只输出生产派工的规则算法。
数据集中的原料站和成品站优先采用 material_handling_config 的显式设置;未设置时使用 topology.depot 和 topology.product。两处均未设置的站点会从实际地图内、与机器和 AGV 连通的可通行非机器格中选择,原料站取首格、成品站取末格。所有物料站、机器和 AGV 必须位于同一片四邻接可达区域。
参数选择
| 参数 | 默认 | 用途 |
|---|---|---|
| candidate_limit | 24 | 每轮跨步规划的候选方案数量上限 |
| scenario_count | 8 | 用于比较不确定情况下方案表现的预测场景数量 |
| routing_horizon | 24 | 候选方案的交通预测步数 |
| decision_interval | 5 | 平稳期间启动新规划的检查间隔 |
| search_seconds | 0 | 0 使用默认分步搜索预算;正值进一步限制每步搜索时间 |
| inference_budget_ms | 300 | 每个仿真步的策略推理预算,搜索可分多步完成 |
| sequence_length | 32 | 连续决策序列的学习长度 |
| graph_batch_size | 16 | 每次合并计算的决策图数量;显存紧张时调小,不改变 PPO 小批大小 |
| input_cache_mb | 256 | 训练输入缓存上限(MiB),0 关闭缓存;不含模型、梯度及计算中间量 |
| num_envs | 4 | 同时采样的环境数量 |
| dynamic_sampling | false | 动态领取采样任务;同步时丢弃未完成任务,下一轮优先重跑 |
| evaluation_num_envs | 2 | 同时执行的评估回合数量 |
| device | auto | 网络训练使用的 CUDA 设备,可填写 cuda:0 等设备名 |
更多候选和情景会增加完成一轮规划所需的步数。算法可以先提交已评估方案,再继续改进;规划期间车辆沿有效路径运行。按时间预算划分计算会受到机器负载影响,精确复现执行过程请使用保存的动作回放。
训练进度和保存间隔按实际仿真步累计,训练样本数按调度决策计数。记录中的 planning_decisions 可用于查看决策数量;inference_seconds、inference_max_seconds 和 inference_over_budget_steps 分别记录全部步骤的累计推理时间、最大单步推理时间及超预算步数。
执行监控中的训练指标按每批网络更新展示 Loss、策略损失、价值损失和策略熵,并分别列出采样及网络更新耗时。模型选择评估单独显示进度与耗时。
“训练”一行在网络更新期间显示 epoch、小批编号、已完成/计划的优化器更新次数、当前阶段和累计用时。进度在计算块结束后定期刷新;单个计算块耗时较长时,两条记录间隔可能超过 5 秒。采样、训练、验证各自显示最新进度。
图编码批量和输入缓存用于减少网络更新开销。较大的图编码批量需要更多中间计算显存;输入缓存上限不等于训练总显存上限。已有实验未填写这两个参数时采用表中的默认值,可在参数编辑区调整。
参数编辑区使用“动态采样”“图编码批量”“输入缓存(MiB)”的简短名称,提示文字可悬停查看完整含义。输入缓存接近设定上限时,会淘汰较早使用的图输入,为新输入腾出空间;再次使用被淘汰的输入需要重新准备,因此缓存容量会影响速度。缓存不保存模型输出,每批网络更新结束后释放。是否增加容量应结合训练总显存峰值考虑。
采样与验证固定使用 CPU,分配不同核心;训练使用 GPU。“动态采样”默认关闭,每个进程每批完成一个回合后等待同步。开启后,完成回合的进程继续领取新实例,直到所有参与进程至少完成一个回合。此时中止仍在进行的任务,丢弃其轨迹,并在下一轮优先按原实例和随机种子从头重跑。达到回合步数上限也算回合结束。已有实验未设置该参数时同样默认关闭,可在参数编辑区开启;更改用于下一次启动的执行。
首批采样结束后,下一批采样与上一批网络更新同时运行,双方完成后才进入下一同步轮。每批权重固定,训练开始时样本策略最多落后一轮更新。执行监控中的“同步等待记录”显示双方完成时间、等待秒数、保留/丢弃回合数和丢弃步数。
模型选择评估使用冻结模型独立运行,不参与轮间同步。首次完成网络更新、已训练回合数跨过配置的验证间隔,以及训练结束时安排验证;验证较慢时排队处理。间隔按已训练回合数计算,不是每个模型版本都验证。例如间隔为 100、前五次更新分别累计完成 29、50、72、97、126 回合时,会验证 V1 和 V5。动态采样在整个批次更新完成后判断是否跨过间隔。训练全部结束后完成剩余验证,再发布最佳模型。
实例中每台 AGV 的初始位置必须互不重叠。使用旧数据时,如果提示初始位置重复,请重新生成对应数据集,并在实验中重新选择数据集。
模型与结果
当前模型文件使用第四版格式,旧版模型应重新训练。候选方案须满足机器缓冲容量和物料流转要求,神经网络直接在不同的可执行方案之间选择。已承诺的健康车辆运输保持到交付;未装货车辆故障时可重新指派。环境原有的特急预约、抢占和故障机制保持启用。
使用新模型创建测试任务,检查完成率、最大完工时间、改派规模与决策耗时。尾部完工时间统计同时给出用于统计的完成回合数,应结合完成率阅读。
训练、验证和最终 benchmark 保持分离;benchmark 不用于训练或选择模型。