一次完整的基因测序流程其实是由很多小任务组成的。任务之间又是有顺序要求的,也就是某个任务需要依赖其他任务先完后自己才能开始执行。例如 c:[a,b] 表示,c 任务依赖 a 任务,也依赖 b 任务,也就是 a 执行完,且 b 任务执行完后,才能执行 c 。
同时基因测序的每个小任务都有自己的运行时长,没有依赖关系的任务可以同时执行。b:[a]:3 表示;b 任务依赖 a 任务,并且 b 任务的运行时长是 3 分钟。
此外,由于计算资源有限,任务在执行的时候是有并发限制的,即最大可同时执行的任务数量有限制。比如当最多只能同时跑 2 个任务时,由于资源不足的任务,只能等前面的任务跑完才能跑。注:如果有同时可以跑的任务,先按先来后到,然后字母序优先处理。
例如 b[a]:3/2 表示 b 任务依赖 a 任务,且 b 任务运行耗时 3 分钟。最大并发数量为2
本题描述了一个基因测序任务调度问题,其中任务之间存在依赖关系且各自具有运行时长,同时系统存在最大并发运行数限制。要求计算整个流程的总运行时间。
给定任务的描述格式为
任务名:[依赖任务1,依赖任务2,...]:运行时长
多个任务之间用分号分隔,最后在最后一个任务后用斜杠指定最大并发数。
例如: