European Journal of Operational Research
欧盟运营研究杂志
245 卷,第 1 期,2015 年 8 月 16 日,第 35-45 页
Discrete Optimization 离散优化Scatter search with path relinking for the flexible job shop scheduling problem
具有路径重链的散射搜索方法用于柔性作业车间调度问题
Highlights 亮点
- •Neighborhood structures for Flexible Job Shop Scheduling Problem (FJSP) are proposed.
提出了一种用于柔性作业车间调度问题的邻域结构。 - •New dissimilarity measures for solutions of the FJSP are defined.
定义了用于 FJSP 解决方案的新相似度度量。 - •A new Scatter Search with Path Relinking (SSPR) algorithm is proposed for the FJSP.
提出了一种用于 FJSP 的新的散布搜索与路径重链 (SSPR) 算法。 - •The experiments show that SSPR compares favorably with the state-of-the-art.
实验表明,SSPR 与现有最先进技术相比具有优势。
Abstract 摘要
可调整作业车间调度问题由于其高复杂性和在实际生产环境中的广泛应用而是一个具有挑战性的问题。在本文中,我们提出了该问题的有效邻域结构,包括可行性和非改进条件,以及快速估计邻居质量的程序。这些邻域被嵌入到散列搜索算法中,该算法在其核心使用了禁忌搜索和路径重链。为了开发这些元启发式方法,我们定义了一种新的相似度度量,它处理灵活性。我们进行了一项实验研究,以分析所提出的算法并将其与标准基准上的最新技术进行比较。在这项研究中,我们的算法与其他方法相比具有优势,并为一些实例建立了新的上限。
Keywords 关键词
调度灵活作业车间散列搜索路径重链邻域结构
1. Introduction 1. 引言
车间调度问题 (JSP) 是许多实际生产过程的简单模型。它是最经典和最困难的调度问题之一,几十年来一直受到研究(Meeran 和 Morshed,2014)。然而,在许多环境中,生产模型必须考虑额外的特性或复杂的约束。在这项工作中,我们考虑选择机器之间的替代路径的可能性,这在生产环境中很有用,因为多台机器能够执行相同的操作(可能具有不同的处理时间),因为它允许系统吸收工作需求或机器性能的变化。这个问题被称为柔性车间调度问题 (FJSP)。它最初由 Brucker 和 Schlie (1990) 提出,此后一直是研究的重点。
最初,研究人员提出了分层方法,其中机器分配和作业调度分别进行研究(Brandimarte, 1993)。然而,文献中大多数工作同时考虑这两个子问题。Mastrolilli 和 Gambardella (2000) 开发了两种邻域结构来改进 Dauzère-Pérès 和 Paulli (1997) 提出的禁忌搜索算法。最近,Ho 等人提出了一个可学习的遗传架构 (LEGA) (Ho, Tay, and Lai, 2007)。Gao, Sun 和 Gen (2008) 开发的结合可变邻域下降搜索的混合遗传算法 (hGA) 也值得关注。其他方法,例如 Hmida, Haouari, Huguet 和 Lopez (2010) 提出的爬山深度有界差异搜索 (CDDS) 算法、Yuan 和 Xu (2013) 的混合和声搜索与大邻域搜索 (HHS/LNS) 或 González, Vela 和 Varela (2013) 提出的结合禁忌搜索的混合遗传算法 (GA + TS),也在标准实例上取得了良好结果。 Bozejko、Uchronski 和 Wodecki (2010) 提出了一种基于邻域确定(TSBM 2 h)的双层并行元启发式算法的并行方法,并在一个标准基准测试中取得了良好结果。Gutierrez 和 Garcia-Magario (2011) 将模块化遗传算法与修复启发式方法 (MGARH) 相结合,并在一个标准基准测试中也获得了新的上限。为了对 FJSP 的最新技术水平有一个总体了解,我们可以说,TS、hGA、CDDS、HHS/LNS、TSBM 2 h、MGARH 和 GA + TS 在上述方法中表现最佳。然而,在获得最佳解决方案或在所有基准测试中花费最少时间方面,它们之中没有一种能完全优于其他方法。此外,某些方法的性能会因基准测试而异,并且有些方法并未在所有常用基准测试中进行评估。例如,MGARH 在一个特定基准测试中表现最佳,但尚未在其他基准测试中进行评估;hGA 也是一个基准测试中的最佳方法,但在其他基准测试中表现明显不佳。
尽管元启发式算法已被广泛应用于调度问题,但强大的方法,如带有路径重连的散射搜索,却很少在柔性环境中使用。这可能是由于难以定义计划之间的紧密距离。据我们所知,只有在贾和胡(2014)中,作者将路径重连与禁忌搜索结合起来,并考虑多目标优化,才为 FJSP 定义了距离。
在本文中,我们针对具有最小化制造时间的 FJSP 提出新的邻域结构。我们定义了可行性和非改进条件以及用于快速估计邻居质量的算法。我们还定义了两个解决方案之间的不相似性度量,该度量考虑了问题的柔性特性。这些新的结构和不相似性度量被整合到一种混合元启发式方法中,该方法使用带有路径重连的散射搜索和禁忌搜索作为改进方法。我们进行了一项实验研究,以分析我们的建议并将其与现有技术进行比较。
论文的其余部分组织如下。第 2 节中,我们将阐述问题并描述解决方案图模型。第 3 节中,我们将定义所提出的邻域结构。第 4 节详细介绍了新的相似度度量和使用的元启发式算法。第 5 节报告了实验研究的结果,最后第 6 节总结了本文的主要结论。
2. Problem formulation 2. 问题描述
在车间调度问题 (JSP) 中,有一组作业 J = {J 1 ,…,J n } 需要在一组 M = {M 1 ,…,M m } 物理资源或机器上进行处理,并受一组约束的限制。存在优先级约束,因此每个作业 J,i = 1,…,n,由 n 个操作 组成,这些操作必须按顺序安排。此外,还存在容量约束,每个操作 o ij 都需要在整个处理时间内连续且独占地使用其中一台机器。
在柔性作业车间调度问题 (FJSP) 中,允许操作 o ij 在给定集合 M(o ij )⊆M 的任何机器上执行。操作 o ij 在机器 M k ∈ M(o ij ) 上的处理时间为 。 请注意,操作的处理时间在每台机器上可能不同,并且一台机器可以处理同一作业的多个操作。目标是构建一个可行的时间表,该时间表包括为集合 O = ∪ 1 ≤ i ≤ n O 中的每个操作分配一台机器和一个开始时间,使得所有约束都满足。目标函数是最大完工时间,应将其最小化。FJSP 由于它是已证明为 NP-hard 的 JSP 的推广而也是 NP-hard(Garey、Johnson 和 Sethi,1976)。
解也可以被视为一对 (α, π),其中 α 表示将每个操作 o ij ∈ O 分配到机器 M k ∈ M(o ij ) 的可行分配,表示为 α(o ij ) = k,而 π 是在所有兼容作业序列的机器 M 上的操作的处理顺序。
令 和 表示作业序列中 o ij 之前和之后的操作,以及 和 表示机器序列中 o ij 之前和之后的操作(如果存在)。o ij 的开始时间和完成时间,分别表示为 和 ,可以计算为 (如果一个操作在其作业或机器序列中是第一个,则相应的 或 取为 0),其中 k = α(o ij )。目标是找到一个解 (α, π),使最大完工时间(表示为 )最小化。
2.1. Solution graph and criticality
2.1. 解图和关键性
我们定义了 FJSP 的以下解图模型。根据该模型,机器分配 α 和可行作业处理顺序 π 可以由有向无环图 G(α, π) = (V, A∪R(α, π)) 表示,其中 V 中的每个节点 v 都表示问题中的一个作业,用分配的机器 M k 标记,或者虚拟节点开始和结束中的一个,它们是处理时间为 0 的虚构作业。
集合 A 包含表示工件加工顺序的合取弧,集合 R(α, π) 包含表示机器加工顺序的析取弧。弧 (v, w) 的权重为操作 v 在指定机器 M k 上的加工时间 p vk 。如果 w 是其工件 J(w) 的加工顺序中的第一个操作,则 G(α, π) 中存在一条权重为 0 的弧 (start, w);如果 w 是工件加工顺序中的最后一个操作,则存在一条权重为 p wk 的弧 (w, end),其中 k = α(w)。图 1 显示了一个包含 3 个工件和 3 台机器的问题的解图。

