A matheuristic for AGV scheduling with battery constraints

摘要

本文考虑了具有电池约束的自动导引车 (AGV) 调度问题。每个运输请求都涉及一个软时间窗口,用于服务这些请求的 AGV 车队是异构的,具有不同的能力和旅行成本。与现有文献相比,每个运输请求可能需要不同的 AGV 物料搬运能力(例如提升负载、牵引负载或安装有机械臂的搬运负载),并且 AGV 电池可以在考虑关键电池的情况下进行部分充电临界点。问题是将运输和充电请求分配给 AGV,对请求进行排序,并确定它们的启动时间和 AGV 的充电持续时间,以最小化运输请求的迟到成本和 AGV 的旅行成本的加权和。制定了混合整数线性规划模型。

我们还提出了一种新的数学方法,它利用自适应大邻域搜索算法和线性程序来解决行业规模的实例。我们通过使用真实数据的行业案例研究来说明我们方法的有效性。

1 引言

智能工业的一个长期目标是拥有一个熄灯工厂,这需要对车间的操作进行控制,而无需人工干预自动导引车 (AGV) 的使用。AGV 是无人驾驶车辆,可在各个区域运输货物和材料,例如运输和接收区域、存储和工作站(Confessore、Fabiano 和 Liotta,2013;Vivaldini、Rocha、Martarelli、Becker 和 Moreira,2016)。

AGV 的应用因其优势而得到了极大的发展,例如流程的灵活性、空间利用、产品安全以及计算机集成和控制。最近,AGV 技术随着灵活性的新进步而增强,其中每辆车都将具有特定的能力(例如,一辆可以举起轻载或重载,而另一辆可以牵引负载)来执行异构任务(De Ryck、Versteyhe 和Debrouwere,2020 年;Riazi、Diding、Falkman、Bengtsson 和 Lennartson,2019 年)。这种类型的任务在高科技制造业中很普遍,它需要使用专门的设备来处理材料,因此需要一支具有不同能力的 AGV 车队。

需要不同物料处理任务的工厂的一个例子是 Brainport 工业园区 (BIC),它是在荷兰埃因霍温建造的一个新的高科技园区,它是供应商、专业公司和创新企业之间影响深远的合作伙伴关系的大本营。教育和知识机构。该园区是高科技供应商(也称为租户)的联合倡议,旨在在多个方面共存和合作(Brainport Industries Campus,2020)。由于多个租户共同使用一组 AGV,从业者正在寻求更好地了解如何管理具有异构能力的大型 AGV 车队,以满足更多样化的需求。因此,越来越需要规划算法来管理这些车队。行业反馈表明,大多数公司依赖于 AGV 制造商提供的预打包车队管理软件。然而,这样的软件只适用于同质的 AGV 车队,并且不使用诸如到期日期和时间窗口之类的前瞻信息。此外,在 BIC 中考虑长距离行驶时,AGV 的性能可能会受到电池限制的影响。因此,对此类 AGV 系统进行有效管理和控制成为降低物料搬运成本、半成品库存和整体运营成本的关键因素。

在本文中,我们解决了具有电池约束和异构能力的 AGV 调度问题。我们的问题与 Keskin & Çatay (2016) 和 Zhao & Lu (2019) 提出的带时间窗的电动汽车路径问题 (EVRPTW) 有一些相似之处。EVRPTW 考虑了由于电池容量而具有有限行驶里程的电动汽车 (EV) 车队,这些电动汽车可能需要访问充电站,同时为沿途的客户提供服务。然而,我们的问题通过以下特征与 EVRPTW 文献区分开来,以符合工业需求。首先,本研究中考虑的 AGV 车队不仅在行驶速度和成本、充电率和放电率方面是异构的,而且更重要的是,在服务来自不同租户的不同类型请求的能力方面。其次,考虑到临界电池阈值,允许对 AGV 进行部分充电。第三,我们考虑了 AGV 的旅行成本和运输请求的迟到成本,其中不同类型的 AGV 和请求分别具有不同的单位旅行成本和罚款费用。受我们在 BIC 行业合作的启发,这些功能的结合构成了该问题的主要新颖性。我们的目标是决定为哪些 AGV 分配运输请求、处理请求的顺序、AGV 应该开始服务请求的时间以及 AGV 在充电站的充电持续时间,以便总的加权平均值旅行和总的迟到成本被最小化。

本文的主要贡献如下。

(i) 我们将问题表述为混合整数线性规划 (MILP) 模型。

(ii) 在相同的计算时间限制下,我们提出了一种新的数学方法,它超越了 MILP 和目前在实践中使用的调度策略(详见附录 D)。在我们结合了自适应大邻域搜索 (ALNS) (Ropke & Pisinger, 2006) 和线性规划 (LP) 的数学中,我们通过引入两对破坏和修复算子集来执行探索和利用,提出了一种新的基于 ALNS 的算法在搜索的不同阶段。在这里,我们介绍了针对问题的启发式方法,专注于充电任务的移除和插入,其中允许对 AGV 进行部分充电的可能性。

我们选择 ALNS 框架来解决我们的问题,因为它提供了与其他方法混合的灵活性,可以更有效地实现优化问题。此外,最近已经证明,基于 ALNS 的数学在电动汽车路线问题上产生了有希望的结果(Keskin, Laporte, & Çatay, 2019; Keskin & Çatay, 2018; Koc, Jabali, & Laporte, 2018),因为它能够在精确方法的有效性和元启发式方法的效率之间找到最佳权衡(Guimares、Klabjan 和 Almada-Lobo,2013 年)。

(iii) 我们通过对真实案例研究进行敏感性分析来提供管理见解,这使我们能够确定实践中的潜在改进空间。在这种分析中,我们改变调度时界,时间窗,请求数,AGV机队规模,涉及到拖期和AGV旅游,电池阈值,并计算时间限制成本的密封性。我们的计算结果表明,即使对于行业规模的大型实例,所提出的数学方法也允许找到高质量的解决方案,并且在实践中的调度策略平均提高了 33%。

(iv) 我们为本文实验所用的真实案例研究提供数据。案例研究中的问题实例是从 BIC 中构建的 fieldlab 生成的。此外,该研究是与我们的工业合作伙伴 IJssel Technology 密切合作进行的,该公司位于荷兰,是 BIC 的主要车队所有者。当有一个异构 AGV 车队的中央运营商服务于不同类型的运输请求时,这项研究的结果可以广泛应用于设置。

本文的其余部分安排如下。相关文献在第 2 节中讨论。第 3 节正式描述了该问题,第 4 节制定了数学模型。第 5 节提出了一种数学方法来解决行业规模的实例。接下来,我们描述行业案例研究,进行参数调整,评估运营商的影响,并在第 6 节中展示计算结果。最后,第 7 节讨论了结论和未来的研究方向。

2 文献综述

AGV 控制和管理系统的设计需要最佳策略来解决与调度、路由和调度等常见功能相关的问题(Qiu, Hsu, Huang, & Wang, 2002)。Langevin, Lauzon, & Riopel (1996) 将调度定义为选择和分配任务给车辆的过程,路由选择每辆车辆完成其运输任务所经过的特定路径,调度定义为到达和离开的确定每个车站的车辆次数。与这些功能相关的决策可以同时或顺序做出。Le-Anh & De Koster (2006) 和 De Ryck 等人的评论。(2020) 提出了 AGV 控制指南,包括经常被忽视的领域,例如闲置车辆定位和电池管理。

文献中的大多数调度规则都是单属性的,它们仅基于一个参数调度车辆(Le-Anh, van der Meer et al., 2004; Li & Kuhl, 2017)。常用的调度规则是先到先服务(FCFS)和最短行程距离优先(STTD)。虽然单属性调度规则在实践中很常见,但综合不同属性以选择车辆服务的任务的多属性调度规则通常被证明更好(Le-Anh & De Koster, 2005)。Ho, Liu, & Yih (2012) 提出的方法包括同时解决皮卡调度问题和负载选择问题,其评分函数利用零件的松弛时间、零件的等待时间和距离到负载。Jeong & Randhawa (2001) 定义了一个由训练有素的神经网络控制的评分函数,用于计算传入工作的优先级。如果有大量关于工作的可用数据并且没有明确定义的评分函数来评估优先级,则此方法特别有用。

调度规则已被证明是好的且易于实施,但因短视而受到批评。

因此,已经研究了更先进的方法来提高系统性能。Liu、Tan、Kurniawan、Zhang 和 Sun(2018 年)开发了一种混合整数规划模型,用于解决移动机器人的调度问题,其任务是在不同地点之间以周期性或事件驱动或混合方式运输材料(具有使用新事件修改静态时间表)。Sabuncuoglu 和 Kizilisik (2003) 研究了灵活制造环境中的反应性调度问题,在这种环境中,工作的到来是事先不知道的。他们开发了一种基于模拟的调度方法,并比较了离线和在线调度方案。Ebben, van der Heijden, & van Harten (2005) 提出了一种针对动态资源受限车辆调度问题的串行调度方法,并使用离散事件模拟分析其动态行为。然而,这些研究并未考虑运输请求的时间窗口和具有电池管理功能的异质 AGV 车队。

相关工作关注的另一个流电动汽车路径问题(EVRP)。它是其中电动车辆的车队是用来代替内燃机车辆(ICEVs)时,车辆路径问题(VRP)的变体。康拉德和Figliozzi(2011)研究了EVRP,其中电动车可以完全地或者其服务过程中的某个客户位置的电池容量的80%充电。目标是尽量减少车辆和相关的行驶距离,服务时间和充电总成本的数量。他们提出了一个迭代的建设和完善启发式解决问题。Erdoan和米勒 - 钩(2012),然后研究了绿色VRP(GVRP),在该替代燃料车辆,例如太阳能,电动,或生物柴油车辆在车站的时间的恒定量内充分加油途中。他们提出了两个启发式解决与目标最小化总行驶距离的GVRP。

Schneider、Stenger 和 Goeke(2014 年)介绍了 EVRPTW,其中充电可以在具有线性充电功能的任何电池级别进行,并且电动汽车总是在充满电的情况下离开车站。

在他们的工作中,提出了一种可变邻域搜索和禁忌搜索 (TS) 的混合启发式算法来解决 EVRPTW,目标是通过使用最少的车辆数量来最小化总行驶距离。

最近,许多作者放宽了完全充电的限制,允许部分充电(Bruglieri, Mancini, Pezzella, Pisacane, & Suraci, 2017; Bruglieri, Pezzella, Pisacane, & Suraci, 2015; Ding, Batta, & Kwon, 2015; Keskin & Çatay, 2016; Roberti & Wen, 2016; Schiffer & Walther, 2018b; Wen, Linde, Ropke, Mirchandani, & Larsen, 2016 ) 在车站使用不同的充电技术 (Felipe, Ortuño, Righini, & Tirado, 2014; Keskin & Çatay , 2018 年)。还研究了其他几个扩展。一些模型考虑了车辆路线和定位充电站的决策(Schiffer & Walther,2017;2018b)。其他研究已经考虑了异质机队的可能性。

他们中的一些人分析了具有不同特征的电动汽车车队,例如电池容量和运营成本(Hiermann、Puchinger、Ropke 和 Hartl,2016 年;Zhao 和 Lu,2019 年),而另一些人则处理混合了电动汽车和 ICEV 的车队(Goeke & Schneider,2015;Kopfer & Vornhusen,2019;Sassi、Cherif-Khettaf 和 Oulamara,2015a;2015b)。此外,一些作品着眼于对迟到的处罚(Grandinetti、Guerriero、Pezzella 和 Pisacane,2016 年;Keskin 等人,2019 年)。然而,据我们所知,本文中的问题,即同时考虑具有软交付时间的运输请求、具有不同材料处理能力的异构 AGV 以及具有临界电池阈值的部分充电,尚未在文献中得到解决。我们将在下一节中详细描述所考虑的问题。


R 组传输请求

B 组计费任务(请求)

T 集合所有传输请求 R 和计费任务 B ,其中 T = R ∪ B

ArR 请求 r 的能力要求集

SrR 请求 r 的拾取或源节点

DrR 请求 r 的丢弃或目标节点

crR 请求 r每迟到时间单位产生的惩罚成本

errR 请求的最早提取时间 r

lrR 请求 r 的最新交付时间

grR 任务类型(请求) r #?什么任务

V 套自动导引车(AGV)

Avk AGV k 的能力集

cvk AGV k 单位时间的行程成本

AGV k 充电率

cvk AGV k 放电率

bvk AGV k 的临界电池阈值

bvk AGV k 的非关键电池阈值

AGV k 的bvk充电水平

Bvk AGV k 的初始充电水平

bl 最低电池电量 (%)

BU 最大电池充电水平(%)

N 布局中的组所有节点

E 一个布局中的组充电节点

hni 节点 i 的服务时间

dij 节点 i 和节点 j 之间的距离

tijk 车辆 k 在节点 i 和节点 j 之间行驶的时间

AGV k的任务Qk序列

Q组 k 个 AGV 的任务序列,其中 Q ={ Q 1 , Q 2 , . . . , Q k }

AGV k 的任务调度表

k 个 AGV 的S组任务调度,其中 S = { S 1 , S 2 , . . . , SK }

Kr 组具有处理请求 r 所需能力的 AGV

a 权重因子

q 要删除的请求数

p 选择相关任务的随机性

k 后悔类中的k级-κ启发式

λ 对运营商有效性变化的反应因子

w 初始温度控制参数

ε 模拟退火中的冷却速率

φ1距离相关性的权重

φ2时间窗相关性权重

φ3 AGV 能力要求的相关性权重

ψ1 找到新的最佳解决方案时启发式奖励的得分

ψ2 当找到更好的解决方案时,启发式奖励的ψ2分数

ψ3 当找到更差的解决方案但被接受时,启发式奖励的ψ3分数

nc 调用时站方法运行的迭代次数

Tma 数学运算的x执行时间限制

γ 要移除的随机任务数


3 问题描述

本文中的问题涉及一组运输请求 R,该请求由具有电池限制的异构 AGV 车队 V 提供服务。request r ∈ R 的源(提货)和目的地(交付)节点分别用 srR 和 drR 表示。每个请求 r ∈ R 需要一组来自 AGV 的运输能力 ArR,其中 erR 是最早的取件,它有一个时间窗口 [erR ,lrR] 时间,lRr 是最晚的交付时间要求。不允许 AGV 在其最早的取件时间之前到达请求的来源。另一方面,如果 AGV k 在其最后的交付时间之后到达请求 r 的目的地,则发生迟到,并通过 max { 0 , (AGV k 在 drR 的到达时间) - lrR } 来衡量,并有惩罚每单位时间发生的成本crR。

每个请求都需要由异构车队中的一个有能力的 AGV 执行。如果AR r ⊆ A k 成立,则AGV k ∈ V 具有一组能力关系AV k 并且能够为请求r ∈ R 提供服务,即请求的能力要求包含在AGV 的能力中。例如,对于分类为需要在托盘上提升重物的请求,只有那些能够提升重物的 AGV 才能执行该请求。

每个 AGV 也有每单位时间的行程成本 ck V 。当 AGV 行驶时,电池电量水平与行驶距离成比例下降,放电率为 d ^ k V ,并且 AGV 可能需要访问充电站才能继续运行。

这里,电池以 c ^ k V 的充电速率充电。AGV 的充电水平(以百分比测量)必须分别取 bl 百分比和 bu 百分比表示的最小和最大电池充电水平之间的值。如果充电水平低于临界阈值 bk ,则 AGV 必须对其电池进行充电,并且充电持续时间应足够长,以使充电水平至少达到该阈值。换句话说,在开始一个新的请求之前,AGV 的充电水平必须 V 等于或高于 bk 百分比。临界阈值是给定节点网络的预先指定参数,以确保 AGV 可以在需要时立即到达任何请求目的地和充电站。值得注意的是,AGV在执行请求(即,承载负载)时不允许访问充电站,其路线开始和结束于其中一个充电站。AGV 也不能同时服务多个请求,即在其从源节点到目标节点的旅行中(单载 AGV)。此外,AGV 可以检测车间中的物体并在行驶时在它们周围移动。因此,AGV 之间的碰撞可以通过硬件来避免,因此本文不予考虑。

该问题可以在有向图 G = ( N, A ) 上定义,其中 N = { 1 , 2 , . . . , n } 是节点集,A = { ( i, j ) | i, j ∈ N, i = j } 是弧的集合。图中的节点可以表示取货或交付位置,或充电站。每个取货或配送节点 i ∈ N 都有一个服务时间 h N ,表示 i 进行装卸活动所需的时间,而每个充电节点的服务时间为零。每条弧 (i, j) 与距离 dij 相关联,并且它由 AGV k ∈ V 以 ti jk 时间单位行进。请注意,距离和旅行时间都是对称的,即 dij = d ji 和 ti jk = t jik 。此外,令 E ⊂ N 表示充电站集合,B = { 1 , 2 , . . . , n B } 表示充电请求的集合,其中 n B 是安全上界,计算为 n B = | 五 | · | E | ,这使得 AGV 可以根据需要多次充电。因此,并非所有来自 B 的请求都需要在调度中使用。对于每个充电请求 r ∈ B ,源节点和目的节点是同一个充电站,最早取货时间 R 和最迟交货时间 R 分别设置为零和无穷大 ( e R r = 0 , lr = ∞ , ∀ r ∈乙)。

最后,T 表示所有传输和计费请求的集合,使得 T = R ∪ B 。请注意,上标中的 R 、 V 和 N 分别指的是请求、AGV 和节点。

该问题的目标是确定 (a) 将 AGV 分配给包括充电请求在内的请求,(b) AGV 上的一系列请求,以及 © 请求的开始时间和充电持续时间,从而满足问题约束,以及请求的总迟到成本和 AGV 的总行程成本的加权和最小化。

4 数学公式

在本节中,我们根据第 3 节中的描述制定数学模型。模型公式如下所示。

4.1。决策变量

除了第 3 节中介绍的符号外,我们还为数学公式引入了以下决策变量:

xrrk 二进制变量,如果请求 r 在 r 之前由 AGV k 执行,则等于 1,否则为 0

y S rk AGV k 到达请求 r 源节点的时间(S 指源节点)

y Drk AGV k 到达请求 r 目的节点的时间(D 指目的地)

T rk 由 AGV k 执行的请求 r 的延迟时间 #为什么有延迟时间

z rk AGV k 到达请求 r 的源节点时的电池放电量百分比

δ rk AGV k 执行请求 r 时的行程时间

4.2. 混合整数线性规划模型

所描述问题的数学模型可以表述如下:

在这里插入图片描述

#(1)中前面的是惩罚,后面的是时间。不论是否延迟都有 最晚时间差成本。延迟多一个延迟成本。 9中的M?10是等待时间?约束12?cvk 还是dvk充电 约束15?
目标函数 (1) 最小化请求的迟到成本和 AGV 的旅行成本的加权总和,其中 α 是一个权重系数,用于优先于另一个目标。约束 (2) 确保每个请求最多有一个 AGV 参与,而约束 (3) 定义是否执行充电请求。约束 (4) 确保请求和 AGV 的能力匹配。约束 (5) 避免了自我访问。

约束 (6) 为 AGV 完成的每个请求保留传入和传出弧。约束 (7) 确保 AGV 在最早的拾取时间之后到达源节点。约束 (8) 和 (9) 分别计算到达目的地和源节点的时间。此外,约束 (9) 可防止将 M 定义为大的正常数的子路径。约束 (10) 和约束 (18) (T rk ≥ 0) 定义了每个请求的延迟。约束 (11) 确定 AGV 执行请求的行程时间。约束 (12) 和 (13) 分别计算由于请求的源和目的地之间以及两个请求的目的地和源之间的行程而导致的电池放电量。因收费请求而收费的金额由约束 (14) 给出。约束 (15–17) 设置电池放电量的下限和上限 (bl = 0, bu = 100),而约束 (18–19) 保证剩余决策变量的有效域。

5. 提议的数学

在本节中,我们提出了一种基于 ALNS 和 LP 集成的数学方法来解决第 3 节中的问题。在我们的数学中,ALNS 负责解决 AGV 的分配和请求的排序,而 LP 模型用于确定请求的时间表,即启动时间和充电持续时间。ALNS 涉及多个破坏和修复操作员,它们竞争修改当前解决方案。在每次迭代中,根据他们过去的表现选择一个销毁和一个修复算子,如果新的解决方案满足 ALNS 定义的一些标准(Demir, Bekta, & Laporte, 2012),则接受新的解决方案。在这里,我们将 LP 集成到 ALNS 框架中,以利用这两种方法的优势有效地为大型问题实例找到高质量的解决方案。

令 Q 0 和 S 0 分别表示初始序列和初始调度。类似地,Q current 和 S current 表示当前序列和调度,而 Q best 和 S best 分别表示最佳序列和调度。在提议的数学中,有四组运算符:请求销毁、请求修复、(充电)站点销毁和站点修复,分别用 + - + - + - c 、c 、s 和s 表示。令 dc ∈ c 和 rc ∈ c 分别表示请求的破坏和修复算子,而 + ds ∈ - s 和 rs ∈ s 分别表示充电任务的破坏和修复算子。此外,- c 、 - + + c 、s 和s 中的运算符的权重(反映选择运算符 + - + 的概率)分别存储在向量 P - c 、 P c 、 P s 和 P s 中. 所提出的数学算法的伪代码在算法 1 中给出。

数学从初始化可行的 se+ − + quence Q 0 和 P − c 、 P c 、 P s 和 P s 中的运算符的权重(第 1 行)开始。

