面向任务列表交错调度的经典数据结构与算法咨询
任务列表交错调度的算法与资料咨询
我想咨询是否存在成熟的数据结构与算法可实现下述需求,暂将其概括为“任务列表交错调度”:
- 存在2条及以上分步骤的任务链,已知各步骤的持续时长,以及步骤间的最小、最大间隔时间
- 目标是找到总耗时最短的任务合并调度方案
- 核心约束:各任务链内的步骤顺序不可打乱,仅能在某任务链的暂停阶段执行其他任务链的步骤
任务链示例
原始任务链
Cooking Rice: (Duration: 24.5 minutes) Wash Rice (3 min) -> Season Rice & Add water (0.5 min) -> Bring Rice to a Boil (4 min) -> Let Rice cook (10 min) -> Let Rice steam (5 min) -> Serve Rice (2 min) -> Ready
Steaming Broccoli: (Duration: 17 minutes) Wash Broccoli (0.5 min) -> Cut Broccoli (1 min) -> Bring to a Boil (4 min) -> Steam (11 min) -> Serve Broccoli -> Ready.
优化后的调度示例
两条任务链可利用步骤间的间隔空窗并行执行其他任务(比如米饭静置期间准备西兰花),优化后的调度方案如下:
Wash Rice (3 min) -> Season Rice & Add water (3.5 min) -> Bring Rice to a Boil (7.5 min) -> Wash Broccoli (8 min) -> Cut Broccoli (9 min) -> Bring Broccoli to a Boil (13 min) -> Switch Broccoli to Steam (17) -> Turn off Rice (17.5 min) -> Serve Rice (22.5 min) -> Serve Broccoli (24.5 min) -> Ready (26 min)
咨询需求
我认为该问题已有成熟解决方案,但不清楚相关技术术语及资料方向。曾查阅多线程相关内容,但仅找到高层使用指引,希望获取相关学习方向的建议。
内容的提问来源于stack exchange,提问作者Mike McKay
相关产品推荐
相关产品推荐

