单台机器带释放时间的调度问题的PTAS实现
1. 引言
单台机器上对带释放时间的作业进行调度,以最小化总完成时间,是一个被广泛研究的基础调度问题。由于该问题是强NP完全问题,近年来许多研究聚焦于寻找启发式算法和近似算法。多项式时间近似方案(PTAS)是一种能在任何固定的 $\epsilon > 0$ 下,找到最优解 $(1 + \epsilon)$ 因子内的近似算法。最近,针对该问题设计出了一种PTAS。
通常,PTAS的运行时间很长,使得实现该算法不太可行。不过,本文讨论的调度PTAS运行时间为 $O(n \lg n + (1/\epsilon^5)!)$,虽然常数项较大,但由于它不与 $n \lg n$ 项耦合,使得该算法有可能快速实现。
本文介绍了Karger和Stein提出的PTAS(称为S - PTAS)的实现,将其与其他精确、启发式和近似算法进行性能比较。还尝试基于S - PTAS的思想找到更好的算法。结果表明,虽然严格实现的S - PTAS性能不佳,但可以通过修改实现来开发在实践中表现良好的强启发式算法。
2. 术语
- 设 $J$ 是一组 $n$ 个作业,每个作业 $j$ 的释放时间和处理时间分别为 $r_j$ 和 $p_j$,处理时间也称为作业大小。
- 对于单台机器调度问题,调度是将作业分配到机器的时间槽上,使得作业在释放时间之后开始处理,且同一时间最多处理一个作业。作业 $j$ 需处理 $p_j$ 个单位时间,其完成时间记为 $C_j(\sigma)$,当调度明确时,开始和完成时间分别缩写为 $S_j$ 和 $C_j$。
- 通常作业非抢占式运行(无中断),即
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



