供应链 | 顶刊OR论文精读:在线最小峰值作业调度的竞争算法

在这里插入图片描述

Competitive Algorithms for the Online Minimum Peak Job Scheduling

在这里插入图片描述
本文为OR期刊论文,原文信息:

Célia Escribe, Michael Hu, Retsef Levi (2023) Competitive Algorithms for the Online Minimum Peak Job Scheduling. Operations Research. Articles in Advance, pp. 1–16. https://doi.org/10.1287/opre.2021.0080

原文摘要总结如下:

本文探讨了一个基础的在线调度优化问题,即最小峰值作业调度(Minimum Peak Job Scheduling, MPJS)问题。该问题涉及一系列作业,每个作业均分配有特定的使用时段,针对某一稀缺而可循环利用的资源。本问题的核心目标是在一个调度间隔内,通过作业的实时安排,达到最小化峰值资源利用率(即,在整个调度间隔中最大化同时作业的数量)。

MPJS问题准确抓住了实践中实时预约调度场景的核心特征。

  • MPJS问题的离线模式,即所有作业均事先已知的情形,等同于众所周知的装箱问题,其中,作业对应于物品,单位资源对应于箱子。

  • MPJS问题的在线模式则提供了更高的调度灵活性,允许在最初仅确定调度时间的基础上,后续进行资源的动态分配,类似于装箱问题中跨容器移动物品的能力。

虽然已有广泛文献研究了在线装箱问题的各种变体模式,但现有文献尚未全面覆盖MPJS模型的特性。

本文首次介绍了一种适用于MPJS问题的竞争性在线算法——谐波重匹配(Harmonic Re-matching, HR)算法,并通过分析证明,该算法的渐进竞争比低于1.5。当前装箱问题的随机在线算法的最优下界为1.536,这一结果凸显了两种模型之间的基本差异。

关键词:装箱 • 在线算法 • 竞争分析

1. 问题背景

本文描述了一个基础的在线调度优化问题,即最小峰值作业调度(Minimum Peak Job Scheduling, MPJS)问题。该问题涉及一系列作业,每个作业均分配有特定的使用时段,针对某一稀缺而可循环利用的资源。本问题的核心目标是在一个调度间隔内,通过作业的实时安排,达到最小化峰值资源利用率(即,在整个调度间隔中最大化同时作业的数量)。

编者注:最小峰值作业调度(MPJS)问题是一个典型的优化问题,通常出现在运筹学、计算机科学和工业工程等领域。该问题的目标是在一定条件下安排一系列作业(或任务),以使得在任何给定时刻,执行中的作业数量的最大值(即峰值)最小化。这种类型的问题在实际应用中非常重要,比如在生产调度、计算资源分配、网络流量管理等方面都有广泛的应用

MPJS问题的离线模式等同于装箱问题,但MPJS问题的在线模式则引入了不同的挑战,如资源分配的灵活性。与在线装箱问题相比,MPJS允许在调度完成后再分配资源,提供了更大的灵活性。例如,输液中心的病人预约调度反映了MPJS问题的实际应用。考虑一个有给定数量输液椅的输液中心。病人的预约请求在一天内随时间到达,每个预约请求到达时必须被安排到一个输液椅上,并指定预约的持续时间。该问题的目标是最小化输液椅的峰值数量,而峰值利用率通常决定了人员配备水平。其中,病人的预约对应于MPJS问题中的作业,输液椅对应于资源单位,预约持续时间对应于作业所需的预定时间。此外,一旦预约,预约的开始时间不能轻易改变,因为输液中心已经承诺了病人的特定时间,然而病人分配到的特定的输液椅可以在治疗当天确定。

本文开发了一种新的在线最小峰值作业调度(MPJS)算法,具有理论和实践上的良好性能。通过经典指标竞争比(Coffman等1996, 1999, 2013; Coffman和Csirik 2007)评估这些算法,也就是说,在线算法的性能是相对于一个离线最优算法来评估的,该算法在知道所有预约及其各自持续时间的情况下,做出最优的预约调度决策。

:竞争比(Competitive Ratio)是在线算法分析中一个核心的概念,用来衡量在线算法性能的一个标准。在线算法指的是那些在没有完整信息的情况下逐步做出决策的算法,即算法必须在每一步骤中,仅根据到目前为止接收到的信息做出决策,而无法预见将来的事件或数据。竞争比是在线算法性能与最优离线算法性能之间的比值。最优离线算法假设有关未来事件的完全信息,因此可以做出最优的决策。竞争比越小,意味着在线算法的性能越接近最优解,算法越有效。

竞争比在多种计算问题中都有应用,包括但不限于:

  • 缓存问题(如页面替换算法)
  • 调度问题
  • 路径规划
  • 数据流处理

本文提出了谐波重匹配(Harmonic Re-matching, HR),该算法实现了1.5的渐进竞争比,优于装箱问题算法的理论上界1.536(Chandra 1992)。该算法利用MPJS问题的灵活性,通过特定作业类别的单边箱子的调度,优化了作业的"打包"过程。注:关于装箱算法性能的不同结果在下表1中进行了总结。

表1. 装箱问题和MPJS问题的比较

在这里插入图片描述

本文结构概述如下,供读者参考:

  • 第2节:介绍并解释最小峰值作业调度(MPJS)问题,并推导出对MPJS问题的任何确定性在线算法的性能下界。
  • 第3节:定义了提出的全新的谐波重匹配(HR)算法及其具体的匹配和重新匹配规则。
  • 第4节:分析了HR算法的性能,展示了其渐进竞争比为1.5。

2. 模型描述

本节定义MPJS问题并描述模型符号。不失一般性地,假设给定的调度间隔长度为 T ≤ 1 T \leq 1 T1

考虑有 N N N 个作业依次到达,表示为 A 1 A_1 A1, …, A N A_N AN,预定时间为 l 1 l_1 l1, …, l N l_N lN(满足 0 ≤ l i ≤ 1 0 \leq l_i \leq 1 0li1)。这些作业需即时调度至资源池。设 s i s_i si 为作业 A i A_i Ai 的开始时间,满足 0 ≤ s i 0 \leq s_i 0si s i + l i ≤ 1 s_i + l_i \leq 1 si+li1。对于调度问题 ( A , l , s ) = ( A 1 , l 1 , s 1 ) , . . . , ( A N , l N , s N ) (A, l, s) = {(A_1, l_1, s_1), ..., (A_N, l_N, s_N)} (A,l,s)=(A1,l1,s1),...,(AN,lN,sN),时间 t t t 的作业总数记为负载 u t = ∑ i = 1 N 1 { s i ≤ t < s i + l i } u_t = \sum_{i=1}^{N} {1}\{s_i \leq t < s_i + l_i\} ut=i=1N1{sit<si+li}。调度问题的峰值负载(即最大箱子数)为 p ( ( A , l , s ) ) = max ⁡ 0 ≤ t ≤ 1 u t p((A, l, s)) = \max_{0\leq t\leq 1} u_t p((A,l,s))=max0t1ut。问题目标是最小化结果调度的峰值负载。

在开始作业时间 s i s_i si 时,未来作业的信息未知。令 A L G ( I ) ALG(I) ALG(I) 表示算法所需的最大箱子数, O P T ( I ) OPT(I) OPT(I) 为最优离线算法所需最大箱子数。绝对竞争比定义为:
sup ⁡ I ∈ Σ A L G ( I ) O P T ( I ) \sup_{I \in \Sigma} \frac{ALG(I)}{OPT(I)} IΣsupOPT(I)ALG(I)
其中, Σ \Sigma Σ表示所有可能的作业序列空间。渐进竞争比则定义为:
lim ⁡ N → ∞ sup ⁡ I : O P T ( I ) ≥ N A L G ( I ) O P T ( I ) \lim_{N \to \infty} \sup_{I:OPT(I) \geq N} \frac{ALG(I)}{OPT(I)} NlimI:OPT(I)NsupOPT(I)ALG(I)
命题 1: 对于任何可行调度 ( A , l , s ) (A, l, s) (A,l,s),都可以找到一种将 N N N 个作业分配至箱子的方式,恰用 p ( ( A , l , s ) ) p((A, l, s)) p((A,l,s)) 个箱子,每个作业由单个箱子处理。

命题1表明,最小化峰值负载的目标等同于最小化调度所有作业所需的最大箱子数量,以保证每个作业被单一箱子处理。将作业预定时间视为其“大小”(为便于与装箱问题比较,文中“预定时间”与“大小”术语将互换使用),该问题的离线模式即为众所周知的装箱问题,意味着任何在线装箱算法均可提供具有相同竞争比的解决方案。

针对此调度问题的任何在线确定性算法的绝对竞争比的下界。

命题 2: 对于MPJS问题的任何确定性在线算法,绝对竞争比 C R ≥ 1.5 CR \geq 1.5 CR1.5

3. 谐波重匹配算法(Harmonic Rematching Algorithm)

本节介绍谐波重匹配算法(HR算法),并展示其对调度问题具有1.5的渐进竞争比。

3.1 算法概述

HR算法基于两个核心思想:

  1. 作业分类:根据 ( 1 j + 1 , 1 j ] (\frac{1}{j+1}, \frac{1}{j}] (j+11,j1] 的调度需求将作业分为不同类别,借鉴了谐波装箱算法(Harmonic bin-packing algorithm, Lee and Lee 1985)和其他研究的分类方法。

  2. 作业分配:通过左侧和右侧单边箱子(left and right one-sided bins)的动态匹配与重新匹配来利用调度灵活性。左侧单边箱子(a left one-sided bin)从时间0开始到某个时间 0 < s < 1 0 < s < 1 0<s<1结束;右侧单边箱子(a right one-sided bin)从某个时间 0 < s < 1 0 < s < 1 0<s<1开始开始直至时间1结束。因此,开启一个左侧单边箱子对应于安排一个作业在时间 0 开始,同样,开启一个右侧单边箱子对应于安排一个作业在时间 1 结束。箱子的充满度(fullness)定义为该箱子中所有作业长度的总和。因为所有箱子的长度被标准化为一,箱子的充满度等同于其利用率。

上述两个核心思想使算法能在充满度(fullness)和重新匹配灵活性(rematching flexibility)之间平衡:旨在确保匹配的单边箱子充满度足够,同时保持足够的灵活性进行有效的重新匹配。当开启新的单边箱子时,算法随机选择是左侧还是右侧,以保持与单边箱子大小分布相关的特性,这在后续的竞争比分析中证明至关重要。

注:单边箱子是谐波重匹配算法中使用的一个概念,特指在调度问题中被设计来容纳同一类别中的作业的特定类型的箱子。这些箱子的特点是它们在调度过程中只被用来装载一侧(左侧或右侧)的作业,即要么从时间0开始直到某个特定时间点结束(左侧单边箱子),要么从某个特定时间点开始直到时间1结束(右侧单边箱子)。单边箱子的设计允许算法在分配作业到资源(箱子)时保持一定的灵活性,使得可以根据已调度的作业和未来可能到达的作业动态地进行匹配和重新匹配,以优化资源的利用率和减少所需的资源总量。

在HR算法中,单边箱子可以根据作业的大小进一步分类,如类型1、类型2细、和类型2胖单边箱子,每种类型针对不同大小范围的作业设计。这种分类方法和单边箱子的使用,帮助算法在满足作业的调度需求的同时,尽量减少峰值负载,即在任何给定时刻所需的最大资源数量。通过这种方法,HR算法旨在实现较低的渐进竞争比,即与最优离线算法相比,在线算法的性能度量。

3.2 创建单边箱子

3.2.1 作业分类

遵循先前研究,作业按大小划分为四类:非常大的作业( ℓ i ∈ ( 2 3 , 1 ] ℓ_i ∈ (\frac{2}{3}, 1] i(32,1]),大作业( ℓ i ∈ ( 1 2 , 2 3 ] ℓ_i ∈ (\frac{1}{2}, \frac{2}{3}] i(21,32]),中等作业( ℓ i ∈ ( 1 3 , 1 2 ] ℓ_i ∈ (\frac{1}{3}, \frac{1}{2}] i(31,21]),小作业( ℓ i ∈ ( 0 , 1 3 ] ℓ_i ∈ (0, \frac{1}{3}] i(0,31])。小作业进一步细分为子类别 I j = ( 1 j + 1 , 1 j ] I_j = (\frac{1}{j+1}, \frac{1}{j}] Ij=(j+11,j1],其中 3 ≤ j ≤ 11 3 ≤ j ≤ 11 3j11

3.2.2 单边箱子类型

单边箱子仅包含同一类别的作业。对于非常大的作业、大作业和中等作业,单边箱子都由单个作业组成,分别称为非常大的单边箱子(very large one- sided bins)、大单边箱子(large one-sided bins)和中等单边箱子(medium one-sided bins)。
小作业箱子分为三种:类型1(Type 1 one-sided bins,充满度至1),类型2细(Type 2 thin one-sided bins,充满度至 1 3 \frac{1}{3} 31),类型2胖(Type 2 fat one-sided bins,充满度至 1 2 \frac{1}{2} 21)。

3.2.3 完整匹配单边箱子集合

随着作业的到达,算法通过创建单边箱子完整匹配单边箱子集合来组织作业。这些集合是特定类别的,即每个集合只包含来自一个类别的作业,仅定义于小和中等作业。类型2细单边箱子总能与对面的类型2胖单边箱子匹配,形成类型2箱子,如图1所示。

图1. 两种对称的类型2箱子

  • 对于小作业( l ≤ 1 3 l ≤ \frac{1}{3} l31),通过结合类型1箱子和类型2箱子,可以创建一个完整的匹配单边箱子集合,其中类型2箱子通过暂时匹配类型2胖单边箱子与类型2细单边箱子得到。这样的匹配集合包含 n 1 n_1 n1 个类型1箱子和 n 2 n_2 n2 个类型2箱子, n 2 n_2 n2 为偶数。类型1箱子增加集合的充满度,而类型2箱子用以防备大作业的到来。

  • 一个具有 n 1 n_1 n1 个类型1箱子和 n 2 n_2 n2 个类型2箱子的完整匹配集合具有以下特征:

    • 按照类型2箱子的定义,存在 n 2 n_2 n2 个类型2细单边箱子和 n 2 n_2 n2 个类型2胖单边箱子。
    • 每一侧(左侧和右侧)的类型2细单边箱子和类型2胖单边箱子数量相同。
    • 注:完整匹配单边箱子集合的组成和类型1箱子与类型2箱子的比例,请读者自行参阅原文附录EC.4。每个作业类别的完整匹配集合至少为 2 3 \frac{2}{3} 32满。
  • 对于中等作业,完整匹配集合仅由两个相对的中等单边箱子组成。如果单边箱子未按类别和类型指定的数量填满,则视为不完整;否则,视为完整。未满足形成其类别完整匹配集合所有标准的单边箱子组,视为不完整;否则,视为完整。

3.2.4 新作业到来