Fig. 1. A feasible schedule to a problem with 3 jobs and 3 machines represented by a solution graph. Bold-face arcs show a critical path whose length, i.e., the makespan, is 21.
图 1. 一个包含 3 个作业和 3 台机器的问题的可行调度,由一个解图表示。粗体弧表示一个关键路径,其长度,即制造时间,为 21。
集合 R(α, π) 被划分为子集 R k (α, π),其中 R k (α, π) 是定义所有需要机器 M k 的操作的加工顺序的最小弧集。
解 (α, π) 的制造时间是 G(α, π) 中关键路径的成本,即从节点 start 到节点 end 具有最大成本的有向路径。图 1 中的粗体弧表示关键路径。关键路径中的节点和弧也称为关键的。我们将关键块定义为关键路径中连续操作的最大子序列,这些操作需要相同的机器。请注意,根据此定义,关键块可能包含同一作业的多个操作。这与文献中的其他定义(例如 Mastrolilli 和 Gambardella (2000) 或 González 等人 (2013) 中的定义)有所不同,并且对关键块长度和邻域大小有一定影响,我们将在后面详细介绍。
关键块的概念很重要,因为大多数针对车间调度问题的邻域结构都依赖于在关键块中交换工序的处理顺序(Amico, Trubian, 1993, Mati, Dauzere-Peres, Lahlou, 2011, Van Laarhoven, Aarts, Lenstra, 1992)。第 3.1 节中提出的结构也包含这类移动,但正如我们将看到的,在 FJSP 中,我们必须引入一种额外的移动类型来处理机器分配子问题。
为了形式化邻域结构的描述,我们引入了操作 v 的头和尾的概念,分别用 r v 和 q v 表示,计算方式如下:
滥用符号,SJ start (PJ end ) 表示由每个 n 个作业中第一个(最后一个)处理的工序组成的集合。如果且仅当 C max = r v + p vα(v) + q v 时,节点 v 才是关键节点。
3. Neighborhood structures
3. 邻域结构
在本节中,我们为柔性作业车间调度问题 (FJSP) 提出了几种邻域结构,其中一些专注于排序子问题,因此它们依赖于改变机器上作业的处理顺序;而另一些则处理分配子问题,因此它们的移动包括改变作业的机器分配。对于这些结构,我们证明了可行性和非改进条件,并提出了快速估计邻居质量的方法。我们还分析了组合这些结构的不同策略。
3.1. Structures for the sequencing subproblem
3.1. 排序子问题的结构
我们提出了两种结构,分别称为 N π 和 ,它们扩展了 Amico 和 Trubian (1993) 定义的一些结构以适应柔性作业车间调度问题 (FJSP)。在这两种情况下,通过将关键操作移动到其关键块中的另一个位置(保持机器分配)来创建邻居。它们基于以下结果。
Proposition 1 命题 1
令 S = (α, π) 和 S′ = (α, π′) 是两个可行调度,使得 S′ 是从 S 获得的,它保留了 S 中关键路径上所有操作的处理顺序。那么,C max (S′) ≥ C max (S)。
因此,我们只考虑关键路径上作业的加工顺序变化,以获得可能改进的排程。现在让我们考虑图 2 左侧的部分,其中该块 (v u 1 … u n w) 中的所有作业都分配到同一台机器,而 w 属于与其他作业不同的工件。虚线箭头表示潜在的替代路径。将 w 移到 v 之前(图 2 右侧)需要检查这些路径是否存在,否则生成的图中会出现循环。以下结果给出了没有循环的充分条件。
Proposition 2 命题 2
令 S = (α, π) 为一个可行调度,令 (B′ v B w B′′) 为解图 G(α, π) 中一系列连续的操作,它们都分配给同一台机器,其中 B, B′ 和 B′′ 本身是操作序列,它们可以为空。令 (α, π′) 为通过将 w 移到 v 前面而从 S 创建的调度。那么,如果满足以下条件,则 G(α, π′) 没有循环:(1)where C = 0 if SMz = PJw, and otherwise, being z = SJu, k1 = α(SJu), k2 = α(SJz).
其中 C = 0,如果 SM z = PJ w ,否则为 ,其中 z = SJ u ,k 1 = α(SJ u ),k 2 = α(SJ z )。

Fig. 2. Potential alternative paths between two operations v and w belonging to the same machine that would create a cycle in the neighbor built by inserting w before v. The initial schedule is shown in the left side while the neighbor is in the right side.
图 2. 两台机器上属于同一台机器的两个操作 v 和 w 之间的潜在替代路径,在将 w 插入 v 之前会创建邻域中的循环。左侧显示初始计划,右侧显示邻域。
关于将操作 v 插入 w 之后,可以证明类似的结果。因此,我们可以定义以下邻域结构。
Definition 1 定义 1
N π 结构。设操作 v 是关键块 B 的成员。在邻域解中,v 移动到 B 中的另一个位置,前提是命题 2 中给出的可行性充分条件成立。
为了减少邻域的有效大小,我们提出了以下非改进条件,该条件可以有效评估。
Proposition 3 命题 3
令 S = (α, π) 为一个解,(B′ v B w B′′) 为 G(α, π) 中的临界块,其中 B, B′ 和 B′′ 是形式为 B = (u 1 , …, u n ), 和 的操作序列,且 n′, n′′ ≥ 1。即使通过在 v 前插入 w 从 S 获得的排程 S′ = (α, π′) 是可行的,S′ 的完工时间也不能低于 S 的完工时间。
可以建立一个类似的结果,用于通过在操作 w 后插入操作 v 来创建的邻居。因此,如果内部操作移动到关键块的第一项操作之前或最后一项操作之后,或者如果关键块的极端操作移动到该块中的其他位置,则 N π 中的移动才能改进完工时间。因此,我们可以定义以下简化的邻域结构。
Definition 2 定义 2
结构。令 v 为关键块 B 中的操作。如果 v 是 B 的内部操作,则通过将 v 移动到 B 中的第一项操作之前或最后一项操作之后来获得相邻的解决方案。如果 v 是 B 的第一项或最后一项操作,则通过将 v 移动到 B 中的另一个位置来获得相邻的解决方案。在这两种情况下,都必须满足命题 2 中给出的可行性充分条件。
图 3 显示了一个示例,其中使用 创建了图 1 调度的邻居。在这种情况下,o 23 插入 o 32 之后,完工时间有所改善。

Fig. 3. A neighbor of the solution of Fig. 1 created with . The makespan is reduced from 21 to 18.
图 3. 使用 创建的图 1 解决方案的邻居。制造时间从 21 缩短到 18。
现在让我们引入新的邻域,称为 ,它扩展了 Van Laarhoven 等人 (1992) 的建议。
Definition 3 定义 3
结构。令 v 和 w 为同一机器的连续作业。在相邻的解决方案中,如果命题 2 中给出的可行性充分条件成立,则反转 v 和 w 的处理顺序。
根据命题 1, 生成的许多邻居都是非改进的,因此这种结构对禁忌搜索没有用。然而,正如第 4.4 节将要看到的,它可能对路径重链有用。
注意,对于任何定义的结构,所选邻居的顺序 π′ 可以仅通过重建 π 的一部分来构建。例如,如果邻居是通过在 w 后插入 v 或在 v 前插入 w 来使用 N π 创建的,则 π 中 v 之前的操作序列和 w 之后的操作序列保留在 π′ 中(Mattfeld (1995) 中对经典 JSP 有类似的重建细节)。
3.2. Structures for the assignment subproblem
3.2. 任务分配子问题的结构
改变一个操作的机器分配可能会导致改进的计划。这种可能性已经在 Mastrolilli 和 Gambardella (2000) 中被利用,作者考虑了一组称为 k-插入的移动。k-插入将操作 v 分配给新机器 M k ∈ M(v),然后寻找 v 在机器序列 k 中的最佳位置。
我们这里提出一种更简单、耗时更少的方法:给定一个解 S = (α, π),通过将一个新机器 分配给关键操作 v 来获得一个邻域。在 的机器序列中选择 v 的新位置,使得移动后图的拓扑顺序保持不变,即移动后 π 顺序保持不变;从而保证可行性。请注意,更改非关键操作的机器不能立即改善完工时间。该结构定义如下。
Definition 4 定义 4
N α 结构。令 S = (α, π) 为一个调度,令 v 为关键操作,令 α <v, k > 为从 α 中重新分配 v 到新机器 M k ∈ M(v),k ≠ α(v) 后获得的分配。则 (α <v, k > , π) 是一个邻近解。
例如,让我们考虑在图 1 的调度中,操作 o 12 可以由机器 M 3 处理。如果 o 12 从 M 1 切换到 M 3 ,由于 o 12 在拓扑顺序中位于 o 22 之后,则 o 12 会在新机器序列 M 3 中插入 o 22 之后。结果是图 4 的调度,其完工时间比原始调度更好。

