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

求解任务集最小调度时长:任务调度时长计算技术求助

搞懂这个任务总时长的计算逻辑

嘿,我来帮你把这个问题掰明白~

首先先看你给出的Prolog定义代码:

duration(a,5). duration(b,7). duration(c,3). 
prereqs(a,[]). prereqs(b,[]). prereqs(c,[b]).

这段代码其实是在定义两个核心规则:

  • duration(任务, 时长):每个任务的单独耗时——a要5单位时间,b要7,c要3。
  • prereqs(任务, 前置任务列表):任务的启动条件——a和b没有前置任务,一上来就能启动;但c必须等b做完才能开始。

接下来看你执行的查询?- len([a,b,c],Time).得到Time=10,这背后的逻辑是这样的:
题目里明确说了所有任务同时启动,但c因为有依赖限制,没法真的和a、b一起启动,得等b完成才行。我们来捋一遍时间线:

  • 时间0:a和b同时启动,c因依赖b暂未启动。
  • 时间5:a完成,b仍在执行(它还需要2单位时间)。
  • 时间7:b完成,c随即启动。
  • 时间10:c完成(7+3=10),此时所有任务都结束了。

任务集的总时长,看的是最后一个完成的任务的结束时间,这里最晚结束的是c,在10单位时间点完成,所以总时长就是10啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:41:15