当新作业到达时,HR算法根据作业大小和当前单边箱子的状态决定如何调度:

  • 非常大或大作业:创建新的单边箱子。如果一侧的同类单边箱子数量少,新箱子将在该侧创建;否则,以0.5概率随机选择左或右侧。这保持了大单边箱子数量的平衡。
  • 中等作业:也用于创建新的单边箱子,遵循与大作业相同的侧面选择规则。如果一侧已有未匹配的中等作业,新作业将与其在对侧匹配,形成完整的匹配中等单边箱子。
  • 小作业:首先尝试添加到同类别的不完整单边箱子中。若无不完整单边箱子但存在不完整匹配集合,则新作业用于开启新单边箱子并加入该集合;若无不完整集合,则创建新的匹配集合。新箱子类型的选择不影响分析结果。

这些规则确保大和中等单边箱子两侧数量大致平衡,最多相差一个作业。对于每个作业类别,一次最多只能有一个不完整的匹配单边箱子集合。

3.3 创建调度

本节概述了如何将完整匹配单边箱子集合转换为具体调度。目标是通过重新匹配来优化调度,特别是针对大单边箱子,以形成完全调度的箱子集合。

3.3.1 小作业箱子的重新匹配
  • 类型2胖单边箱子总能相互匹配,因为它们的预定时间小于 1 2 \frac{1}{2} 21
  • 类型2细单边箱子能与大单边箱子匹配,因为它们的预定时间小于 1 3 \frac{1}{3} 31 2 3 \frac{2}{3} 32
  • 当两个类型2箱子的细单边箱子位于相对两侧时,这两个箱子视为对称。
  • 重新匹配过程中,使用两个对称的类型2箱子和两侧的大单边箱子。类型2细单边箱子重新匹配到对侧的大单边箱子,而类型2胖单边箱子相互重新匹配,只有在选择的类型2箱子对称时才可行。
  • 为了重新匹配含有 n 2 n_2 n2个类型2箱子的集合,需在每侧选择 n 2 2 \frac{n_2}{2} 2n2个大单边箱子。
  • 成功的重新匹配减少了总箱子数量,形成重新匹配的箱子集合。\

图2展示了从初始完整匹配集合到重新匹配集合的转换示例,其中包括选择的大单边箱子和最终的重新匹配的箱子集合。

图2. 单边箱子的重新匹配过程

3.3.2 将额外的大作业分配给小作业

小作业的重新匹配箱子集合会涵盖一定比例的大作业。此过程旨在通过向集合中添加额外的大单边箱子,提高包含大作业的箱子比例,直至超过 2 3 \frac{2}{3} 32。如果重新匹配的箱子集合中含有大作业的比例已满足这一条件,则不需额外分配大作业。这一分配过程确保额外的大单边箱子被纳入到重新匹配的箱子集合中,以达到或超过大作业的目标比例。

3.3.3 小作业的完全调度箱子集合

小作业的完全调度箱子集合是通过以下步骤创建的:

  1. 重新匹配过程:首先,按照3.3.1节的描述,对完整匹配单边箱子集合执行重新匹配过程,得到一组重新匹配的箱子集合。
  2. 分配额外大作业:接着,如3.3.2节所述,将额外的大作业分配至重新匹配的箱子集合,直至达到完全调度的状态,即大作业箱子比例超过 2 3 \frac{2}{3} 32

如果任一步骤无法完全实施,则称为部分调度的箱子集合。在整个调度过程中,首先将大作业按大小递减顺序分别在左侧和右侧排列,用于重新匹配和分配。通过迭代选择小作业的完整匹配单边箱子集合,形成完全调度的箱子集合。完成这些步骤后,未参与重新匹配或未被分配到任何完整集合的大单边箱子被称为未分配的大单边箱子。

3.3.4 中等箱子的重新匹配

创建小作业的完全调度箱子集合过程终止于以下情形之一:未分配的大作业耗尽;或所有重新匹配的小箱子已分配大作业,达到或超过 2 3 \frac{2}{3} 32的大作业比例。此时,可能留有部分调度的小作业箱子集合。未分配的大作业和匹配的单边中等作业箱子,则进入中等作业箱子的重新匹配过程。

在重新匹配中等作业箱子时:

  • 未分配的大单边箱子和中等单边箱子按大小递增顺序排列于各自一侧。
  • 大作业与相同排名的中等作业匹配,形成单个箱子(包含一个大作业和一个中等作业),条件是它们的总大小不超过1。
  • 创建一系列单个箱子,每个箱子包含一个大作业和一个中等作业,形式为(L, M)或(M, L)。这些箱子也构成完全调度的中等箱子集合,因为集合中含有大作业的箱子比例大于 2 3 \frac{2}{3} 32

在中等作业的重新匹配过程中,可能因为(L, M)与(M, L)匹配的数量不同,留下未分配的大作业和单边中等箱子。这种情况下,继续将未分配的大作业与中等箱子配对,每个配对分配两个大作业,形成完全调度的中等箱子集合,直到所有可能的配对完成。这一步骤确保了小作业和中等作业的有效调度,最大化了箱子集合中大作业的比例,同时保持了调度的灵活性和效率。