Fig. 4. A neighbor of the solution of Fig. 1 created with Nα. The makespan is reduced from 21 to 17.
图 4. 使用 N α 创建的图 1 解决方案的邻居。制造时间从 21 缩短到 17。
正如我们在排序子问题中所做的那样,我们定义了路径重链中使用的邻域 。此结构与 N α 相同,只是操作 v 不一定是关键操作。
3.3. Combining sequencing and assignment structures
3.3. 组合排序和分配结构
我们还考虑将先前结构组合起来,以便在建议算法的不同阶段使用。例如,在禁忌搜索算法中(参见第 4.5 节),使用具有高概率生成改进排程的邻域结构很方便。因此,我们为此定义了以下结构。
Definition 5 定义 5
然而,在路径重链过程中,优先级不仅是缩短完工时间,还在于缩短两个解之间的距离。因此,由 N α 或 丢弃的一些邻居在距离或差异方面可能非常有吸引力。这种考虑导致我们定义以下结构。
Definition 6 定义 6
Definition 7 定义 7
在第 4.4 节中,我们将描述如何将这些结构集成到路径重链过程中。
3.4. Makespan estimate 3.4. 制造时间估计
为了估算使用 N π 和 创建的邻居的完工时间,我们建议使用 Amico 和 Trubian (1993) 在经典 JSP 中给出的 lpath 过程的直接扩展。令 (α, π′) 是从 (α, π) 获得的排程。为了估算 (α, π′) 的完工时间,该过程以 π′ 中需要同一机器的操作序列 (x Q 1 …Q q y) 为输入,其中 Q 1 …Q q 是操作 O 1 …O q 的排列,在 π 中出现为 (x O 1 …O q y)。需要注意的是,x 之前的操作头和 y 之后的操作尾在邻居中不会改变。因此,对于每个 i = 1…q,该过程估算从节点开始到通过 Q 结束的最长路径的成本,并将这些值的最大值作为相邻排程的完工时间估计。这种估计不一定是下界。此外,对于 ,可能发生关键操作的处理顺序没有改变,在这种情况下,估计可以进一步细化一点,因为它不能低于原始排程的完工时间。 欲了解更多关于 lpath 过程的细节,请参阅 Amico 和 Trubian (1993) 的论文。
现在让我们讨论一下使用 N α 和 创建的邻居的估计。给定一个计划 S = (α, π) 和一个操作 x,其中 k = α(x),将 x 分配给另一台机器 会产生一个可行计划 S′ = (β, π),其中 ,即,对于所有 y ≠ x,β(y) = α(y),并且 β(x) = k′。与之前一样,x 之前的操作头和 y 之后的操作尾部不会改变,移动后 x 的头和尾由以下表达式给出:(2)where k1 = α(PJx) and k2 = α(SJx). Therefore, the makespan of S′ = (β, π) can be estimated as . In this case the estimate is a lower bound on Cmax(S′).
其中 k 1 = α(PJ x ) 且 k 2 = α(SJ x )。因此,S′ = (β, π) 的制造时间可以估计为 。在这种情况下,估计值是 C max (S′) 的下界。
此外,如果 x 不是关键操作(例如在 结构中可能发生的情况),则制造时间不能低于原始计划的制造时间,因此在这种情况下,估计值可以改进为 。
在 5.2 节中,我们报告了一些实验结果,展示了所提出估计的准确性。
4. Scatter search for the FJSP
4. 灵活作业车间调度问题的散点搜索
散列搜索 (SS) 是一种基于种群的进化元启发式算法,被认为是在搜索过程中在强化和多样化之间取得良好平衡的优秀方法。SS 最初由 Glover (1998) 提出,并已成功应用于许多问题,特别是调度问题 (González, Vela, Varela, González-Rodríguez, 2015, Nowicki, Smutnicki, 2006, Sels, Craeymeersch, Vanhoucke, 2011, Yamada, Nakano, 1996)。
Glover (1998) 中提出的 SS 五方法模板一直是迄今为止大多数 SS 实现的主要参考,包括我们的实现。该模板包括 (1) 多样化生成方法,(2) 改善方法,(3) 参考集更新方法,(4) 子集生成方法和 (5) 解决方案组合方法。
算法 1 从创建一组初始解 P 开始,这些解使用禁忌搜索 (TS) 进行改进。然后,通过从 P 中选择最佳解来获得参考集 RefSet。算法在给定次数的迭代后停止,没有改进。在每次迭代中,从 RefSet 中选择一对解(根据子集生成方法选择),使用路径重链 (PR) 来生成新的解,该解也由 TS 进行改进。然后,应用参考集更新方法。此外,如果 RefSet 中所有可能的解对都已经组合,而没有向集合中引入任何新解,则应用多样化阶段。以下部分将提供有关该算法的更多详细信息。

Algorithm 1. Scatter search.
算法 1. 弥散搜索。
4.1. Dissimilarity measure
4.1. 相异性度量
在存在灵活性的情况下,定义两个解之间的“距离”并非易事。虽然具有度量属性是理想的,但一个相异性度量在没有成为度量的情况下,即距离(Goshtasby, 2012),可能非常有效。
在本文中,我们针对柔性作业车间调度问题 (FJSP) 提出,两个解 S0 和 S1 之间的“差异” (记作 d(S2, S3)) 是一个有序整数对,其中一个表示排序子问题中的差异 (记作 d4(S5, S6)),另一个表示分配子问题上的距离 (记作 d7(S8, S9))。第一个是 Mattfeld (1995) 为经典作业车间调度问题 (JSP) 定义的析取图距离或汉明距离的扩展,它是指在 S10 和 S11 中,需要同一机器的两对工序以不同顺序处理的工序数。在柔性情况下,此定义不满足三角不等式,因此它不是距离,而是一个相似系数 (Webb, 2002)。关于分配距离 d12(S13, S14),它定义为在 S15 和 S16 中具有不同机器分配的工序数。
考虑到这两个度量 d0 和 d1,我们将采用词典顺序方法,并定义如下两个对 {2} 和 {3} 之间的优先关系:(3)
我们将使用这种优先关系来计算最小“差异”(即最大相似度)作为 min ≺ (d 1 , d 2 ) = d 1 如果 d 1 ≺d 2 并且 min ≺ (d 1 , d 2 ) = d 2 否则。关系 min ≺ 可以自然地扩展到任意数量的元素,并且也可以相应地定义最大 ≺ 关系。
在贾和胡 (2014) 中,作者将两个解之间的距离定义为在编码字符串上位于不同位置的操作数。因此,对于一个具有 10 台机器和 10 个作业(每个作业有 10 个操作)的问题实例,两个解之间的最大距离将为 100。因此,PR(路径重链)过程可能仅访问从一个解到另一个解的路径中最多 100 个候选解。然而,根据我们的定义,最大 d π 将为 4500 1 ,最大 d α 将为 100。通过这种方式,诸如 的策略将允许对搜索空间进行精细粒度的探索。
4.2. Initial reference set construction
4.2. 初始参考集构建
按照 Martí、Laguna 和 Glover (2006) 的建议,参考集必须包含高质量且多样化的解。为此,首先生成一个包含 PSize 个随机解的初始集 P,并使用 TS 对所有解进行改进。然后,构建参考集 RefSet(大小为 RSSize),每次从 P 中选择一个解,使得如果可能,每个解都满足条件 d π (S, S RS ) > MinD π 或 d α (S, S RS ) > MinD α ,其中 S RS 是 RefSet 中已有的所有解,MinD π 和 MinD α 是参数。首先,从就完工时间而言最好的解中选择一半的解,其余的解则选择距离 RefSet 中已包含的解最远的 2 解。如果无法用满足上述条件的解完成 RefSet,则随机选择剩余的解。
4.3. Subset generation method and diversification phase
4.3. 子集生成方法和多样化阶段
为了生成子集,会将参考集 (RefSet) 中每对解组合成一个新的解(如第 4.4 节所述),除非它们自上次一起被选中以来没有改变。然后对新的解应用 TS,并根据参考集更新方法(见第 4.6 节)更新 RefSet。如果在组合所有可能的解对后,RefSet 没有添加新的解,则应用多样化过程:从迄今为止的最佳解开始重建集合 P,并随机生成新的 PSize - 1 个解。然后通过 TS 改善这些排程,最后从 P 中获得新的 RefSet,如第 4.2 节所述。
4.4. Solution-combination method
4.4. 解组合方法
作为解组合方法,我们使用 PR。该元启发式算法已成功应用于经典的作业车间调度问题。例如,Nowicki 和 Smutnicki (2005) 通过引入基于 PR 的新的初始解生成器来改进他们著名的 TSAB 元启发式算法。此外,Nasiri 和 Kianfar (2012) 使用两种不同的邻域将 TS 和 PR 结合起来。
PR 结合两个解,分别称为初始解 (S ini ) 和引导解 (S end ),以获得新的解。从 S ini 开始,它重复应用移动,使得每次移动都产生一个比当前解更接近 S end 的解。在我们的算法中,S ini 始终是 RefSet 中取出的两个解中的最佳解。原则上,这些移动是 N απ 的移动(见定义 6)。
令 S 为一个解,S end 为 PR 算法的引导解。以下命题 4 和命题 5 详细说明了在使用不同邻域的情况下,轨迹中两个连续解之间的差异度量如何变化。
Proposition 4 命题 4
令 S π ∈ N π (S)。则 d α (S π , S end ) = d α (S, S end )
Proof 证明
由于邻域 N π 不改变任何机器分配,因此这很容易。 □
另一方面,N π 的单次移动可能会改变多个操作的加工顺序,因此 d π (S π , S end ) 可能比 d π (S, S end ) 低或高几个单位,甚至相等。
Proposition 5 命题 5
令 S α ∈ N α (S)。那么,以下条件中只有一个成立:
- •dα(Sα, Send) = dα(S, Send) − 1∧dπ(Sα, Send) ≥ dπ(S, Send)
d α (S α , S end ) = d α (S, S end ) − 1∧d π (S α , S end ) ≥ d π (S, S end ) - •dα(Sα, Send) = dα(S, Send)∧dπ(Sα, Send) = dπ(S, Send)
d α (S α , S end ) = d α (S, S end )∧d π (S α , S end ) = d π (S, S end ) - •dα(Sα, Send) = dα(S, Send) + 1∧dπ(Sα, Send) ≤ dπ(S, Send)
d α (S α , S end ) = d α (S, S end ) + 1∧d π (S α , S end ) ≤ d π (S, S end )
Proof 证明
由于 N α 只改变一个工序的机器分配,则 d α (S α , S end ) − d α (S, S end ) 为 1、0 或 −1,如果该工序在 S 和 S end 中分配的机器相同,或者在 S end 中的分配与 S 和 S α 中的分配不同,或者在 S α 和 S end 中的分配相同,分别对应。
如果 d α (S α , S end ) − d α (S, S end ) = −1,则 d π (S α , S end ) ≥ d π (S, S end ),因为在 S 和 S end 中按相同顺序和相同机器处理的任何一对工序仍然保留在 S α 中,并且由于新的机器分配,新的工序对可能以不同的顺序在 S α 中处理。如果上述表达式的值是 1 或 0,则可以进行类似的推理。 □
综上所述,为了在 PR 算法中选择下一步操作,我们以以下方式开始利用 N απ :考虑在 N α (S) 和 N π (S) 中距离引导解 S end 最近的最佳解。然后,考虑估计的完工时间和与 S end 的接近程度,选择这两个解 和 中的较佳者。为了摆脱局部最优,类似于 TS,会丢弃通过反转最近反转的弧或更改最近分配获得的邻居,除非它是迄今为止找到的引导解最近的邻居。
即使有这种机制,局部最优解可能很深,以至于 N απ 可能难以找到改进的移动。因此,我们考虑了不太严格的邻域结构 (见定义 7)。因此,一旦 N απ 未能找到比引导解更接近的解 maxFails 次,则邻域结构在路径重链过程 3 的剩余部分中更改为 。另一种选择是在路径重链算法中仅使用 。但是,最好先使用 N απ ,因为它是一种更精细的结构,可引导路径通过有希望的邻居,并且仅使用 来完成路径,当 N απ 在距离方面陷入局部最优解时。
当引导解被找到时,搜索结束。然后,正如 Nowicki 和 Smutnicki (2006) 所建议的那样,算法返回在创建轨迹的 1/4 到 3/4 之间具有最佳完工时间的解,除非在此范围之外找到一个改进当前最佳解的解。
从初始解到引导解构建路径的方法也与贾和胡 (2014) 的方法大相径庭,并且通常会构建更长的路径。这一点可以在该论文给出的示例中看到,该路径只有两个中间解,而我们的方法则会生成至少六个。
提出的 PR 算法在算法 2 中详细说明,其中 TL 表示禁忌表,¬Tabu(S′, TL) 表示从 S 到 S′ 的移动不在 TL 中。