最初,所有运算符具有相同的权重。然后,初始调度 S 0 由输入为 Q 0 的 LP 模型计算(第 2 行)。数学认为 Q 0 (S 0 ) 是当前的和迄今为止最好的(第 3-4 行),并将模拟退火 (SA) 温度 τ 设置为其初始值 τ 0 (第 5 行)。然后,执行一个循环,直到满足停止条件(第 6-31 行)。在循环开始时,数学算法选择一对请求销毁和修复运算符 dc 和 rc 来修改当前序列 Q current 以生成新序列 Q new ,然后用于计算 S new (第 7-9 行) . 如果找到了新的最佳解决方案,则数学算法专注于通过应用站点破坏和修复算子 ds 和 rs 来利用其邻域,直到它达到 nc 迭代并且没有获得另一个新的最佳解决方案(第 10-25 行)。否则,如果新解决方案优于当前解决方案,或者比当前解决方案差但满足 SA 接受标准,则接受新解决方案,其中 r U ( 0 , 1 ) 是根据均匀分布 U ( 0 , 1 ) 生成的随机数(第 26-27 行)。P - c , - + P + c 和 P s , P s 中选定的请求和站操作员的权重在使用时分别更新(第 23 和 29 行)。此外,SA 温度是每次迭代中最后更新的温度,其中 ε 是冷却速率(第 30 行)。在数学运算结束时,返回最佳调度 S best(第 32 行)。如伪代码中所述,我们在单独的部分中提供有关算法的详细信息

5.1。解决方案表示

我们的问题的解决方案是在特定时间执行任务的时间表。在本节中,我们通过随后呈现任务的类型、顺序和时间表来描述解决方案表示,如下所示。

5.1.1。任务类型

调度S由图1所示的运输请求(有载行驶)TR、空载行驶UT、充电CH等3种任务构成。令 g R r 表示任务 r 的类型。

首先,图 1 (a) 中的任务表示类型为 TR (g R r = TR ) 的请求 r,R 具有时间窗口 [e R r , lr ],源节点和目标节点 RR ( s R r , dr ),以及一组能力要求 A r 。其次,图1(b)展示了一个UT类型的任务(g R = UT),它表示AGV在没有任何负载的情况下从其先前任务的目的地(s R r)移动到源的行程r。它的下一个任务(博士)。此行程发生在 TR 类型或 TR 和 CH 类型的两个任务之间。最后,图1(c)给出了一个CH(g R r = CH)类型的任务,它的源节点和目的节点在同一个充电站,即RRR s R r = dr,其中sr,dr ∈ E .

5.1.2. 任务顺序

AGV 上的任务序列由 TR 和 CH 两种类型的任务构成。我们用 Q 表示所有 AGV 的任务序列集合,即 Q = { Q k | ∀ k ∈ V } ,其中 Q k 是 AGV k 上的任务序列。另外,令Q r̄ k 表示序列Q k 中的第r̄个任务,任务的属性由( e R , l r̄ R , s R , d r̄ R , AR , g R )表示。例如,图 2 说明了由两个 AGV 组成的集合 Q r̄ r̄ r̄ r̄,具有它们的能力集,以及它们各自的任务序列 Q 1 和 Q 2 ,其中 Q 3 1 和 Q 2 2 是第三个和第二个任务分别为 AGV 1 和 2。这里,Q 3 1 的属性值为(-,-,19,19,-,CH),而Q 2 2 的属性值为(32,55,1,12,{A,C},TR)。请注意,符号“-”表示不存在任务的相应属性。

5.1.3. 任务安排

为了计算所有 AGV 的调度 S,每个序列 Q k 通过添加 UT 类型的任务进行后处理,以产生序列 Q^k,使其由运输请求、充电任务和空载旅行任务组成。令 S k 表示 AGV k 上的任务调度,则 S = { S k | ∀ k ∈ V } 。我们还用 S r̄ k 表示调度 S k 中的第 r̄ 个任务。r̄ 包括两个附加属性,即 y S r̄ 和 y D ,以分别指示 AGV 到达任务 r̄ 的源节点和目标节点的时间。请注意,这些时刻是在计算调度 S 时确定的(参见第 5.6 节)。此外,对于 CH 类型的任务,y D 和 y S r̄ 之间的差异(即 y D - y S r̄ )意味着再充电持续时间。图 3 说明了集合 S = { S 1 , S 2 } ,其中 S 1 和 S 2 分别是 AGV 1 和 2 上的任务调度。在调度 S 1 中,S 2 1 表示第二个任务 (r̄ = 2 ) 及其属性 (e R , l r̄ R , s R , d r̄ R , AR , g R , y S r̄ , y D ) = ( 8 , 25 , 5 , 11 , { A, B } , TR, 8 , 19)。

r̄ r̄ r̄ r̄ r̄ 得到调度S后,根据公式计算其目标值。(20) ,等于请求的迟到成本和 AGV 的行程成本的加权和。这里, ( y D − l r̄ R ) + r̄ 给出了每个传输请求的迟到 r̄ 。

公式 20

5.2. 初始化

初始序列的质量可能对数学的最终结果产生至关重要的影响。为了生成一个好的初始序列,我们提出了一种建设性的启发式方法,它采用了最早到期日 (EDD) 规则和第 5.5.2 节中描述的关键电荷插入方法。这种建设性启发式的伪代码在算法 2 中给出。它首先对所有运输请求 r ∈ R 以它们的最新交付时间的非递减顺序进行排序,以创建排序集 R ^(第 1 行)。然后,我们创建一组有能力的 AGV,用 VC 表示,用于服务每个排序的请求(第 2-3 行)。如果 VC 中仅存在一个候选者,则选择它(第 4-5 行)。否则,选择在将请求 r 插入其序列时具有最小附加成本的 AGV(第 6-10 行)。将请求 r 插入 AGV k的成本函数f ( r, k ) 在第 8 行中确定,其中计算 AGV 在请求目的地的暂定到达时间 y ^ D r 假定 AGV 应该到达源节点为尽可能早,但不要早于最早的取件时间。在服务请求之后,如果所选 AGV v 的充电水平 b V v 下降到低于临界电池阈值 bv ,则将充电任务分配给该 AGV。

如第 3 节所述,(重新)充电持续时间应允许充电水平至少达到临界阈值。一般来说,所提出的建设性启发式算法可以归类为贪心排序算法。

5.3. 运算符的自适应权重

5.4. 销毁操作员

在本节中,我们介绍了数学中使用的九个破坏运算符。前五个被归类为删除传输请求的请求销毁,而后两个被归类为删除计费任务的站点销毁。这些算子要么改编自 Ropke & Pisinger (2006)、Keskin & Çatay (2016) 和 Shaw (1998),要么受到启发。一般来说,销毁阶段主要包括从当前序列中删除一些请求,将它们添加到删除列表中,并返回一个部分销毁的序列。

5.4.1。请求销毁操作符

我们现在描述删除请求的操作符如下。

Shaw destroy (SHD) :该运算符旨在删除在多个方面彼此相关的请求,因此很容易重新洗牌。在我们的算法中,两个请求 r 和 r 之间的相关性由 S ( r, r ) 定义,并由方程式计算。(23) :

公式23

其中 φ 1 、 φ 2 和 φ 3 分别是与距离、时间窗口和能力要求项对应的权重(Shaw 参数),K r 表示能够服务请求 r 的 AGV 的集合。较低的 S (r, r ) 表示两个请求 r 和 r 之间的相关程度较高。假设 R d xy 、 e R x 和 lx 通过缩放它们进行归一化,使得它们只取 [0,1] 之间的值,其中 x 和 y 分别表示距离项中的第一个和第二个节点,而时间窗项中的 x 表示请求 r 或 r 。SHD 首先从序列(集合)Q 中随机选择要删除的传输请求 r。然后,它按照与请求 r 的相关性值的升序对未删除请求 L 的数组进行排序。接下来,它选择放置在 [ yp | 定义的位置的请求。大号 | ] ,其中 y ∈ [0 , 1 ) 是随机数,p 是确定性幂,在相关请求的选择中引入了一些变化,使得相关请求更有可能被选择。