4. 在线调度算法的竞争分析

4.1. 概述

在线调度算法的竞争分析目标是证明HR算法的渐进竞争比为1.5,即当作业数量无限增加时,算法的性能接近最优离线算法的1.5倍。分析步骤概述如下:

  • 基本属性:首先证明所有完全调度的箱子集合的充满度至少为 2 3 \frac{2}{3} 32,并且含有大作业的箱子比例不低于 2 3 \frac{2}{3} 32
  • 作业大小分布属性:展示大作业和中等作业在每侧的大小分布特性。
  • 不同情景分析:考虑3种调度情境,使用箱子的充满度和大作业比例两个下界来推导前两种情景的渐进竞争比。若所有箱子至少 2 3 \frac{2}{3} 32满,或含有大作业的箱子比例至少为 2 3 \frac{2}{3} 32,由于每个箱子最多只能装一个大作业,OPT至少需要使用HR算法使用量的 2 3 \frac{2}{3} 32来容纳所有作业,直接导出1.5的渐进竞争比。最后,通过考察大作业和中等作业的大小分布来推导渐进比率。

4.2 完全调度箱子集合的属性

引理1至6展示了完全调度箱子集合的两个关键属性:充满度和大作业比例。

  • 引理 1: 每个作业类别的完整匹配单边箱子集合的平均充满度至少为 2 3 \frac{2}{3} 32
  • 引理 2: 对于包含 n 1 n_1 n1个类型1箱子和 n 2 n_2 n2个类型2箱子的完整匹配单边箱子集合,在执行 k k k次部分重新匹配过程( k ≤ n 2 2 k \leq \frac{n_2}{2} k2n2)后,新箱子集合的平均充满度仍大于或等于 2 3 \frac{2}{3} 32
  • 引理 3: 每个作业类别的重新匹配箱子集合的平均充满度大于或等于 2 3 \frac{2}{3} 32
  • 引理 4 & 5: ## 标题展示了如何通过将额外的大单边箱子分配给重新匹配的箱子集合,达到大作业箱子比例大于或等于 2 3 \frac{2}{3} 32,同时保持箱子集合的平均充满度大于 2 3 \frac{2}{3} 32
  • 引理 6: 一组完全调度的箱子的平均充满度至少为 2 3 \frac{2}{3} 32,且含有大作业的箱子比例大于或等于 2 3 \frac{2}{3} 32。这基于引理4和引理5的结果,证明了额外的大作业可以被有效地分配给重新匹配的箱子集合,保持充满度和大作业比例的目标。

这些引理共同证明了HR算法在调度过程中成功维持了关键的箱子集合属性,即充满度和大作业比例,为实现1.5的渐进竞争比提供了基础。

4.3 大作业和中等作业的有界渐进不平衡

本节探讨了大作业和中等作业的不平衡问题,特别是当作业数量无限时。尽管算法能在每次迭代中保持左右大作业数量的近似平衡,但按大小递增顺序排列时,这种平衡并不总能保证。

  • 不平衡定义: 考虑一个按大小递增顺序的无限大作业序列, Y k = 1 Y_k=1 Yk=1 表示第 k k k 个较小的作业放置在左侧的事件, Y k = − 1 Y_k=-1 Yk=1表示它放置在右侧的事件。不平衡度 I L I_L IL是指在左侧和右侧大作业数量差异的度量,计算为 L L L个顺序大作业的左右放置差异之和,即 I L = ∑ k = 1 L Y k I_L = \sum_{k=1}^{L} Y_k IL=k=1LYk I L > 0 I_L > 0 IL>0意味着左侧的大作业较多,而 I L < 0 I_L < 0 IL<0则表示右侧的较多。

引理 7:考虑一个按大小递增顺序的无限大作业序列,记作 k = 1 , . . . , L k = 1, ..., L k=1,...,L。令 ( a 1 , . . . , a L ) (a_1, ..., a_L) (a1,...,aL) 表示 L L L个最小大作业的相应到达时间,其中 1 ≤ a k ≤ L 1 \leq a_k \leq L 1akL,并且 ( Y 1 , . . . , Y L ) (Y_1, ..., Y_L) (Y1,...,YL) 是它们到达时匹配的相应边,具体地,如果第 k k k 个最小的大型作业放置在左侧,则 Y k = 1 Y_k=1 Yk=1,如果它放置在右侧,则 Y k = − 1 Y_k=-1 Yk=1。那么可以得到:
lim sup ⁡ L → ∞ ± I L L = 0 a.s. \limsup_{L \to \infty} \frac{\pm I_L}{L} = 0 \quad \text{a.s.} LlimsupL±IL=0a.s.

4.4 渐进竞争比为1.5

4.4.1 符号

符号定义

  • v v v:非常大作业的单边箱子数量。
  • z z z:完全调度箱子集合中的箱子数量。
  • n n n:小作业部分调度箱子集合中的箱子数量。
  • m m m:中等作业部分调度箱子集合中的箱子数量。
  • ℓ \ell :未分配的大单边箱子数量。
  • k k k:不完整匹配单边箱子集合中的箱子数量,由常数 K K K上界。
