矩形刺穿与并行机器作业调度算法研究
在计算机科学领域,矩形刺穿问题和并行机器作业调度问题是两个重要的研究方向。本文将深入探讨这两个问题的相关算法及其性能。
矩形刺穿问题
矩形刺穿问题旨在找到一个最小的点集,使得该点集能够与给定的一组不相交矩形相交。对于该问题的压缩步骤求解,有如下重要结论:
-
Lemma 10
:存在一个运行时间为 (O((α + β)4^{αβ + O(1)}n)) 的算法,可解决压缩不相交矩形刺穿问题。
-
Theorem 2
:存在一个解决不相交矩形刺穿问题的算法,其运行时间为 (2^{O(k^2 \log k)}n \log n)。该算法遵循递归方案,并使用 Lemma 10 中的算法解决压缩步骤。证明过程基于递归式 (T(n, k) \leq 2T(n/2, k) + 2^{O(k^2 \log k)}n),通过主定理求解得到 (T(n, k) \leq 2^{O(k^2 \log k)}n \log n)。
并行机器作业调度问题
我们考虑在线、非抢占式的等长作业在并行机器上的调度问题,目标是最大化完成作业的数量。该问题在不同模型下有不同的研究。
调度模型
- 无限制模型 :调度器将所有请求汇集,实时做出决策,仅在确定作业无法按时完成时才丢弃作业。
- 立即通知模型 :作业到达时,调度器必须立即通知该作业是否被系统接受。一旦接受,作业必须按时完成,但调度器可将接受的作业集中汇集,直到执行时再做安排。
- 立即分派模型 :中央调度器必须立即将接受的作业分派到一台机器,但不指定具体的执行时间间隔。
- 立即决策模型 :中央调度器必须为接受的作业指定具体的机器和执行时间间隔。
FirstFit 算法
为了解决立即分派模型下的问题,我们引入了 FirstFit 算法。该算法为每台机器维护一个作业队列,新到达的作业会被分派到能可行接受它的最低索引机器上,如果所有机器都不可行,则拒绝该作业。与立即决策模型中的 BestFit 算法不同,FirstFit 允许每台机器在开始执行作业时,使用最早截止时间优先(EDF)规则重新排序队列。
以下是 FirstFit 算法的性能分析:
-
两台机器的情况
:对于 (m = 2),FirstFit 算法具有 (5/3) 的竞争比,并且这是立即分派模型下确定性算法的最佳可能比率。这表明该模型严格介于立即通知模型(确定性竞争比为 (3/2))和立即决策模型(确定性竞争比为 (9/5))之间。
-
单位长度作业的情况
:对于单位长度作业,FirstFit 算法的竞争比为 (1 / (1 - ((m - 1) / m)^m)),其中 (m \geq 1)。同样,该模型介于其他模型之间,立即通知模型中 EDF 策略可给出最优解,而 FirstFit 算法的上界小于立即决策模型的可比下界,且当 (m \to \infty) 时,两者都趋近于 (e / (e - 1) \approx 1.582)。
以下是不同模型下确定性和随机化竞争比的总结表格:
|模型|m = 1|m = 2|m = 3|m = 4|m = 5|m = 6|m = 7|m = 8|m = ∞|
|----|----|----|----|----|----|----|----|----|----|
|单位长度作业上界(无限制或立即通知)|1(使用 EDF)| - | - | - | - | - | - | - |1.582|
|等长作业下界(无限制或立即通知)|2|1.5|1.4|1.333|1.333|1.3|1.294|1.308|1.25|
|等长作业上界(无限制或立即通知)|2|1.5| - | - | - | - | - | - | - |
|单位长度作业下界(立即分派)| - | - | - | - | - | - | - | - |1.582|
|等长作业下界(立即分派)| - |1.8| - | - | - | - | - | - | - |
|等长作业上界(立即分派)|2|1.8|1.730|1.694|1.672|1.657|1.647|1.639|1.582|
|单位长度作业上界(立即决策)| - | - | - | - | - | - | - | - | - |
|等长作业下界(立即决策)| - | - | - | - | - | - | - | - | - |
|等长作业上界(立即决策)| - | - | - | - | - | - | - | - | - |
mermaid 格式流程图展示 FirstFit 算法流程:
graph TD;
A[作业到达] --> B{是否所有机器不可行};
B -- 是 --> C[拒绝作业];
B -- 否 --> D[找到最低索引可行机器];
D --> E[分派作业到该机器];
综上所述,矩形刺穿问题和并行机器作业调度问题在不同的算法和模型下有不同的性能表现。通过对这些算法和模型的研究,我们可以更好地解决实际中的相关问题。在后续部分,我们将继续深入探讨 FirstFit 算法在两台机器和单位长度作业情况下的详细证明过程。
矩形刺穿与并行机器作业调度算法研究
FirstFit 算法详细证明
两台机器情况下的最优竞争比证明
在两台机器((m = 2))的情况下,我们要证明 FirstFit 算法是 (5/3) 竞争的,且这是立即分派模型下确定性算法的最佳可能比率。
我们采用类似于 [11,12] 的分析方法。固定一个有限实例 (I) 和一个最优调度 (Opt),基于两个势函数 (\Phi_{FF}) 和 (\Phi_{Opt}) 来分析 FirstFit 与 (Opt) 的相对性能,这两个势函数用于衡量不同调度随着时间的进展情况。
将时间划分为连续的区间 ([u, v)),使得在每个区间内,(\Phi_{FF}) 的增加量至少等于 (\Phi_{Opt}) 的增加量。从 (u = 0) 开始,每个区间结束于第一个满足 (Q_1(v)) 可以从时间 (v + p) 开始在 (M_1) 上可行调度的时间 (v > u)。
定义如下集合和势函数:
- (S_{FF}(t)) 和 (S_{Opt}(t)) 分别表示 FirstFit 和 (Opt) 在时间 (t) 之前严格开始的作业集合。
- (D_{FF}(t) = S_{Opt}(t) \cap S_{FF}(\infty) \setminus S_{FF}(t)),即 (Opt) 在时间 (t) 之前开始,但 FirstFit 在时间 (t) 或之后开始的“延迟”作业集合。
- (D_{Opt}(t) = S_{FF}(t) \cap S_{Opt}(\infty) \setminus S_{Opt}(t)),定义类似。
- (B_{Opt}(t)) 表示在时间 (t) 之前两个算法都未开始,但 (Opt) 在 FirstFit 仍在执行 (S_{FF}(t)) 中的作业时开始的“阻塞”作业集合。
势函数定义为:
(\Phi_{FF}(t) = 5 \cdot |S_{FF}(t)| + 2 \cdot |D_{FF}(t)|)
(\Phi_{Opt}(t) = 3 \cdot |S_{Opt}(t)| + 3 \cdot |D_{Opt}(t)| + 2 \cdot |B_{Opt}(t)|)
直观上,这些势函数代表了不同调度中已完成工作的“报酬”。最终,FirstFit 每完成一个作业获得 5 分,(Opt) 获得 3 分,从而得到 (5/3) 的竞争比。在中间时间,对于已接受但尚未开始的作业给予一些预支付。
下面是几个重要引理的证明:
-
Lemma 1
:如果 FirstFit 拒绝作业 (j),则所有机器在 ([r_j, d_j - p)) 期间都处于忙碌状态。
- 证明:假设存在机器 (M_k)((k \in {1, 2}))在时间 (t) 空闲,其队列 (Q_k(t)) 为空。对于 (t \in [r_j, d_j - p)),这与 (j) 被拒绝矛盾,因为 (Q_j^k(r_j) \cup {j}) 是可行的,可通过在 ([r_j, t)) 按算法调度 (Q_j^k(r_j)),并在 ([t, t + p)) 调度 (j) 来证明。
-
Lemma 2
:FirstFit 在区间 ([u, v)) 内开始的任何作业 (j),除了 (M_1) 在时间 (u) 开始的作业外,都有 (d_j < v + p)。
- 证明:考虑 (d_j \geq v + p) 且在 ([u, v)) 内开始的作业 (j)。集合 (Q_j^1(r_j) \cup {j}) 在时间 (r_j) 必须在 (M_1) 上可行,可通过在 ([r_j, v)) 使用算法的实际调度,在 ([v, v + p)) 调度 (j),并根据 (v) 的定义,从 (v + p) 开始调度 (Q_1(v)) 来证明。因此,这样的 (j) 必须被分配到 (M_1) 并在某个时间 (u \leq t \leq v - p) 开始。如果 (t > u),(Q_1(t)) 相对于时间 (t + p) 的可行性与我们选择 (v) 作为区间结束时间相矛盾。所以,(j) 必须是 (M_1) 在时间 (u) 开始的作业。
-
Lemma 3
:对于 FirstFit 在时间 (u) 时 (M_1) 空闲的区间 ([u, v)),如果 (\Phi_{FF}(u) \geq \Phi_{Opt}(u)),则 (\Phi_{FF}(v) \geq \Phi_{Opt}(v))。
- 证明:(M_1) 空闲意味着 (Q_1(u) = Q_1(u + 1) = \varnothing),根据定义 (v = u + 1)。(Opt) 在时间 (u) 开始的任何作业,由于 (M_1) 空闲时的可行性,必须已经被 FirstFit 接受并在 (M_1) 上完成。因此,(\Phi_{FF}(v) = \Phi_{FF}(u)) 且 (\Phi_{Opt}(v) = \Phi_{Opt}(u))。
-
Lemma 4
:对于 FirstFit 在时间 (u) 时 (M_1) 开始作业的区间 ([u, v)),如果 (\Phi_{FF}(u) \geq \Phi_{Opt}(u)),则 (\Phi_{FF}(v) \geq \Phi_{Opt}(v))。
- 证明(概要):设 (n_1 \geq 1) 表示 FirstFit 在该区间内 (M_1) 开始的作业数量,(n_2 \geq 0) 表示 (M_2) 开始的作业数量。由于 (M_1) 在该区间内从不空闲,所以 (v - u = p \cdot n_1)。我们首先考虑 (\Phi_{Opt}(v) - \Phi_{Opt}(u)) 的可能贡献,分为以下几部分:
- (3 \cdot d)((d \geq 0)),由于新添加到 (D_{Opt}(v)) 的作业。这些延迟作业必须在该区间内由 FirstFit 开始,但被 (Opt) 保留到后续区间。根据 Lemma 2,FirstFit 开始的作业中最多有一个作业的截止时间为 (v + p) 或更晚,所以 (d \leq 1)。
- (3 \cdot a)((a \geq 0)),由于新添加到 (S_{Opt}(v)) 的作业,这些作业之前未作为 (D_{Opt}(u)) 或 (B_{Opt}(u)) 的一部分被计入,并且在发布时被 FirstFit 接受。由于这些作业被 FirstFit 接受且之前未被 (Opt) 开始,它们必须位于 (S_{FF}(v)) 或 (D_{FF}(v)) 中。
通过这些引理的证明,我们可以得出在两台机器的情况下,FirstFit 算法是 (5/3) 竞争的,且这是最优的。
单位长度作业情况下的竞争比证明
对于单位长度作业((p = 1)),我们要证明 FirstFit 算法的竞争比为 (1 / (1 - ((m - 1) / m)^m)),其中 (m \geq 1)。
在单位长度作业模型中,由于作业长度为 1,不存在一个作业执行时另一个作业发布的情况。FirstFit 算法通过固定机器的顺序,将新到达的作业分配到最低索引的可行机器上。
随着机器数量 (m) 的增加,该竞争比的上界小于立即决策模型的可比下界,且当 (m \to \infty) 时,两者都趋近于 (e / (e - 1) \approx 1.582)。这表明在单位长度作业的情况下,FirstFit 算法在立即分派模型中具有较好的性能。
不同模型下的下界分析
除了上述对 FirstFit 算法的分析,我们还给出了不同模型下的确定性和随机化下界。
| 模型 | m = 1 | m = 2 | m = 3 | m = 4 | m = 5 | m = 6 | m = 7 | m = 8 | m = ∞ |
|---|---|---|---|---|---|---|---|---|---|
| 随机化下界(立即通知) | 1.333 | 1.263 | 1.256 | 1.255 | 1.25 | 1.252 | 1.251 | 1.251 | 1.25 |
| 随机化下界(立即分派) | 1.333 | - | - | - | - | - | - | - | - |
| 随机化下界(立即决策) | 1.333 | - | - | - | - | - | - | - | - |
这些下界为不同模型下算法的性能提供了一个基准,帮助我们评估算法的优劣。
mermaid 格式流程图展示不同模型的决策流程:
graph TD;
A[作业到达] --> B{立即通知模型};
B -- 是 --> C[决定是否接受作业];
C --> D{立即分派模型};
D -- 是 --> E[分派作业到机器];
E --> F{立即决策模型};
F -- 是 --> G[指定机器和时间区间];
B -- 否 --> H[无限制模型处理];
综上所述,通过对矩形刺穿问题和并行机器作业调度问题的研究,我们深入了解了不同算法和模型的性能。FirstFit 算法在立即分派模型中表现出了良好的性能,特别是在两台机器和单位长度作业的情况下。不同模型下的下界分析也为算法的设计和评估提供了重要的参考。未来,我们可以进一步研究如何改进算法,以在更多场景下实现更好的性能。
超级会员免费看
14万+

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