[ ·] 被四舍五入到最接近的整数。该过程以类似的方式迭代,直到 q 个请求被删除(Keskin & Çatay, 2016; Ropke & Pisinger, 2006)。q 的值将在参数调整部分(第 6.2 节)中确定。

我们还使用了 SHD 算子的三种特殊情况,称为基于距离的 Shaw destroy (SHD-D)、基于时间窗的 Shaw destroy (SHD-T) 和基于能力的 Shaw destroy (SHD-C),其中φ 1 = 1 , φ 2 = 1 , 和 φ 3 = 1 , 等式中的其他参数。(23) 设置为 0。

Worst request destroy (WRD) :该操作符试图从序列 Q 中删除 q 个成本高的请求。我们将调度 S 中请求 r 的成本 R + 定义为f ( r, S ) = ( y D r - lr) . 操作员重用了 SHD 的一些想法。在每次迭代中,它按成本降序对一组未删除的请求 L 进行排序,并删除位置 [ yp | 中列出的请求。大号 | ] ,其中 y 和 p 在 SHD 中定义。此移除过程重复 q 次迭代。

随机请求销毁(RRD):操作员简单地删除从序列 Q 中随机选择的 γ 个请求,以使搜索机制多样化。

5.4.2. 车站销毁操作员

车站的充电任务是我们问题的关键组成部分。因此,在 AGV 序列中移除或重新定位它们可能会改进解决方案。我们这里使用下面的站销毁操作符。

最坏电荷破坏(WCD):该操作员随机选择 AGV k 并计算它在每个特定充电站累积的电荷量。然后,WCD 选择导致电荷增加最少的充电任务,并将其从序列 Q k 中删除。

随机充电销毁(RCD):操作员简单地随机选择一个 AGV 并移除一个充电任务,该任务也是从该 AGV 的序列中随机选择的。

所有充电销毁(ACD):操作员只需随机选择一个 AGV,并从该 AGV 的序列中删除所有充电任务。

5.5. 维修操作员

为了修复部分破坏的序列,我们的算法中使用了六个插入运算符。这些操作员分为两类,即请求维修和站点维修。当第一组的操作员尝试重新插入被销毁方法删除的运输请求时,第二组的操作员将充电任务插入到部分序列中,从而影响对沿途 AGV 充电站的访问。插入算子返回一个可行序列 Q,作为 5.6 节中介绍的 LP 模型的输入,以计算可行调度 S。

5.5.1。请求维修操作员

我们改编了 Ropke & Pisinger (2006) 中的贪婪和后悔 κ 插入,并提出了一种称为基于 EDD 的贪婪插入的新方法来重新插入传输请求。这三个运算符描述如下。

贪婪插入 (GRI) :该运算符重复地将请求插入其整体最佳位置,称为最小成本位置。令 Q r→ 表示在序列 Q k 中的位置 i 处插入 rei quest r 时的结果序列,并且 f ( r, k, i ) 表示插入后整个部分序列 Q 的成本。贪心插入的伪代码在算法 3 中给出。对于移除列表 D 中的每个请求 r,操作员收集一组有能力为该请求提供服务的 AGV VC(第 3 行)并确定成本 f (r, k, i)(第 5 行),其中 y ^ D 是在第 5.2 节中定义的 rer̄ 任务目的地的暂定到达时间。对集合 D 中的所有请求重复该过程,并将具有最小成本 f ( r, k, i ) 的请求插入其指定位置(第 8-9 行)。该过程继续进行,直到重新插入所有已销毁的请求。

遗憾- κ 插入 (RKI):GRI 的一个潜在缺点是它经常推迟插入具有高插入成本的请求。当需要重新插入这些请求时,操作员会选择总体上具有最大遗憾值的请求(第 12 行),其中每个遗憾值 f 遗憾 - κ ( r ) 在第 10 行中确定。然后,选择的请求被插入到它的最小成本位置。重复该过程,直到重新插入所有已删除的请求。我们使用较小的 κ 值,即在我们的数学中使用了后悔 2 和后悔 3 启发式。

基于 EDD 的贪婪插入 (EGI):尽管贪婪和遗憾-κ 插入通常是 ALNS 文献中首选的启发式方法(Demir 等人,2012;Grangier, Gendreau, Lehd, & Rousseau, 2016;Gullhav, Cordeau, Hvattum , & Nygreen, 2017; Keskin & Çatay, 2016; Žulj, Kramer, & Schneider, 2018),它们的计算成本很高,因为必须为序列 Q 中的每个可用位置计算插入成本。因此,我们引入了一种更快的启发式方法,称为基于 EDD 的贪心插入。这里,EGI 和 GRI 的区别在于,EGI 只考虑将被破坏的请求 r ∈ D 重新插入到有能力的 AGV k ∈ VC 的序列中的第一个位置 i 处,其中 lr R < l R k 。这个想法在于这样一个事实,即交付时间较早(截止日期较早)的请求应在交付时间较晚的请求之前得到服务。

值得注意的是,请求插入算子在能力要求方面是可行的,但可能无法满足临界电池阈值。在这种情况下,在第5.5.2节给出的临界电荷插入被施加到使修好的解决方案是可行的。

5.5.2. 车站维修操作员

移除充电任务后,部分损坏的序列可能无法满足 AGV 的电池充电要求。

为了修复序列,我们提出了两个算子插入充电任务,即关键电荷插入和非关键电荷插入。

由于 AGV 可以根据需要进行多次充电,因此任何充电任务都可以插入到整个车站维修操作员中,因此可能不需要重新插入所有被车站破坏启发式删除的充电任务。请注意,任何 AGV 都应在最靠近其先前服务请求位置的充电站执行充电任务。

临界电荷插入 (CCI):此操作员在服务于 AGV k 的部分序列中的每个请求后估计电池电荷水平,并在其电荷水平降至 V 低于临界电池阈值 bk 时插入充电任务。

非关键充电插入(NCI):在这个算子中,我们引入了 AGV k 的非关键电池阈值,用 bk 表示,以表示 AGV 充电的上限阈值。bk 和 bk 之间的主要区别在于,如果充电水平低于 bk,AGV k 可以访问充电站 V,但如果访问导致错过最后期限(而 AGV 必须访问 V一个站,如果它的费用低于 bk )。换句话说,该算子确定部分序列中的任何请求,之后电池充电状态低于非临界阈值,如果该请求与下一个请求之间有足够的空闲时间,则插入充电任务。这个想法是如果提前添加充电任务,而不是像 CCI 中那样仅在电池电量低于临界阈值时获得可能更好的解决方案。

全部充电插入(ACI):操作员只需随机选择一个 AGV,并在该 AGV 序列中的每个请求之后插入一个充电任务。

5.6. LP调度

迄今为止提出的 ALNS 的破坏和修复算子用于解决 AGV 上请求的分配和排序。在本节中,我们提出了一个 LP 模型来优化每个 AGV k ∈ V 的启动时间和充电持续时间,其中 V 表示 AGV 的集合,其序列 Q k ,因此 Q ^ k 在每次迭代中被 ALNS 修改数学的。

为了呈现模型,我们将决策变量 T r 、y S r 和 y D r 分别定义为任务 r 的迟到、到达源的时间和到达目的地的时间。我们还引入了变量 β r 来跟踪任务 r 开始时输入 AGV 的电池电量水平。初始电池充电水平 β 0 设置为 B k V 。提出的LP模型如下:

公式24 -34

目标(24)最小化总迟到成本。约束 (25) 确保有足够的时间从每个请求的源移动到目标。由于后续请求的来源是当前请求的目的地,因此约束(26)确保时间保持不变。在约束条件 (27) 规定的最早取件时间之前无法处理请求。每个请求的迟到由约束 (28) 和约束 (34) (T r ≥ 0) 定义。约束 (29) 将输入 AGV k 的电池充电初始化为 B k V 水平。