Algorithm 2. Path relinking.
算法 2. 路径重链
4.5. Improvement method 4.5. 改进方法
作为改进方法,我们使用禁忌搜索 (TS)。这是一种先进的局部搜索技术,在问题求解中,特别是调度问题中,具有良好的经验性能记录(González 等人,2013;Nowicki 和 Smutnicki,2005)。
我们 TS 的总体方案与 Amico 和 Trubian (1993) 的方案类似。第一步评估初始解。然后,它迭代执行若干步骤。在每次迭代中,使用 (见定义 5) 构造当前解的邻域,并从中选择一个邻居作为下一迭代的解。选择规则选择估计完工时间最优的邻居,并丢弃可疑循环和禁忌邻居。禁忌搜索在没有改进的情况下执行 maxImproveIter 次迭代后结束,返回迄今为止找到的最佳解。
而不是将实际解存储在禁忌表中,而是存储那些已被反转的弧或已被更改以生成邻居的分配。因此,如果新邻居需要反转禁忌表中包含的至少一条弧或更改机器分配,则将其标记为禁忌,除非其估计的完工时间比迄今为止找到的最佳完工时间更好。
禁忌表的长度通常至关重要,因为它允许在强化和多样化之间取得平衡。所有禁忌搜索算法都尝试通过控制解保持禁忌状态的迭代次数来管理这种平衡。我们在这里使用了动态长度方案和基于见证弧的循环检测机制,这些机制也由 Amico 和 Trubian (1993) 使用,并通过添加有关作业机器分配变化的信息对其进行了扩展。
为避免散列搜索算法的总体计算时间过长,每个禁忌搜索的时间必须足够短。因此,我们在此提出的禁忌搜索过程中不再使用任何其他多样化技术。
4.6. Reference set update
4.6. 参考集更新
令 S B 和 S W 分别为 RefSet 中的最佳和最差解。PR 返回的每个解都由 TS 改善。然后,为了提高质量和多样性,如果 C max (S) < C max (S B ),或者如果 C max (S) < C max (S W ) 并且对于 RefSet 中的所有 S RS ,都有 d π (S, S RS ) > MinD π 或 d α (S, S RS ) > MinD α ,则结果解 S 替换 S W 。
4.7. Similarities and differences w.r.t. other proposals
4.7. 与其他建议的异同
正如我们所提到的,元启发式算法已被广泛应用于求解柔性作业车间调度问题。在这项工作中,我们借鉴了现有方法的一些想法,并包含了许多新的想法。例如,我们使用了类似于 Glover (1998) 和 Amico 和 Trubian (1993) 分别提出的 SS 和 TS 模板。另一方面,所提出的邻域结构与 Mastrolilli 和 Gambardella (2000)、González 等人 (2013)、Yuan 和 Xu (2013) 中为 FJSP 定义的其他结构截然不同。然而,如果我们只关注 JSP,我们会发现一些排序结构实际上是某些经典结构的扩展:N π 扩展了 Amico 和 Trubian (1993) 中提出的 NB 结构,而 扩展了 Van Laarhoven 等人 (1992) 中定义的 H′ 结构。与此同时,Nowicki 和 Smutnicki (1996) 中定义的 H 结构是 H′ 的限制,就像 限制 N π (删除已知先验不会改善制造时间的移动)。 对于排序结构,我们建立了可行性和非改进条件,以及估计邻居工期的程序,这些程序受到 Amico 和 Trubian (1993)、Mattfeld (1995)在经典 JSP 中的建议的启发。此外,所提出的分配结构 N α 和 是 Mastrolilli 和 Gambardella (2000)中提出的 k-插入结构的更简单、更省时的版本。我们算法的一个关键点是新的细粒度解差异度量。有了这个度量和邻域结构 N απ 和 ,两个解之间的轨迹比 Jia 和 Hu (2014)中定义的粗粒度度量获得的轨迹大得多,这允许 PR 在每次运行中探索更多解。
5. Experimental study 5. 实验研究
我们进行了一项实验研究,以评估我们的建议并比较该算法(称为 SSPR)与现有最先进算法。在这项研究中,我们考虑了文献中使用最广泛的四个基准集,即 DPdata(Dauzère-Pérès 和 Paulli,1997)、BCdata(Barnes 和 Chambers,1996)、BRdata(Brandimarte,1993)和 HUdata(Hurink、Jurisch 和 Thole,1994),总共包含 178 个具有不同规模和灵活性的实例(每个操作可能的机器数量的平均值)。
SSPR 使用 C++ 实现,目标机器是英特尔酷睿 2 双核处理器,主频为 2.66 吉赫兹,内存为 2 吉字节。我们针对每个实例运行 SSPR 10 次,并记录最佳和平均完工时间。为了比较不同的方法,我们指出每种方法是否能够找到每个实例的最佳已知解,并报告相对百分比偏差 (RPD),定义如下:where Algsol is the value of the objective function obtained by a given algorithm for a given instance, and LB is a lower bound on the optimal solution. We consider here the lower bounds reported in Mastrolilli and Gambardella (2000) for all 178 instances.
其中 Alg sol 是由给定算法针对给定实例获得的目标函数值,LB 是最优解的下界。我们在此考虑 Mastrolilli 和 Gambardella (2000) 中报告的 178 个实例的所有下界。
接下来的章节中,我们将报告和分析我们的实验研究结果。首先,我们将描述参数调整的方法。然后,我们将分析所提出的邻域结构,并将 SSPR 与单独运行的 TS 组件进行比较。最后,我们将对 SSPR 与当前最佳方法进行全面和公平的比较。
5.1. Parameter tuning 5.1. 参数调整
我们对不同参数值进行了初步研究,并使用相似的运行时间来测试每个配置。下面,我们总结了 SSPR 算法的参数及其每个参数的测试值。
RSSize 定义了 RefSet 的解的数量。这个数字通常低于 20,正如 Glover 在 Glover (1998) 中所指出的那样。这里我们尝试了 RSSize = 8 和 RSSize = 10,因为这些是文献中的典型值(参见 Nowicki, Smutnicki, 2006, Yamada, Nakano, 1996)。
PSize 定义了初始集合 P 中解的数量。在 Glover, Laguna, 和 Martí (2003) 中建议 PSize = max(100, 5*RSSize)。然而,我们提出的多样化阶段需要在执行过程中多次重建集合 P。由于这个过程计算成本很高,我们考虑了较小的 P 大小。特别是,我们测试了 20 和 100 的大小。
maxFails 是一个参数,定义了 PR 选择非改进的邻居 N απ 的次数,然后切换到 。我们考虑了 1、5 和 20 的值。
maxImproveIter 是 TS 每次运行中最大迭代次数,且以此作为停止条件。TS 嵌入在散布搜索核心,因此在 SSPR 的执行过程中会多次发出,因此我们不能选择像单独运行 TS 算法时那样高的值。我们考虑了 100、500、2000 和 10,000 的值。
MinD α 和 MinD π 是两个参数,控制 RefSet 中解之间的最小距离,因此它们应该保证集合的多样性。我们测试了 MinD π 的值 5、20 和 50,以及 MinD α 的值 1、3 和 5。
从这项初步研究中,我们选择了 RSSize = 8,PSize = 20,maxFails = 5,maxImproveIter = 2000,MinD π = 20 和 MinD α = 3,因为这是平均结果最好的组合。作为停止准则,我们选择在没有改进的情况下 SSPR 迭代 250 次。该值导致合理的收敛模式,如图 5 所示,该图详细说明了使用所选配置在 DPdata 基准的 02a 实例上进行一次运行时最佳和平均完工时间的演变。注意,多样化阶段四次出现,导致 RefSet 中解决方案的平均完工时间突然增加。

