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

在R语言中制定任务调度:最大化项目团队资源利用率并满足约束

任务调度最优开始时间规划方案

背景信息

  • 现有Task_List表,包含约2000项一周周期任务,每项任务耗时1小时
  • 配置5个项目团队,同一时间最多可并行执行5项任务
  • 任务表核心字段:
    • Task:任务唯一编号
    • Earliest_Start_Task:任务最早允许启动的时间
    • Latest_Start_Task:任务必须启动的最晚时间(逾期则无法按时完成)
    • Window:任务启动时间可调整的分钟范围,需按此字段升序处理任务

示例任务数据

TaskEarliest_Start_TaskLatest_Start_TaskWindow
12022-09-07 07:35:002022-09-07 07:35:000
22022-09-07 08:00:002022-09-07 08:00:000
32022-09-07 17:43:002022-09-07 17:49:006
42022-09-07 09:49:002022-09-07 10:00:0011

硬性约束

  1. 所有任务必须在自身Latest_Start_Task时间点前启动
  2. 尽可能减少同一时间并行任务数超过5的情况;若无法避免,需明确记录冲突时间点及对应任务

最优调度执行步骤

1. 任务优先级排序

按Window字段升序排序任务:

  • 优先处理**无调整空间(Window=0)**的任务,这类任务启动时间固定,是整个调度的基础框架
  • 再依次处理窗口较小的任务,窗口越小,可调整空间越少,越需要优先锁定位置

2. 固定任务占位

将所有Window=0的任务按其固定启动时间录入调度时间线,实时统计每个时间点已占用的团队数量(比如某时间点有3个固定任务启动,则该点占用3个团队)。

3. 可移动任务分配逻辑

对有调整窗口的任务,在Earliest_Start_Task到Latest_Start_Task范围内,按以下规则选择启动时间:

  • 从最早可启动时间开始,遍历每个可能的启动时间点
  • 选择当前已占用团队数最少(且加入后不超过5)的时间点作为启动时间
  • 若所有可选时间点加入后都会导致并行数超过5,则选择冲突程度最低(即并行数增量最小)的时间点,并同步记录该任务编号及对应时间点

4. 冲突识别与输出

遍历最终的调度时间线,统计每个时间点的并行任务数:

  • 筛选出并行数>5的时间点
  • 整理这些时间点对应的所有任务编号,生成冲突报表

5. 冲突优化(可选)

若冲突较多,对冲突时间点的任务尝试微调启动时间(比如在其窗口内推迟1分钟):

  • 由于任务耗时1小时,推迟1分钟后,原冲突时间点的重叠时长会减少,有可能降低该时间点的并行任务数
  • 重新计算调度,直到冲突数量降至最低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:54:17