AGV 的充电由约束 (30) 给出,而由于装载和卸载行驶引起的放电由约束 (31) 给出。约束 (32) 和 (33) 定义给定 AGV 充电水平的下限和上限 (bl = 0 和 bu = 100),而约束 (34) 对其他决策变量施加限制。

5.7. 接受和停止标准

在我们从提出的 LP 模型中获得调度 S 之后,有必要确定该调度是否可以作为我们数学下一次迭代的基础。为此,我们应用了 ALNS 框架中最常用的 SA 验收标准,以避免陷入局部最优 (Santini, Ropke, & Hvattum, 2018)。也就是说,总是接受一个新的改进解决方案,即 f ( S new ) < f ( S current ) 或 f ( S new ) < f ( S best ) ,或者以概率 e - ( f ( S new ) − f ( S current )) / τ ,其中 τ 是当前温度,f ( S x ) 根据方程式确定。(20) 。我们在 τ 0 处初始化 τ,使得以 0.5 的概率接受比当前解决方案差 w% 的解决方案。因此,我们有 τ 0 = −w · f (S 0 ) / ln ( 0 . 5 ) ,其中 w 表示初始温度控制参数(Ropke & Pisinger, 2006; Zhao & Lu, 2019)。然后,当前温度在每次迭代( τ ← τ ε )时以冷却速率 ε 逐渐降低,其中 0 < ε < 1 。当其运行时间超过给定的时间限制 T max 时,数学停止。

6. 计算实验

本节介绍了评估 MILP 模型和提议的数学 (MH) 性能的实验过程。首先,我们在第 6.1 节中描述了基于 BIC 中现场实验室的地板布局的问题实例的生成。

接下来,第 6.2 节讨论了 MH 的参数调整,第 6.3 节量化了破坏和修复操作员的影响。在第 6.4 节中,我们描述了我们在 BIC 的行业合作伙伴使用的当前调度规则,作为 MILP 和提议的 MH 的基准。然后,我们比较了三种方法的性能,以验证所提出的 MH 在小型问题实例中的性能。最后,我们对更大的问题实例进行敏感性分析,以进一步证明 MH 的有效性,并为第 6.5 节中的工业案例研究提供管理见解。

6.1。案例研究设计

本研究中的问题实例是在与 BIC 的行业从业者讨论后产生的。我们使用基于 BIC 的真实世界布局的距离矩阵来生成问题实例,如图 7 所示(参见附录 A)。在实践中,请求通过布局到达并在调度范围 H 开始时被调度程序知道,该范围 H 通常长度为 1800 或 3600 秒。请求数 | 右 | 在此时间范围内,根据工作量的不同,可以在 20 到 60 之间。此外,请求包含有关其优先级的信息。高优先级请求通常是生产关键请求,如果延迟交付,可能会降低车间下游流程的生产力,因此会产生高昂的惩罚成本。低优先级请求对延迟交付几乎没有影响,因此会产生较低的惩罚成本。低优先级、中优先级和高优先级请求在最晚交付时间之后交付时,分别会产生每秒 0.01 美元、0.02 美元和 0.03 美元的罚款。AGV车队由三种不同能力的AGV组成。例如,一种特定类型的 AGV 具有 [A、B、C] 或 [A、C、D] 或 [E] 的能力,其中 A 表示提升负载的能力,B 表示处理重载的能力,C 表示处理轻载的能力负载,D 用于牵引负载,E 用于使用安装在 AGV 上的机械臂处理负载。因此,当带有能力要求[A,C]的请求到达时,即需要解除的轻负载,调度程序必须将其分配给包含这些能力的AGV。此外,AGV 会产生每秒 0.01 美元、0.02 美元和 0.03 美元的差旅费用。这些成本代表运营和维护成本,并已进行更改以保护机密性。实际使用的 AGV 车队的代表性数据如表 9 所示(见附录 B)。

实例生成过程在算法 5 中介绍(参见附录 C)。该过程采用一个输入参数集,包括调度范围 H、紧时间窗口的概率 TW 和请求数 | 右 | 并输出包含 | 的实例集 右 | 具有 H 秒内的随机到达时间和可变时间窗口长度的请求。时间窗口的紧度是通过最早取货时间和最晚交货时间之间的差距来衡量的,TW 的值,例如等于 0.5,表示运输请求有 50% 的机会具有紧时间窗口,其中 TW ∈ [0 , 1] 。对于每个参数集 1(场景),我们生成 10 个实例,每个实例运行 10 次,总共运行 100 次。我们观察到,每个实例运行 10 次足以在均值附近获得稳定的宽度,置信区间为 95%(Wang 等人,2013 年)。参数集成本的平均值和变异系数 (CV) 是根据这 100 次运行中获得的成本计算得出的。对于所有实例,目标函数中的权重系数 α 设置为 0.5。

除非另有说明,否则所有实验均在具有 Intel Core i7-8750H CPU @ 2.20GHz CPU 和 16GB RAM 的 Windows 10 操作系统的计算机上运行,​​执行时间限制为 15 秒(即 T max = 15 秒)。MH和MILP分别在Python v3.6和Gurobi Python包中编程,调度规则在仿真软件Anylogic v8.3.1中实现。

6.2. 参数调优

参数调整方法来自 Ropke & Pisinger (2006)。对于表 1 中显示的每个参数(请参见第 1-2 列),我们考虑五个场景,通过算法 5 为每个场景生成十个实例,并对五个离散可能值中的每一个执行十次运行。表 10 和表 11 分别报告了考虑的情景和参数值(见附录 E)。然后,对于每个参数值,调谐过程从平均的最佳实现的解决方案,并选择参数值的计算平均百分偏差,在至少平均百分偏差的结果。重复此过程,直到调整所有参数值。参数调谐的详细结果列于表11中给出,并且参数的最佳值汇总于表1中。

此外,为了确定参数 q(通过 Shaw 销毁操作符删除的请求数),我们针对各种实例大小进行了单独的调整实验,具体大小取决于请求数 (|R|) 和 AGV 数 (|V|)。 )。结果表明 q 的值可以由方程中给出的分段函数确定。(35) 。可以看出 q 的值在实例大小上没有增加,因为较大的 q 值会导致每次迭代的运行时间更长(由于计算量的增加),这会减慢给定计算量的数学的探索速度时限。虽然一个成功的 ALNS 算法依赖于几个快速探索算子的可用性,但对于大型实例具有较大的 q 与此原则背道而驰。然而,对于较小的情况,情况并非如此,这也反映在我们的研究结果中。

公式35

6.3. 破坏和维修操作员对 ALNS 性能的影响

ALNS 框架由不同的破坏和修复算子组成。为了获得对运营商的一些见解,我们通过报告他们被选择(“使用”)的次数来分析他们对 MH 性能的影响,有助于改进(“Imp.”),并导致新的最佳溶液(“最佳”)在表2中。在参数调谐部所生成的所有实例都用于测试运营商的性能。结果表明,所有组中的操作员被选择的比例大致相等。他们还解决方案的质量同样有助于改进,除了“站修理”组,其中CCI主导NCI和ACI。在运营商的请求破坏’和’请求修理团体同样寻找新的最佳解决方案做出贡献。在另一方面,在运营商的站破坏’和’站维修团体在性能显着的差异,即RCD,ACD,NCI和ACI运营商相对较少有助于找到最佳的解决方案。

