【发布时间】:2017-09-02 00:18:46
【问题描述】:
间隔调度算法基本上是基于按结束时间对作业进行排序,但是如果调度作业 A 意味着您必须安排作业 C。
例如,假设您要安排广播节目,而节目 A 在周一上午 10 点至上午 11 点和下午 2 点至下午 3 点运行,但节目 B 在周一 1:30-2:30 运行?您不能只运行程序 A 的 10-11 部分。要么全有,要么全无。或者,假设程序在周一、周三、周五运行,但每天的时间不同。
我玩过的想法:
最短路径算法,您可以在一周中的每一天同时遍历 7 个图表,每个图表都经过排序以仅连接后面的程序。如果您在星期一选择程序 A,则您在所有日子都选择它,依此类推。如果程序需要在一天内运行两次,此方案无法解决问题。
为 n 个程序生成一个 n×n 矩阵并检查每个程序与其他程序的兼容性。遍历每个程序仅与非冲突程序连接的图。有点坚持这个想法,并完全寻找下一步或新想法。
【问题讨论】:
标签: algorithm graph-algorithm memoization knapsack-problem