Fig. 5. Evolution of the best and average makespan of RefSet depending on the iteration number, for one run of the 02a instance of the DPdata benchmark.
图 5. DPdata 基准测试集 02a 实例单次运行中,RefSet 的最佳和平均完工时间随迭代次数的变化。
5.2. Analysis of the neighborhood structures
5.2. 邻域结构分析
为了分析邻域结构,我们考虑了 HUdata 基准中的所有实例。首先,我们评估了 TS 过程中 和 N α 创建的邻居的百分比。表 1 显示,该百分比强烈依赖于实例的灵活性;这是合理的,因为使用 N α 创建的邻居数量与关键路径上每项操作合适的机器数量成正比。
Table 1. Percentage of neighbors created by and Nα in the TS procedure.
表 1. TS 过程中 和 N α 创建的邻居的百分比。
Ins. (flex) 实例 (灵活性) | edata (1.15) | rdata (2) | vdata(5–7.5) |
---|---|---|---|
Percent Neigh by Nα 百分比邻域由 N α | 8 | 47 | 73 |
然后,我们分析了实例大小和形状对关键块长度和邻居数量的影响。表 2 中总结的结果清楚地表明,这些值取决于实例大小,但主要取决于商 n/m。这是合理的,因为对于机器数量少、操作数量多的实例,关键路径很可能穿过许多不相交的弧。我们还进行了一些实验,将我们对关键块的定义与 Mastrolilli 和 Gambardella (2000) 以及 González 等人 (2013) 中考虑的定义进行了比较,即不允许同一作业的多个操作出现在同一关键块中。结果(此处未报告)略好,因为生成的邻居数量较少,这使得我们的算法能够在略短的时间内获得更好的结果。
Table 2. Average length of the critical blocks and number of neighbors created by .
表 2. 创建的关键块的平均长度和邻居数量。
Size 大小 | 10 × 5 | 15 × 5 | 20 × 5 | 10 × 10 | 15 × 10 | 20 × 10 | 30 × 10 | 15 × 15 |
---|---|---|---|---|---|---|---|---|
#Op. in CB #工序在 CB 中 | 6.39 | 11.57 | 16.45 | 2.83 | 4.83 | 7.85 | 16.72 | 2.98 |
#Neigh per CB #每个 CB 的邻居 | 9.60 | 17.69 | 25.68 | 2.83 | 6.44 | 10.02 | 17.31 | 3.08 |
最后,为了评估排程提前期估计方法,我们记录了大约 3 亿个邻居的实际和估计提前期。表 3 总结了匹配和差异的百分比,后一种情况显示了相对误差。正如我们所观察到的,估计的准确性很高,尤其对于 N α 。在这些实验中,我们还观察到准确性与灵活性成反比。
Table 3. Accuracy of the estimates.
表 3. 估计的准确性
Empty Cell | Nα | |||
---|---|---|---|---|
Empty Cell | Empty Cell | Empty Cell | ||
Empty Cell | Percent of Est 百分比估计值 | Rel dif 相对差异 | Percent of Est 百分比估计值 | Rel dif 相对差异 |
83.3 | 96.9 | |||
3.0 | 1.4 | 3.1 | 3.1 | |
13.7 | 2.1 | − |
5.3. Comparing SSPR with tabu search running alone
5.3. 将 SSPR 与单独运行的禁忌搜索进行比较
众所周知,禁忌搜索是一种非常有效的元启发式算法,用于解决调度问题(例如,参见 Nowicki 和 Smutnicki,2005 或 González 等人,2013)。在这里,我们进行了一些实验,以评估带有路径重链的散射搜索壳是否能够提高单独运行的禁忌搜索的性能。为此,我们将 SSPR 的结果与禁忌搜索的结果进行了比较,并为两种算法提供了相同的时间。在实验中,我们选择将停止标准与 SSPR 保持相同(2000 次迭代未改进),并在 SSPR 所需的时间内尽可能多次地从随机解启动禁忌搜索。我们尝试过其他设置,但结果比 TS 差。
我们使用 DPdata 基准进行比较。为了获得类似的运行时间,我们不得不将禁忌搜索运行 300 到 600 次,具体取决于特定实例。在 18 个实例中的 16 个实例中,禁忌搜索达到的最佳完工时间比 SSPR 达到的差,其余 2 个实例的结果相同。表 4 总结了平均值。从这些结果来看,可以公平地认为 SSPR 的性能优于单独运行的禁忌搜索。
Table 4. Comparison of average performance of tabu search running alone versus SSPR.
表 4. 比较单独运行禁忌搜索与 SSPR 的平均性能。
Empty Cell | Tabu search 禁忌搜索 | SSPR | ||
---|---|---|---|---|
Empty Cell | Empty Cell | Empty Cell | ||
Empty Cell | Best 最佳 | Avg 平均 | Best 最佳 | Avg 平均 |
RPD | 2.26 | 2.52 | 1.57 | 1.79 |
5.4. Comparison with the state of the art
5.4. 与现有技术的比较
最后,我们进行了实验,将 SSPR 与文献中找到的最佳算法进行了比较,即:TS、hGA、HHS/LNS、CDDS、GA + TS、TSBM 2 h 和 Mastrolilli 和 Gambardella (2000)、Gao 等人(2008)、Yuan 和 Xu(2013)、Hmida 等人(2010)、González 等人(2013)、Bozejko 等人(2010)、Gutierrez 和 Garcia-Magario(2011)分别提出的 MGARH。
表 5、表 6 和表 7 分别显示了在 DPdata、BCdata 和 BRdata 基准测试中的实验结果。我们为每个实例指出了其灵活性以及 Mastrolilli 和 Gambardella (2000) 中报告的下限。然后,对于每种方法,我们报告最佳和平均(括号内)的完工时间。我们还报告了 SSPR 单次运行的平均运行时间(以秒为单位)。在每张表的底部,我们显示了每种算法的最佳值和平均 RPD 的平均值,以及一种方法达到最佳已知解决方案的实例数量,以及平均独立于计算机的 CPU 时间总和。CI-CPU 时间值已从 Dongarra (2013) 的归一化系数中获得。正如 Yuan 和 Xu (2013) 所指出的那样,“应该注意的是,CPU 时间的比较仅具有指示意义,因为我们无法访问影响计算时间的其他信息,例如操作系统、软件工程决策以及程序员的编码技能。”
Table 5. Summary of results: DPdata.
表 5. DPdata 结果总结。
Ins 实例 | flex. 灵活性 | LB | TS | hGA | CDDS | HHS/LNS | GA + TS | SSPR | T(s.) |
---|---|---|---|---|---|---|---|---|---|
01a 01 甲 | 1.13 | 2505 | 2518 (2528) | 2518 (2518) | 2518 (2525) | 2505 (2513) | 2505 (2511) | 2505 (2508) | 68 |
02a 02 甲 | 1.69 | 2228 | 2231 (2234) | 2231 (2231) | 2231 (2235) | 2230 (2231) | 2232 (2234) | 2229(*) (2230) | 100 |
03a | 2.56 | 2228 | 2229 (2230) | 2229 (2229) | 2229 (2232) | 2228 (2229) | 2229 (2230) | 2228(*) (2228) | 110 |
04a | 1.13 | 2503 | 2503 (2516) | 2515 (2518) | 2503 (2510) | 2506 (2506) | 2503 (2504) | 2503 (2504) | 57 |
05a | 1.69 | 2189 | 2216 (2220) | 2217 (2218) | 2216 (2218) | 2212 (2215) | 2219 (2221) | 2211(*) (2215) | 112 |
06a | 2.56 | 2162 | 2203 (2206) | 2196 (2198) | 2196 (2203) | 2187 (2192) | 2200 (2204) | 2183(*) (2192) | 181 |
07a | 1.24 | 2187 | 2283 (2298) | 2307 (2310) | 2283 (2296) | 2288 (2303) | 2266 (2286) | 2274 (2285) | 139 |
08a | 2.42 | 2061 | 2069 (2071) | 2073 (2076) | 2069 (2069) | 2067 (2074) | 2072 (2075) | 2064(*) (2066) | 181 |
09a | 4.03 | 2061 | 2066 (2067) | 2066 (2067) | 2066 (2067) | 2069 (2073) | 2066 (2067) | 2062(*) (2063) | 213 |
10a | 1.24 | 2178 | 2291 (2306) | 2315 (2315) | 2291 (2303) | 2297 (2302) | 2267 (2273) | 2269 (2287) | 120 |
11a | 2.42 | 2017 | 2063 (2066) | 2071 (2072) | 2063 (2072) | 2061 (2067) | 2068 (2071) | 2051(*) (2058) | 193 |
12a | 4.03 | 1969 | 2034 (2038) | 2030 (2031) | 2031 (2034) | 2027 (2036) | 2037 (2041) | 2018(*) (2020) | 280 |
13a | 1.34 | 2161 | 2260 (2266) | 2257 (2260) | 2257 (2260) | 2263 (2269) | 2271 (2276) | 2248(*) (2257) | 119 |
14a | 2.99 | 2161 | 2167 (2168) | 2167 (2168) | 2167 (2179) | 2164 (2168) | 2169 (2171) | 2163(*) (2164) | 269 |
15a | 5.02 | 2161 | 2167 (2167) | 2165 (2165) | 2165 (2170) | 2163 (2166) | 2166 (2166) | 2162(*) (2163) | 376 |
16a | 1.34 | 2148 | 2255 (2259) | 2256 (2258) | 2256 (2258) | 2259 (2266) | 2266 (2271) | 2244(*) (2253) | 131 |
17a | 2.99 | 2088 | 2141 (2144) | 2140 (2142) | 2140 (2146) | 2137 (2141) | 2147 (2150) | 2130(*) (2134) | 299 |
18a | 5.02 | 2057 | 2137 (2140) | 2127 (2131) | 2127 (2132) | 2124 (2128) | 2138 (2141) | 2119(*) (2123) | 409 |
RPD | 2.01 (2.24) | 2.12 (2.19) | 1.94 (2.19) | 1.89 (2.13) | 1.99 (2.17) | 1.57 (1.79) | |||
#best | 1 | 0 | 1 | 2 | 4 | 16 | |||
CI-CPU | 2467 | 6206 | 2890 | 6279 | 3397 | 1934 |
粗体值是最佳已知解,(*) 表示改进之前的最佳已知解。
Table 6. Summary of results: BCdata.
表 6. BC 数据结果总结。
Ins 实例 | flex. 灵活性 | LB | TS | hGA | CDDS | TSBM2h TSBM 2 小时 | GA + TS | SSPR | T(s.) |
---|---|---|---|---|---|---|---|---|---|
mt10c1 | 1.10 | 655 | 928 (928) | 927 (927) | 928 (929) | 927 (–) 927(–) | 927 (927) | 927 (928) | 26 |
mt10cc | 1.20 | 655 | 910 (910) | 910 (910) | 910 (911) | 908 (–) 908(-) | 908 (909) | 908 (908) | 20 |
mt10x | 1.10 | 655 | 918 (918) | 918 (918) | 918 (918) | 922 (–) 922(-) | 918 (922) | 918 (918) | 23 |
mt10xx | 1.20 | 655 | 918 (918) | 918 (918) | 918 (918) | 918 (–) 918(—) | 918 (918) | 918 (918) | 19 |
mt10xxx | 1.30 | 655 | 918 (918) | 918 (918) | 918 (918) | 918 (–) 918(—) | 918 (918) | 918 (918) | 20 |
mt10xy | 1.20 | 655 | 906 (906) | 905 (905) | 906 (906) | 905 (–) 905(–) | 905 (905) | 905 (906) | 21 |
mt10xyz | 1.30 | 655 | 847 (850) | 849 (849) | 849 (851) | 849 (–) 849(–) | 849 (850) | 847 (847) | 20 |
setb4c9 | 1.10 | 857 | 919 (919) | 914 (914) | 919 (919) | 914 (–) 914(–) | 914 (914) | 914 (916) | 28 |
setb4cc | 1.20 | 857 | 909 (912) | 914 (914) | 909 (911) | 907 (–) 907(–) | 907 (907) | 907 (907) | 21 |
setb4x | 1.10 | 846 | 925 (925) | 925 (931) | 925 (925) | 925 (–) 925(–) | 925 (925) | 925 (925) | 19 |
setb4xx | 1.20 | 846 | 925 (926) | 925 (925) | 925 (925) | 925 (–) 925(–) | 925 (925) | 925 (925) | 21 |
setb4xxx | 1.30 | 846 | 925 (925) | 925 (925) | 925 (925) | 925 (–) 925(-) | 925 (925) | 925 (925) | 22 |
setb4xy | 1.20 | 845 | 916 (916) | 916 (916) | 916 (916) | 910 (–) 910(-) | 910 (910) | 910 (912) | 32 |
setb4xyz | 1.30 | 838 | 905 (908) | 905 (905) | 905 (907) | 903 (–) 903(-) | 905 (905) | 905 (905) | 21 |
seti5c12 | 1.07 | 1027 | 1174 (1174) | 1175 (1175) | 1174 (1175) | 1174 (–) 1174(-) | 1171 (1173) | 1170(*) (1173) | 25 |
seti5cc | 1.13 | 955 | 1136 (1136) | 1138 (1138) | 1136 (1137) | 1136 (–) 1136(–) | 1136 (1137) | 1135(*) (1136) | 29 |
seti5x | 1.07 | 955 | 1201 (1204) | 1204 (1204) | 1201 (1202) | 1198 (–) 1198(–) | 1199 (1200) | 1198 (1199) | 41 |
seti5xx | 1.13 | 955 | 1199 (1201) | 1202 (1203) | 1199 (1199) | 1197 (–) 1197(–) | 1197 (1198) | 1197 (1199) | 37 |
seti5xxx | 1.20 | 955 | 1197 (1198) | 1204 (1204) | 1197 (1198) | 1197 (–) 1197(–) | 1197 (1197) | 1194(*) (1198) | 38 |
seti5xy | 1.13 | 955 | 1136 (1136) | 1136 (1137) | 1136 (1138) | 1136 (–) 1136(–) | 1136 (1137) | 1135(*) (1136) | 29 |
seti5xyz | 1.20 | 955 | 1125 (1127) | 1126 (1126) | 1125 (1125) | 1128 (–) 1128(–) | 1127 (1128) | 1125 (1126) | 35 |
RPD | 22.53 (22.63) | 22.61 (22.66) | 22.54 (22.60) | 22.45 (–) 22.45(–) | 22.42 (22.49) | 22.36 (22.44) | |||
#best | 8 | 9 | 7 | 14 | 13 | 20 | |||
CI-CPU | 356 | 821 | 253 | 1068 | 437 | 248 |
粗体值是最佳已知解,(*) 表示改进之前的最佳已知解。– 表示相应数据不可用。
Table 7. Summary of results: BRdata.
表 7. BRdata 结果总结。
Ins 实例 | flex. 灵活性 | LB | TS | hGA | CDDS | HHS/LNS | MGARH | GA + TS | SSPR | T(s.) |
---|---|---|---|---|---|---|---|---|---|---|
Mk01 | 2.09 | 36 | 40 (40) | 40 (40) | 40 (40) | 40 (–) 40(–) | 40 (–) 40(–) | 40 (40) | 40 (40) | 11 |
Mk02 | 4.10 | 24 | 26 (26) | 26 (26) | 26 (26) | 26 (–) 26(—) | 26 (–) 26(—) | 26 (26) | 26 (26) | 15 |
Mk03 | 3.01 | 204 | 204 (204) | 204 (204) | 204 (204) | 204 (–) 204(—) | 204 (–) 204(—) | 204 (204) | 204 (204) | 24 |
Mk04 | 1.91 | 48 | 60 (60) | 60 (60) | 60 (60) | 60 (–) 60(—) | 60 (–) 60(–) | 60 (60) | 60 (60) | 19 |
Mk05 | 1.71 | 168 | 173 (173) | 172 (172) | 173 (174) | 172 (–) 172(–) | 172 (–) 172(–) | 172 (172) | 172 (172) | 57 |
Mk06 | 3.27 | 33 | 58 (58) | 58 (58) | 58 (59) | 58 (–) 58(—) | 57 (–) 57(—) | 58 (58) | 57 (58) | 40 |
Mk07 | 2.83 | 133 | 144 (147) | 139 (139) | 139 (139) | 139 (–) 139(–) | 139 (–) 139(–) | 139 (139) | 139 (141) | 84 |
Mk08 | 1.43 | 523 | 523 (523) | 523 (523) | 523 (523) | 523 (–) 523(–) | 523 (–) 523(–) | 523 (523) | 523 (523) | 83 |
Mk09 | 2.53 | 299 | 307 (307) | 307 (307) | 307 (307) | 307 (–) 307(–) | 308 (–) 308(–) | 307 (307) | 307 (307) | 52 |
Mk10 | 2.98 | 165 | 198 (199) | 197 (197) | 197 (198) | 198 (–) 198(–) | 196 (–) 196(–) | 199 (200) | 196 (197) | 94 |
RPD | 15.41 (15.83) | 14.92 (14.92) | 15.41 (15.55) | 14.98 (–) 14.98(–) | 14.59 (–) 14.59(–) | 15.04 (15.13) | 14.55 (15.03) | |||
#best | 6 | 8 | 7 | 8 | 9 | 8 | 10 | |||
CI-CPU | 74 | 91 | 96 | 250 | 383 |
粗体值是最佳已知解,– 表示相应数据不可用。
在 DPdata 基准测试 (表 5) 中,SSPR 在所有考虑的指标中表现最佳,在 18 个实例中的 13 个实例中改进了先前的最佳已知解。 请注意,SSPR 的平均 RPD 优于其他方法的最佳 RPD 的平均值。
BCdata 集的结果显示在表 6 中。 在这种情况下,我们包含了 Bozejko 等人 (2010) 中报告的 TSBM 2 h 的结果,并省略了 HHS/LNS 的结果,因为 Yuan 和 Xu (2013) 只为该数据集提供了最佳解决方案的平均 RPD (22.43)。 总体而言,SSPR 在所有指标中都是六种算法中最好的,并且在 21 个实例中的 4 个实例中改进了先前的最佳已知解。
表 7 显示了 BRdata 上的结果。这是唯一包含 MGARH 结果的表格,因为这是 Gutierrez 和 Garcia-Magario (2011) 中唯一考虑的集合。在这种情况下,SSPR 在所有实例中都获得了最佳已知解,考虑到平均完工时间,它是第二好的,考虑到最佳完工时间,它是最好的,如 RPD 值所示。
从表 5、表 6、表 7 中报告的 CI-CPU 时间可以看出,SSPR 在 DPdata 和 BCdata 上表现最佳。然而,由于选择的参数,它在 BRdata 上似乎是最差的,因为在大多数情况下,SSPR 的运行时间过长。这很明显,因为 SSPR 在大多数实例的第一次迭代中就达到了最佳解决方案,且时间可以忽略不计。在 Hmida 等人 (2010) 中,作者没有提供 HHS/LNS 在这些实例上的运行时间,因为他们出于类似的原因认为这些时间不相关。
对于 HUdata 集,我们仅报告 RPD 的摘要结果(此处考虑的所有基准的 SSPR 详细结果公开发布在网络上 4 )。表 8 报告了 TS、hGA、CDDS、HHS/LNS 和 SSPR 达到的结果。我们给出了最佳完工时间和平均完工时间在每个 43 个实例的三个子集(edata、rdata 和 vdata)中的平均 RPD 值。值得注意的是,SSPR 获得的最佳和平均解决方案的 RPD 值优于所有其他算法。
Table 8. Summary of results (in RPD): HUdata.
表 8. HUdata 结果摘要(以 RPD 为单位)。
Set 集 | flex. 灵活性 | TS | hGA | CDDS | HHS/LNS | SSPR |
---|---|---|---|---|---|---|
edata | 1.15 | 2.17 (2.18) | 2.13 (2.40) | 2.32 (2.78) | 2.11 (–) 2.11(–) | 2.03 (2.10) |
rdata | 2 | 1.24 (1.36) | 1.19 (1.21) | 1.34 (1.54) | 1.18 (–) 1.18(–) | 1.03 (1.12) |
vdata | 2.5 to 7.5 2.5 到 7.5 | 0.10 (0.13) | 0.08 (0.09) | 0.12 (0.16) | 0.11 (–) 0.11(–) | 0.04 (0.05) |
– 表示相应数据不可用。
总体而言,对于 HUdata 中所有 129 个实例,SSPR 达到了与 Mastrolilli 和 Gambardella (2000) 中 TS 给出的解一样好或更好。由于这些解的制造时间等于 82 个实例的下界,并且小于 Mastrolilli 和 Gambardella (2000) 中报告的上界,对于 41 个实例。
来自其他方法的结果由于各种原因未包含在表 8 中。在 González 等人 (2013) 和 Gutierrez 和 Garcia-Magario (2011) 中,分别未给出 GA + TS 和 MGARH 的结果。在 Bozejko 等人 (2010) 中,作者仅报告了 rdata 集中 la01 到 la15 实例的结果,并且在所有情况下,这些结果都等于或比 TS 获得的结果差。
总结一下,我们考虑了 FJSP 的 178 个实例,其中 175 个实例达到了最佳已知解决方案。此外,我们还为 DPdata 的 13 个实例、BCdata 的 4 个实例和 HUdata 的 41 个实例找到了新的上限。 5
为了进一步评估所提出方法的质量,我们进行了统计检验,以分析 SSPR 与其他算法之间的差异。由于我们有多个问题的分析,我们使用了非参数统计检验。首先,我们运行了 Shapiro–Wilk 检验以确认数据的非正态性。然后,我们使用成对的 Wilcoxon 符号秩检验来比较 SSPR 与其他每种方法之间 RPD 值的中位数,前提是单个实例的结果可用,也就是说,我们考虑了 BRdata ∪ BCdata ∪ DPdata 集以及 TS、hGA、CDDS 和 GA + TS 方法。在这些检验中,使用的置信度水平为 95%,备择假设为“SSPR 与被测试方法的误差之差小于 0”。通过这些检验获得的 p 值 (TS: 4.027e − 08, hGA: 2.133e − 05, CDDS: 1.404e − 06, GA + TS: 7.364e − 04) 表明,在这些基准测试中,SSPR 与其他测试方法之间存在统计学上的显著差异。总之,我们可以得出结论,SSPR 比一些现有最先进的方法更好。
6. Conclusions 6. 结论
我们设计了一种新的柔性作业车间调度问题(FJSP)求解算法,目标是最小化制造时间。该算法,名为 SSPR,结合了散布搜索、路径重连和禁忌搜索。通过对问题和排程的深入分析,我们获得了有益的见解,从而定义了一些新的邻域结构和方法来准确估计邻居的制造时间。此外,我们还定义了一种新颖的细粒度排程相似度度量。所有这些元素都被整合到 SSPR 算法的不同组件中,并在最常用的基准测试集上评估并与现有最先进方法进行了比较,在考虑时间和排程的制造时间时,显示出明显优于现有方法的改进。特别是,SSPR 能够改进 178 个 FJSP 实例中 58 个的最佳已知解。
我们认为 SSPR 表现良好的主要原因是,散射搜索和路径重链方法结合了多样化,禁忌搜索提供了强化,并且邻域专门针对柔性进行了调整。此外,所提出的不相容性度量是 SSPR 的另一个强项,因为它允许 PR 在搜索空间中搜索由各种且可能较好的候选解组成的路径。
Acknowledgments 致谢
所有作者都由西班牙政府(项目 MEC-FEDER TIN2010-20976-C02-02 和 TIN2013-46511-C2-2-P)和阿斯图里亚斯亲王领地(项目 FICYT-COF13-035)资助。
References
- Amico, Trubian, 1993Applying tabu search to the job-shop scheduling problemAnnals of Operational Research, 41 (1993), pp. 231-252
- Barnes, Chambers, 1996Flexible job shop scheduling by tabu searchTechnical Report Series: ORP96-09. Graduate program in operations research and industrial engineering, The University of Texas at Austin (1996)
- Bozejko, Uchronski, Wodecki, 2010Parallel hybrid metaheuristics for the flexible job shop problemComputers & Industrial Engineering, 59 (2) (2010), pp. 323-333
- Brandimarte, 1993Routing and scheduling in a flexible job shop by tabu searchAnnals of Operations Research, 41 (1993), pp. 157-183
- Brucker, Schlie, 1990Job-shop scheduling with multi-purpose machinesComputing, 45 (4) (1990), pp. 369-375
- Dauzère-Pérès, Paulli, 1997An integrated approach for modeling and solving the general multiprocessor job-shop scheduling problem using tabu searchAnnals of Operations Research, 70 (3) (1997), pp. 281-306
- Dongarra, 2013Performance of various computers using standard linear equations software(Tech. rep.), Computer Science Department, University of Tennessee, Knoxville, Tennessee (2013)
- Gao, Sun, Gen, 2008A hybrid genetic and variable neighborhood descent algorithm for flexible job shop scheduling problemsComputers & Operations Research, 35 (2008), pp. 2892-2907
- Garey, Johnson, Sethi, 1976The complexity of flowshop and jobshop schedulingMathematics of Operations Research, 1 (2) (1976), pp. 117-129
- Glover, 1998A template for scatter search and path relinkingJ. Hao, E. Lutton, E. Ronald, M. Schoenauer, D. Snyers (Eds.), Artificial evolution, LNCS 1363, Springer (1998), pp. 13-54
- Glover, Laguna, Martí, 2003Advances in evolutionary computation: Theory and applications, Springer (2003), pp. 519-537
- González, Vela, González-Rodríguez, Varela, 2013Lateness minimization with tabu search for job shop scheduling problem with sequence dependent setup timesJournal of Intelligent Manufacturing, 24 (4) (2013), pp. 741-754
- González, Vela, Varela, 2013An efficient memetic algorithm for the flexible job shop with setup timesProceedings of ICAPS-2013 (2013), pp. 91-99
- González, Vela, Varela, González-Rodríguez, 2015An advanced scatter search algorithm for solving job shops with sequence dependent and non-anticipatory setupsAI Communications, 28 (2015), pp. 179-193
- Goshtasby, 2012Advances in computer vision and pattern recognition, Springer-Verlag (2012)
- Gutierrez, Garcia-Magario, 2011Modular design of a hybrid genetic algorithm for a flexible job-shop scheduling problemKnowledge-Based Systems, 24 (2011), pp. 102-112
- Hmida, Haouari, Huguet, Lopez, 2010Discrepancy search for the flexible job shop scheduling problemComputers & Operations Research, 37 (2010), pp. 2192-2201
- Ho, Tay, Lai, 2007An effective architecture for learning and evolving flexible job-shop schedulesEuropean Journal of Operational Research, 179 (2007), pp. 316-333
- Hurink, Jurisch, Thole, 1994Tabu search for the job shop scheduling problem with multi-purpose machineOperations Research Spektrum, 15 (1994), pp. 205-215
- Jia, Hu, 2014Path-relinking tabu search for the multi-objective flexible job shop scheduling problemComputers & Operations Research, 47 (2014), pp. 11-26
- Martí, Laguna, Glover, 2006Principles of scatter searchEuropean Journal of Operational Research, 169 (2006), pp. 359-372
- Mastrolilli, Gambardella, 2000Effective neighborhood functions for the flexible job shop problemJournal of Scheduling, 3 (1) (2000), pp. 3-20
- Mati, Dauzere-Peres, Lahlou, 2011A general approach for optimizing regular criteria in the job-shop scheduling problemEuropean Journal of Operational Research, 212 (2011), pp. 33-42
- Mattfeld, 1995Evolutionary search and the job shop investigations on genetic algorithms for production scheduling, Springer-Verlag (1995)
- Meeran, Morshed, 2014Evaluation of a hybrid genetic tabu search framework on job shop scheduling benchmark problemsInternational Journal of Production Research, 52 (9) (2014)5780-5798
- Nasiri, Kianfar, 2012A guided tabu search/path relinking algorithm for the job shop problemInternational Journal on Advanced Manufacturing Technologies, 58 (2012), pp. 1105-1113
- Nowicki, Smutnicki, 1996A fast taboo search algorithm for the job shop scheduling problemManagement Science, 42 (1996), pp. 797-813
- Nowicki, Smutnicki, 2005An advanced tabu search algorithm for the job shop problemJournal of Scheduling, 8 (2) (2005), pp. 145-159
- Nowicki, Smutnicki, 2006Some aspects of scatter search in the flow-shop problemEuropean Journal of Operational Research, 169 (2006), pp. 654-666
- Sels, Craeymeersch, Vanhoucke, 2011A hybrid single and dual population search procedure for the job shop scheduling problemEuropean Journal of Operational Research, 215 (2011), pp. 512-523
- Van Laarhoven, Aarts, Lenstra, 1992Job shop scheduling by simulated annealingOperations Research, 40 (1992), pp. 113-125
- Webb, 2002Statistical pattern recognition (2nd), John Wiley & Sons (2002)
- Yamada, Nakano, 1996Scheduling by genetic local search with multi-step crossoverProceedings of fourth international conference on parallel problem solving from nature (PPSN IV) (1996), pp. 960-969
- Yuan, Xu, 2013An integrated search heuristic for large-scale flexible jobshop scheduling problemsComputers & Operations Research, 40 (2013), pp. 2864-2877
Cited by (77)
A multi-action deep reinforcement learning framework for flexible Job-shop scheduling problem
灵活车间调度问题的多动作深度强化学习框架2022, Expert Systems with Applications
2022 年,专家系统与应用Greedy randomized adaptive search for dynamic flexible job-shop scheduling
用于动态柔性车间调度问题的贪婪随机自适应搜索2020, Journal of Manufacturing Systems
2020 年,制造系统杂志Citation Excerpt : 引用摘录:The results indicate that the proposed GRASP algorithm can obtain the best results for 7 out of 10 instances and shows a better performance than PVNS, CDDS and PSO. Table 9 displays the results of the GRASP with hGA of [17], eGA of [14], CDDS of [63], SSPR of [64] and QPSO of [25] for Dauzere-Peres and Paulli’s data set. The proposed GRASP algorithm is able to provide the best results for 4 instances out of 18 instances.
结果表明,所提出的 GRASP 算法能够在 10 个实例中的 7 个实例中获得最佳结果,并且其性能优于 PVNS、CDDS 和 PSO。表 9 显示了 GRASP 算法与 [17] 的 hGA、[14] 的 eGA、[63] 的 CDDS、[64] 的 SSPR 和 [25] 的 QPSO 算法在 Dauzere-Peres 和 Paulli 数据集上的结果。所提出的 GRASP 算法能够在 18 个实例中提供 4 个实例的最佳结果。Solving the flexible job shop scheduling problem using an improved Jaya algorithm
使用改进的 Jaya 算法求解柔性车间调度问题2019, Computers and Industrial Engineering
2019 年,计算机与工业工程Backtracking search based hyper-heuristic for the flexible job-shop scheduling problem with fuzzy processing time
基于回溯搜索的超启发式算法,用于具有模糊加工时间的柔性作业车间调度问题2019, Engineering Applications of Artificial Intelligence
2019 年,人工智能工程应用Citation Excerpt : 引用摘录:Especially, with the development of optimization methodologies and intelligent techniques, meta-heuristics have been widely applied to solve the FJSP. Typically, genetic algorithms (GAs) in Chen et al. (1999), Gholami and Zandieh (2009), Gutierrez and Garcia-Magarino (2011) and Pezzella et al. (2008), a differential evolution in Yuan and Xu (2013), an ant colony optimization in Rossi (2014), a scatter search in González et al. (2015) and a particle swarm optimization in Singh and Mahapatra (2016). The above studies make a common assumption that the processing time for each operation on each machine is generally deterministic.
特别是,随着优化方法和智能技术的进步,元启发式算法已广泛应用于解决柔性作业车间调度问题。例如,陈等 (1999)、Gholami 和 Zandieh (2009)、Gutierrez 和 Garcia-Magarino (2011) 和 Pezzella 等 (2008) 中的遗传算法 (GA),Yuan 和 Xu (2013) 中的差分进化,Rossi (2014) 中的蚁群优化,González 等 (2015) 中的散布搜索以及 Singh 和 Mahapatra (2016) 中的粒子群优化。以上研究都假设每台机器上每个工序的加工时间通常是确定性的。Lexicographic Multiobjective Scatter Search for the Optimization of Sequence-Dependent Selective Disassembly Subject to Multiresource Constraints
基于词典多目标散点搜索算法优化受多资源约束的顺序依赖选择性拆卸问题2020, IEEE Transactions on Cybernetics
2020 年,IEEE 控制论会刊Scheduling Cluster Tools in Semiconductor Manufacturing: Recent Advances and Challenges
半导体制造中集群工具的调度:最新进展和挑战2018, IEEE Transactions on Automation Science and Engineering
2018 年,IEEE 自动化科学与工程学报
- 1
- In the worst case all 100 tasks are performed on the same machine, so considering that all pairs of tasks belonging to different jobs may be processed in different order in the two schedules, the maximum dissimilarity is calculated as (100 × 99)/2 − 10 × (10 × 9)/2 = 4500.
在最坏情况下,所有 100 个任务都在同一台机器上执行,因此考虑到属于不同作业的所有任务对可能以不同的顺序在两个计划中处理,最大差异计算为 (100 × 99)/2 − 10 × (10 × 9)/2 = 4500。
- 2
- The distance of a solution S to a set of solutions is given by the minimum distance from S to a solution of the set.
解 S 到一组解的距离由 S 到该组解的最小距离给出。
- 3
- Notice that contains at least one solution closer to Send than S. This guarantees that Algorithm 2 finishes in a finite number of iterations.
请注意, 包含至少一个比 S end 更接近 S 的解。这保证了算法 2 在有限的迭代次数内完成。
- 4
- Repository section in http://www.di.uniovi.es/iscop.
http://www.di.uniovi.es/iscop 的存储库部分。
- 5
- Remember that the upper bounds we considered for HUdata are those from TS reported in Mastrolilli and Gambardella (2000) as, to our knowledge, detailed results from other methods on this benchmark set have not yet been published. So, we do not know whether or not a better upper bound was reached by other method for some of these instances.
请记住,我们考虑的 HUdata 的上限是 Mastrolilli 和 Gambardella (2000) 中报告的 TS 的上限,因为据我们所知,该基准集上其他方法的详细结果尚未发布。因此,我们不知道对于某些实例,其他方法是否达到了更好的上限。
版权所有 © 2015 Elsevier B.V. 保留所有权利。