为了更好地了解每个算子对所提出方法的好处,我们进行了统计分析(见附录 F),其灵感来自 Schiffer & Walther (2018a) 的工作。该分析表明,去除 SHD-D、ACD 和 ACI 可以最大程度地提高解决方案质量。因此,我们之后删除了这些运算符。剩下的算子将用于所有后续实验。

6.4. MILP、提议的 MH 和实用的比较

调度策略 在本节中,我们研究 MILP 和提议的 MH 的性能。此外,我们的 MH 结果是根据我们在 BIC 的行业合作伙伴 IJssel Technology 调度 AGV 的当前做法进行评估的。目前的做法是使用基于投标的调度规则。在此规则中,当要运输的材料在其取货地点准备好时,将向调度员发送运输请求。此规则利用 EDD 对合格闲置 AGV 上的分配请求进行优先级排序。当 AGV 有足够的电量 ( b V k ≥ bk ) 并且没有分配给任何请求时,它被认为是空闲的。调度器选择离请求源节点最近的空闲AGV,即基于距离的竞价。请注意,在服务请求后,如果 AGV 的充电水平低于临界阈值(CCI 启发式),则会将 AGV 发送到最近的充电站。附录 D 中提供了此调度规则(称为 EDDBID)的详细说明。

针对请求数||的问题实例考察了三种方法的性能 右 | 范围从 3 到 30,其中 H = 1800 , TW = 0 。5 和 | 五 | = 6。为了确保公平比较,我们在一个处理器内核上运行实例,并将所有方法的计算时间限制为 15 秒(即 T max = 15 秒)。我们还将 MILP 的时间限制延长至 3600 秒,以检查是否达到最佳值,并进一步验证 MH 的解决方案。每个参数集的实例运行十次迭代以获得目标值的平均值和 CV。百分比差距是根据分别通过 MH 和 MILP 或 MH 和 EDDBID 两种方法找到的平均客观值计算得出的。

负差距表明 MH 的解决方案质量优于其他方法。

表 3 表明 MILP 模型可以将小实例求解到最优,但随着请求数量的增加,它无法在考虑的时间限制内达到最优值,并且只返回迄今为止找到的最优解。即,运行在 360 0s (MILP-360 0) 中的 MILP 在超过 5 个请求时开始仅给出最佳可行解决方案,并且并非所有迭代都能找到超过 20 个请求的解决方案。此外,MILP3600 无法为超过 27 个请求的实例找到可行的解决方案。在 15 秒内运行的 MILP (MILP-15) 可以观察到类似的趋势,并在表 3 中用区分符号标记。

另一方面,MH 能够为所有情况找到解决方案,并且在所有情况下都比 MILP-15 和在四分之一情况下的 MILP-3600 提供更好的解决方案。对于其余情况,虽然 MH 找到的客观值大于 MILP-3600,但差异始终小于 2%。

此外,MH 始终找到超过 20 个请求的更好解决方案。我们还观察到 MH 可以在一秒钟内获得第一个解决方案,即使对于小型实例,MILP 也不是这种情况。最后,MH 在所有情况下都优于 EDDBID,平均提高了 27%。

6.5。敏感性分析

本节研究 MH 和 EDDBID 的性能,并通过对实践中典型的较大实例进行敏感性分析来产生管理见解。两种方法都以 15s 的 T max 运行,除了在第 6.5.4 节中,计算时间是不同的。MILP 被排除在分析之外,因为它无法为大型实例找到可行的解决方案,如表 3 所示。在此分析中考虑的每种情况都表示为’ H - TW - | 右 | - | 五 | ’ 并由十个实例组成,其中 H 在集合 { 180 0 , 360 0 } 中变化,TW 在 { 0 中变化。2 , 0 . 5 , 0 . 8 } , | 右 | 在 { 20 , 40 , 60 } 和 | 五 | 在 { 3 , 6 , 9 } 。同样,每个实例运行十次。AGV车队V的数据也见表9(见附录B),车队规模| 五 | of,例如,三个表示使用该表中的前三个AGV。

我们分析了参数 H、TW、| 的影响。右 | , 和 | 五 | 在 6.5.1 节中,成本参数、电池阈值和时间限制的影响分别在 6.5.2、6.5.3 和 6.5.4 节中进行了研究。

6.5.1. 调度范围、时间窗口紧密度、请求数量和车队规模的影响

参数 H, TW , | 的提及值 右 | , 和 | 五 | 组合得到 54 个场景,总共 540 个实例。

MH 和 EDDBID 获得的平均成本 (μ) 如表 4 所示。“差距”列报告了两种方法成本之间的百分比差距。图 4 还显示了跨越不同参数的几个选定趋势。

图 4 (a),在 AGV 车队规模不变的情况下,例如 | 五 | = 6 ,显示了不同 TW 的影响,| 右 | , 和 H 的平均成本。可以观察到,请求数较少时与请求数较多时相比,MH 和 EDDBID 的性能差距较小。当从 20 个请求增加到 60 个请求时,EDDBID 的成本以高于 MH 的速度增加。另一方面,成本随着 MH 和 EDDBID 中调度范围的增加而降低。然而,所有场景相对于 1800 和 3600 的平均改进保持不变,即大约 33%,这意味着 MH 在不同调度范围内的鲁棒性。

此外,从图 4(b)中可以看出,MH 在紧时间窗口下的性能优于 EDDBID,并且改进是恒定的。此外,图 4 © 显示成本随着车队规模的增加而下降。从 3 台 AGV 移动到 6 台 AGV 比从 6 台 AGV 移动到 9 台 AGV 成本降低更高。此外,图 4 (d) 显示了由于请求数量增加导致的成本增加。可以观察到,当请求数量较少(|R | = 20)或可用队列大小较大(|V | = 9)时,成本差异小于在有限范围内调度更多请求时的成本差异。舰队。从表 4 的结果中也可以看出这一趋势。

一般来说,在多种情况下,成本收益是可观的,平均差距等于 33%,而 CV 介于 0.7% 和 9% 之间。此外,在极度受限的情况下工作时,即在调度请求的数量很高且可用的车队规模很小的情况下,成本节省最高。MH利用前瞻信息对AGV进行可行的规划和调度,从而节省大量成本,并且在车队规模较大的场景中,使用前瞻信息的效果会减弱

6.5.2. 迟到罚款成本和AGV行驶成本的影响

t 第 6.5.1 节中的实验包含对迟到和 AGV 具有不同旅行成本的不同惩罚成本的请求。

在本节中,我们报告了我们从这些方面得出的观察结果。我们在实验中使用了三种类型的请求,惩罚成本为 1、2 和 3。表 5 显示了使用 EDDBID 和 MH 调度时具有不同成本的请求之间的迟到值细分。可以观察到,成本较高的请求在 MH 中占总迟到值的份额较低,而​​在 EDDBID 中发现这些请求占较大比例。换句话说,通过 MH 获得的时间表减少了迟到,如果由于时间窗口非常紧而无法避免迟到,MH 会优先考虑成本较高的请求。相反,EDDBID 对请求处罚漠不关心,并且可能导致高昂的总成本。

同样,我们在 6.5.1 节的实验中使用了三种类型的 AGV,行程成本分别为 1、2 和 3。运营成本高的 AGV 通常会承担更高的旅行成本。

表 5 显示,MH 共享 AGV 的行程时间与其行程成本成反比。即行程成本较高的AGV占总行程时间的比例较低,而行程成本最少的AGV所占份额最大。