4.4.2 情景1:没有未分配的大单边箱子

可能是由小作业的部分调度箱子集合( ℓ = 0 \ell = 0 =0 n > 0 n > 0 n>0)或由中等作业的部分调度箱子集合且没有未分配大单边箱子( n = 0 n = 0 n=0 ℓ = 0 \ell = 0 =0 m > 0 m > 0 m>0)导致。

引理 8: 如果没有未分配的大单边箱子( ℓ = 0 \ell = 0 =0),则算法 ALG 的性能不会超过最优解 OPT 的1.5倍加上一个与 OPT 无关的常数 K。

证明概要: 没有未分配的大单边箱子意味着所有这些箱子都已在重新匹配过程和分配过程中被使用。根据引理 6,所有完全调度的箱子集合的平均充满度超过 2 3 \frac{2}{3} 32,从而所有箱子平均至少 2 3 \frac{2}{3} 32满。引理 1 显示所有完整匹配的单边箱子集合平均至少 2 3 \frac{2}{3} 32满。引理 2 和 3 表明,所有部分调度箱子集合的平均充满度也超过 2 3 \frac{2}{3} 32,意味着所有箱子平均至少 2 3 \frac{2}{3} 32满。最终,所有非常大的作业至少 2 3 \frac{2}{3} 32满,所有中等作业至少 1 3 \frac{1}{3} 31满。这表明 OPT 至少需要 ALG 中 2 3 \frac{2}{3} 32数量的箱子来容纳所有作业,因此 A L G ≤ 3 2 O P T + K ALG \leq \frac{3}{2} OPT + K ALG23OPT+K

4.4.3 情景2:存在未分配的大单边箱子和完全调度的箱子集合

此情景下有未分配的大单边箱子( ℓ > 0 \ell > 0 >0)而没有部分调度的小或中等作业箱子集合( n = 0 n = 0 n=0 m = 0 m = 0 m=0)。

引理 9: 如果存在未分配的大单边箱子且只有完全调度的箱子集合( n = 0 n=0 n=0 m = 0 m=0 m=0,且 ℓ > 0 \ell>0 >0),则 ALG 的性能不会超过 OPT 的1.5倍加上一个与 OPT 无关的常数 K。

证明概要: 根据引理 6,完全调度的箱子集合中含有大作业的箱子比例大于等于 2 3 \frac{2}{3} 32。因此,这些箱子至少包含 2 3 \frac{2}{3} 32数量的大作业。假设中没有部分调度的箱子集合,意味着 OPT 至少等于 v + 2 3 z + ℓ v + \frac{2}{3}z + \ell v+32z+,因为 OPT 每个箱子最多不能装超过一个大作业。同时,ALG 为 v + z + ℓ + k v + z + \ell + k v+z++k k ≤ K k \leq K kK。这表明 A L G ≤ 3 2 O P T + K ALG \leq \frac{3}{2} OPT + K ALG23OPT+K

4.4.4. 情景3:未分配的大单边箱子和部分完成的中等作业调度箱子集合

存在未分配的大单边箱子和部分调度的中等箱子集合( ℓ > 0 \ell > 0 >0 m > 0 m > 0 m>0),这可能导致很多大单边箱子未被分配且中等箱子集合的大作业比例不足 2 3 \frac{2}{3} 32

引理 10: 考虑一个无限序列的项目,其中存在未分配的大单边箱子和部分预定的中等作业箱子集合(即, ℓ > 0 \ell > 0 >0 m > 0 m > 0 m>0)。那么,
lim ⁡ N → ∞ sup ⁡ I : OPT ( I ) ≥ N ALG ( I ) OPT ( I ) ≤ 3 2 \lim_{N \to \infty} \sup_{I:\text{OPT}(I) \geq N} \frac{\text{ALG}(I)}{\text{OPT}(I)} \leq \frac{3}{2} NlimI:OPT(I)NsupOPT(I)ALG(I)23
这意味着,在存在无限数量的大和中等作业时,即使有未分配的大箱子和部分完成的中等作业箱子集合,算法(ALG)与最优解(OPT)的渐进竞争比仍然不超过1.5。这个结果证明了即使在面对复杂情况时,算法的性能也几乎肯定地非常接近最优性能。

综上,可以得出如下定理。

定理 1. 考虑一个无限序列的项目。HR算法几乎必然地具有3/2的渐进竞争比:
lim ⁡ N → ∞ sup ⁡ I : OPT ( I ) ≥ N ALG ( I ) OPT ( I ) ≤ 3 2 \lim_{N \to \infty} \sup_{I:\text{OPT}(I) \geq N} \frac{\text{ALG}(I)}{\text{OPT}(I)} \leq \frac{3}{2} NlimI:OPT(I)NsupOPT(I)ALG(I)23
定理 1 的证明概要:这无限的项目序列将对应于先前指定的三种情景中的一个,因为它们涵盖了所有可能的情形。利用引理8到10,我们可以直接得出,几乎必然地,当N趋向于无穷大时, A L G ( I ) ALG(I) ALG(I) O P T ( I ) OPT(I) OPT(I)的比值的上确界小于或等于1.5。

