假设所有流程同时到达,就降低平均周转时间而言,最短作业首先似乎是最佳的。我也设法证明了这一点。
然而,当在不同时间到达时,我觉得最佳算法将是最短的剩余时间(先抢先最短的作业)。但我找不到证明它的方法。有人可以帮助我/指出我的解决方案吗?还是我错了?
http://en.wikipedia.org/wiki/Shortest_remaining_time
您可以一次运行一个进程。没有上下文切换时间。
编辑: 假设我们有n个过程。
每个进程的执行时间为P(i)。 1< = i< = n
每个过程都可以在特定时间R(i)
执行每个进程在某个时间C(i)(周转时间)结束运行,基于它何时开始运行,如果它被暂停e.t.c
所有时间都是整数。没有具体的例子。我只需要找到一个算法来优化任何给定输入的平均周转时间((C(1)+ C(2)+ ... + C(n))/ n)。 (尽可能低)