另一方面,EDDBID 占旅行时间的份额大致相等,因为它不考虑旅行成本。值得注意的是,行程时间还取决于V a request 的能力要求(AR r )和AGV 的能力集(A k ),即请求与AGV 的匹配应满足可行性条件(AR r ⊆ A k ),并且当具有不同旅行成本的 AGV 满足特定请求的能力要求时,会考虑偏好。正因如此,ck V = 3的AGV在EDDBID和MH调度时的比例如表5所示。

6.5.3. 电池阈值的影响

在本实验中,我们将临界和非临界电池 V 变小临界阈值不一定是有利可图的。另一方面,在改变非关键阈值时没有明显的趋势,这可能表明 MH 能够调度关键充电持续时间以最大限度地满足所有请求的可行性。

AGV 的 V 阈值(即 bk 和 bk )。前一个阈值定义了访问 AGV 充电站的必须条件,而后者仅代表访问的可能性。我们选择了三个参数集,分别代表一个小、中和大的设置 V,其中 bk 用 10 到 50 的五个值进行测试(占

6.5.4. 计算时间的影响

我们通过将时间限制增加到 15、30、45 和 60 秒来分析计算时间对 MH 求解质量的影响。该实验还使用三个问题设置(场景)进行。将 15s、30s 和 45s 中获得的每个场景的平均总成本与 60s 中的结果进行比较。V full charge) 和bk 以60、80和100三个等级变化。结果如表6和图5所示。

对于中型和大型设置,当 bk 约为 30% 时,获得最低成本 V,而在小型设置中,性能最佳的临界阈值更高,这意味着表 7 和图 6 中的结果表明随着计算时间的增加,相对于 60 年代获得的成本的差距减小。但是,对于小型、中型和大型设置,差距最大仅为约 2%、3% 和 7%。此外,在图 6 中可以看出,三种场景的目标值随着计算时间的增加而收敛,并且对于较大的设置,收敛速度高于较小的设置。

为了进一步研究 MH 的计算效率,我们在表 8 中报告了每个算法组件所花费的时间相对于可用总时间 (T max ) 的百分比。我们在这里考虑 | 五 | = 9,H = 1800,TW = 0。8 和 T max = 15 秒。可以看出,在 ‘Request destroy/repair’ 组件中花费的时间最长。当请求数量增加时,迭代次数会减少,因为操作员的计算成本很高,这些操作员的目标是从最差的位置销毁请求并将它们重新插入到最好的位置,并且这些候选位置随着请求数量的增加而增加。由于迭代次数减少,MH 和 EDDBID 之间的百分比差距逐渐缩小。但是,我们在我们的工业合作伙伴处观察到,9 AGV 和 60 个请求的实例是实践中最繁忙的场景。即使有 100 个请求,MH 仍然产生比 EDDBID 更好的解决方案。

总结敏感性分析,提出的 MH 能够保证比当前调度方式更好的结果

在实践中可接受的计算时间内。我们还计算所有实例的 CV 值,以检查所得结果的波动性。我们观察到平均 CV 为 4%,这表明所提出的 MH 的稳定性导致在不同情况下的可靠解决方案。

7. 结论

本文研究单载AGV调度问题。该问题的主要新颖之处在于同时解决实践中经常出现的以下特征:具有软到期日期和不同罚款费用的运输请求,具有不同旅行成本和能力的异质 AGV 车队,以及具有关键性的 AGV 的部分收费电池阈值。制定 MILP 模型的目的是最小化请求迟到成本和 AGV 行程成本的加权平均值。然而,MILP 模型只能应用于小规模问题,即最多 22 个请求。因此,我们提出了一种基于 ALNS 的数学(MH)算法,该算法可以解释请求和 AGV 的异质性,并使用各种策略来处理充电任务,以便在实践中在合理的计算时间内找到高质量的解决方案。

对从真实世界数据生成的大量场景进行的计算实验表明,在相同时间限制下,所提出的 MH 的解决方案优于 MILP 的解决方案和当前实际采用的调度方式。对不同参数变化的敏感性分析表明,通过使用我们的解决方案方法,当前实践平均提高了 33%。除了节省金钱外,这种改进还可以更好地利用可用的 AGV 车队。

未来有趣的工作可能包括将我们的方法扩展到沿同一路线(多负载 AGV)进行多次取货和交付,以及在调度过程中包含路径规划。
附录 A. 案例研究的布局
图 7. 用于实验的布局。 布局中的每个盒子都是一个取货和交付节点。 标有“AGV停车/充电”的区域包含充电节点。 总共有41个取/送节点和10个充电节点。
B附录 B AGV 车队真实数据
附录 C. 实例的生成
对于给定的区间 (a, b) ,让 y ( a,b ) 和 z ( a,b ) 分别表示一个随机数和一个整数。 实例生成的伪代码由算法 5 给出。 对于实验,请求 r 的能力要求 A R r 是从 R 集合 A R = { [A ,B], [A ,C], [C,D], [E] } 中采样的,使得 A R r ∈ A 。 这里,来自集合 A R 的随机 dom 元素,例如 [A,B] 或 [A,C],由 y A 表示。
附录 D. 目前的做法
本节介绍 IJssel Technology 调度 AGV 的当前实践,该实践利用基于投标的调度规则 (EDDBID),如图 8 所示。 在此规则中,当要运输的材料在其取货地点准备好时,将向调度员发送运输请求。 新请求存储在数据库中。 数据库中的请求按其最新交付时间的升序排序。 此步骤确保根据 EDD 规则首先处理具有较早截止日期的请求。 调度程序向空闲且有能力的 AGV 发送对数据库中请求的投标请求。 当 AGV 有足够的电量 (b V k ≥ b k ) 并且没有分配给任何任务时,AGV 被认为是空闲的。
在收到调度程序的这个调用后,每个候选者都会发送一个投标,该投标只是从 AGV 位置到请求源的距离。 然后调度程序接收来自竞争 AGV 的投标并将请求授予最佳投标者,在这种情况下,最近的有能力的AGV。 请注意,在服务请求后,如果 AGV 的电量低于临界阈值(CCI 启发式),则 AGV 将被发送到最近的充电站。
附录 E. 参数调整
表 10 给出了参数调整考虑的场景,表 11 报告了完整的结果,我们从上到下按顺序调整参数。 考虑每个参数的五个不同值,并且对于每个值,调整过程在每个实例中运行十次。 通过对给定场景中所有实例的标准偏差进行平均来获得平均偏差,并且将所有场景的偏差平均得到“Dev%”。 选择具有最小“Dev%”的参数值。 重复此过程,直到调整所有参数。 参数的选定值在表 11 中以粗体表示。
附录 F. ALNS 算子分析
为了更好地了解每个算子对所提出方法的好处,我们根据 Schiffer & Walther (2018a) 的工作进行了统计分析。 该分析的结果列于表12中。 在此分析中,我们一次删除每个运算符,并根据未删除任何运算符时获得的目标值计算百分比差距。
当相应的算子从原始算子集合中排除时,负差距表示 MH 的解决方案质量有所提高。 如果排除多个运算符会导致解决方案质量的提高,那么我们会研究一次删除多个运算符的所有可能组合,以确保移除它们不会产生不利影响。 最后,我们选择提供最佳结果的算子配置。
表 12 显示,在不使用 SHD-D、RKI、RCD、ACD 和 ACI 算子的情况下,解决方案质量有所提高。 然后,我们更详细地研究了没有所有这五个、五个中的四个、五个中的三个以及这五个运算符中的两个的配置。 由于去除 SHD-D、ACD 和 ACI 会导致最佳结果(提高 2%),因此我们在分析后去除了这些运算符。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值