在此基础上,作者设计了计算实验,HR算法通过对随机生成的预约请求序列进行评估,其性能结果与计算出的最优离线目标值进行了对比。实验涉及不同规模的预约数(n值),每种规模下随机生成1000个独立的序列,每个序列包含n个预约,每个预约持续时间也随机生成,采用了不同的概率分布模型来生成这些持续时间。实验结果显示,在离散均匀分布下,HR算法通常能达到接近最优的性能。但当预约作业的大小集中在较小的区间内时,算法的性能有所下降。通过适当地根据作业长度分布调整HR算法,可以在实际应用中获得更优的竞争比。实验中得到的竞争比远优于理论上的渐近保证1.5。此外,随着预约数量的增加,算法的平均性能比也呈现下降趋势。

5. 结论

本文介绍并研究了一个称为在线最小峰值作业调度(MPJS)问题的基础在线作业调度模型,并发现其离线版本与经典的装箱问题相似,但在线版本由于其额外的灵活性而有所不同。文中提出的在线谐波重匹配算法成功实现了比已知随机在线装箱算法更好的1.5渐进竞争比。算法在各种计算实验中展现了出色的实证性能,表明其在现实世界调度问题中具有应用价值。尽管如此,关于MPJS问题的渐进上界是否最优,以及问题的可能扩展,例如引入特定的调度约束,仍是值得进一步探究的开放性问题。

参考文献

  1. Coffman EG, Csirik J (2007) Performance guarantees for one- dimensional bin packing. Gonzalez TF, ed. Handbook of Approxi- mation Algorithms and Metaheuristics (CRC Press, Boca Raton, FL), 33–59.
  2. Coffman EG, Garey MR, Johnson DS (1996) Approximation algori- thms for bin packing: A survey. Hochbaum DS, ed. Approximation Algorithms for NP-Hard Problems (PWS Publishing Company, Boston), 46–93.
  3. Coffman EG, Galambos G, Martello S, Vigo D (1999) Bin packing approximation algorithms: Combinatorial analysis. Du DZ, Par- dalos PM, eds. Handbook of Combinatorial Optimization (Springer, Boston), 151–207.
  4. Coffman EG, Csirik J, Galambos G, Martello S, Vigo D (2013) Bin packing approximation algorithms: Survey and classification. Pardalos PM, Du D-Z, Graham RL, eds. Handbook of Combinato- rial Optimization (Springer, New York), 455–531.
  5. Balogh J, Be ́ ke ́ si J, Do ́ sa G, Epstein L, Levin A (2017) A new and improved algorithm for online bin packing. Preprint, submitted July 6, https://arxiv.org/abs/1707.01728.
  6. Balogh J, Be ́ ke ́ si J, Do ́ sa G, Epstein L, Levin A (2019a) A new lower bound for classic online bin packing. Internat. Workshop Approximation Online Algorithms (Springer), 2047–2062.
  7. Chandra B (1992) Does randomization help in online bin packing? Inform. Processing Lett. 43:15–19.
  8. Lee CC, Lee DT (1985) A simple on-line bin-packing algorithm. J. ACM 32(3):562–572.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

【git分支管理策略】如何高效的管理好代码版本

目录 1.分支管理策略 2.我用的分支管理策略 3.一些常见问题 1.分支管理策略 分支管理策略就是一些经过实践后总结出来的可靠的分支管理的办法&#xff0c;让分支之间能科学合理、高效的进行协作&#xff0c;帮助我们在整个开发流程中合理的管理好代码版本。 目前有两套Git…

【线段树】第十三届蓝桥杯省赛C++ A组 Java C组 Python A组/B组《最长不下降子序列》(C++)

【题目描述】 给定一个长度为 N 的整数序列&#xff1a;,,⋅⋅⋅,。 现在你有一次机会&#xff0c;将其中连续的 K 个数修改成任意一个相同值。 请你计算如何修改可以使修改后的数列的最长不下降子序列最长&#xff0c;请输出这个最长的长度。 最长不下降子序列是指序列中的…

python每日分析练习:产品季度销售的比较分析

这次我们将关注一家零售公司的季度销售分析。 假设场景 一家零售公司希望分析其过去一年内各季度的销售表现&#xff0c;以便更好地理解其业务趋势&#xff0c;评估不同产品类别的表现&#xff0c;并优化未来的销售策略。 分析目的 理解季度销售趋势&#xff1a;分析公司整体…

Mac 装 虚拟机 vmware、centos7等

vmware&#xff1a; https://www.vmware.com/products/fusion.html centos7 清华镜像&#xff1a; 暂时没有官方的 m1 arm架构镜像 centos7 链接: https://pan.baidu.com/s/1oZw1cLyl6Uo3lAD2_FqfEw?pwdzjt4 提取码: zjt4 复制这段内容后打开百度网盘手机App&#xff0c;操…

C语言例4-7:格式字符f的使用例子

