云环境下的高效调度算法研究
1. 度为 2 的通信树调度算法
在处理度为 2 的依赖图实例时,我们采用了一种简单的贪心算法 A1,它是经典 NextFit 算法的直接改编。该算法从度为 1 的节点开始,按路径顺序分配物品。若物品能放入当前箱子且不违反容量和边约束,则放入;若不能,则尽可能多地将物品放入当前箱子,然后开启新箱子放置剩余部分。
算法 A1 具有以下特点:
- 近似比分析 :通过将算法 A1 使用的箱子集合划分为 B1(容量约束严格的箱子)和 B2(未装满但边约束严格的箱子),并定义物品集合 E1、E2 和 ER,我们可以得出 A1 的渐近近似比至多为 (2 - \frac{1}{2(m - 1)})。具体推导过程如下:
- 首先,(A1 = |B1| + |B2| + \lceil \frac{|ER|}{m - 1} \rceil),因为每个箱子要么属于 B1,要么属于 B2,要么是最后一个箱子。
- 由于 B1 中的箱子只包含 E1 中的物品,所以 (|B1| \leq \sum_{e \in E1} s_e);B2 中的每个箱子包含 (m - 1) 个 E2 中的物品,且 E2 中的每个物品最多放入一个 B2 中的箱子,所以 (|B2| = \frac{|E2|}{m - 1})。
- 对于最优解 Opt,有 (Opt \geq \lceil \sum_{e \in E} s_e \rceil) 和 (Opt \geq \frac{|E|}{m - 1}),这分别由容量和边约束得出。
- 结合 (|E| = |E1| + |E2| + |ER| - |E’|) 以及 (|E’| \leq \fr
超级会员免费看
订阅专栏 解锁全文
1291

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