%f&#xff0c;实型&#xff0c;小数部分为6位 代码如下&#xff1a; //格式字符f的使用例子 #include<stdio.h> int main(void) {float f 123.456;double d1, d2;d11111111111111.111111111;d22222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n&qu…

服务运营|香港大学雷骁:收益管理中价格歧视的公平性

编者按&#xff1a; INFORMS George B. Dantzig Dissertation Award 用于表彰运筹学和管理科学领域中具有创新性和实用性的最佳毕业设计。香港大学助理教授雷骁题为“Revenue Management in Video Games and With Fairness” 是这一奖项2023年度的提名者之一。 这篇毕业设计重…

github vscode 笔记

目录 前言1. 新建代码库2. 下载代码到本地3. 更新代码并上传到github 前言 github方便多人协作维护代码。该笔记记录了下面三个过程&#xff1a; 在github上新建代码库&#xff0c;下载代码到本地&#xff0c;将更新代码并上传到github 1. 新建代码库 2. 下载代码到本地 链…

中国赛道领跑之争:安踏将耐克越甩越远

一双鞋、一件衣服每被穿一次&#xff0c;消费者就会把它背后的品牌和自身的体验联系起来&#xff0c;做出评判。所以&#xff0c;如果说有什么领域能充分展示国产品牌的发展进步&#xff0c;鞋服一定包含在内&#xff0c;尤其是强调专业性的体育运动市场。 一年前的2023年3月&…

【Python版】手把手带你如何进行Mock测试

什么是mock&#xff1f; mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为&#xff0c;很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock&#xff1f; 之所以使用mock测试&#xff0c;是因为真…

uniapp微信小程序_computed_计算BMI

一、computed的用法还有它是什么&#xff1f; 首先它叫计算属性&#xff0c;顾名思义他是用来计算属性&#xff0c;计算你在data模板上定义的属性&#xff08;其实在插值表达式也能直接计算但是首先太长了在{{}}里面写那么多不好看&#xff0c;还有其他特点我在下面一起说&…

paramiko,一个强大的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个强大的 Python 库 - paramiko。 Github地址&#xff1a;https://github.com/paramiko/paramiko 在网络编程中&#xff0c;远程操作是一项非常常见的需求&#xff0c;特别是…

[Java基础揉碎]抽象类

目录 通过问题引出 介绍 关键点 细节 ​编辑 抽象类的最佳设计模式--模版设计模式 1.先用最容易想到的方法 2.分析问题&#xff0c;提出使用模板设计模式 通过问题引出 假如我们有个动物类, 动物都有eat吃的方法, 但是具体吃什么, 我们不知道, 因为是什么动物我们不知道…

Camtasia Studio 2024:视频编辑与制作的新里程碑及需要下载吗

Camtasia Studio 2024&#xff1a;视频编辑与制作的新里程碑 在数字化时代&#xff0c;视频已经成为人们获取信息、娱乐和学习的主要方式之一。为了满足这一需求&#xff0c;视频编辑和制作软件也在不断发展和创新。Camtasia Studio 2024作为一款功能强大的视频编辑软件&#…

GIS+Python:地质灾害风险评价的智能化解决方案

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质灾害在世界范围内频繁发生。我国除滑坡灾害外&#xff0c;还包括崩塌、泥石流、地面沉…

3-Flume之拦截器与GangLia监控

Flume Interceptor 概述 Interceptor(拦截器)本身是Source的子组件之一&#xff0c;可以对数据进行拦截、过滤、替换等操作不同于Selector&#xff0c;一个Source上可以配置多个Interceptor&#xff0c;构成拦截器链。需要注意的是&#xff0c;后一个拦截器不能和前一个拦截…

芒果YOLOv8改进130:Neck篇,即插即用,CCFM重构跨尺度特征融合模块,构建CCFM模块,助力小目标检测涨点

芒果专栏 基于 CCFM 的改进结构,改进源码教程 | 详情如下🥇 💡本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 即插即用 结构。博客 包括改进所需的 核心结构代码 文件 YOLOv8改进专栏完整目录链接:👉 芒果YOLOv8深度改进教程 | 🔥 订阅一个…

HarmonyOS 健康系统联系案例 创建项目

上文 HarmonyOS 健康系统联系案例 整体原型图介绍 我们 介绍了健康系统的整体 UI 然后 我们一点一点来 今天先搭个环境 首先 我们打开开发工具首页 创建项目 一个非常令人怀念的步骤啊 我们点击 Create Project 创建一个新的工程 模板 还是选最基础的 Empty Ability 然后 …

Docker系列

目录 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 docker下载nacos 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 目标&#xff1a; 1&#xff09;去DockerHub搜索Redis镜像 2&#xff09;查看Redis镜像的名称和版本 3&#xff09;利用docker pull命令…

Java异常知识点详解

目录 1. 异常的概念与体系结构 1.1 异常的概念 1. 算术异常 2. 数组越界异常 3. 空指针异常 1.2 异常的体系结构 1.3 异常的分类 2. 异常的处理 2.1 防御式编程 2.2 异常的抛出 2.3 异常声明throws 2.4 try-catch捕获并处理 2.5 finally 2.4 异常的处理流程 3. 自…