原文
Improved discrete imperialist competition algorithm for order scheduling of automated warehouses发表于Computers & Industrial Engineering
针对自动化仓库多目标订单调度问题,提出了一种改进的离散帝国竞争算法(DICA)。目标是最小化所有订单的完成时间和出站订单的总延迟。优先级值受订单的重要性和相对截止时间以及任务数量的影响,用于对订单进行排序。与遗传算法(GA)相似,改进的DICA同化过程是通过交叉和突变构造的。同时引入汉明距离来验证同化的质量。以一个实际案例为例,利用改进的DICA算法解决了两种调度策略:出站订单优先调度和复合订单调度。主要研究结果表明,复合订单调度能够有效地进行,特别是在订单数量较大的情况下,能够大大降低订单的完成时间和总延误率。此外,与遗传算法相比,改进的DICA算法的求解质量更好,但收敛速度较慢。
关键词:自动化仓库;帝国主义竞争算法;订单调度;订单优先级
本文的主要贡献如下。
(1)建立了以订单完成时间和出库订单总延迟最小化为目标的多目标调度模型。
(2)设计了两种订单调度策略,包括出站订单优先调度和复合订单调度。在调度过程中引入受重要度、顺序的相对截止时间和任务数量影响的优先级值,对同时到达的多个任务进行排序。
(3)针对离散问题,提出了基于连续ICA的改进DICA算法。与经典ICA不同的是,改进的DICA同化过程借鉴了遗传算法的交叉和突变过程,引入了汉明距离来控制同化质量。
(4)将改进的DICA算法用于解决订单调度问题,并比较了两种调度策略的效率。此外,将改进的DICA算法与遗传算法的求解质量和收敛速度进行了比较。
仓库调度有两个目的:一是在执行任务时提高服务质量,及时提供预期的产出;另一种是通过任务调度来平衡所有的任务,以保持服务的质量、效率和公平性。因此,仓库调度的优化需要复杂约束的组合(Atiewi, Yussof, & Ezanee, 2015)。在所有的仓库调度中,优化订单挑选是满足客户需求的必要条件(Henn & Schmid, 2013)。
订单拣选的优化已经引起了学者们的广泛关注,订单批量处理和调度问题是其中最重要的两个领域(Henn & Schmid, 2013; Henn, 2015; Scholz, Schubert, & W ̈ascher, 2017; Cao, Jiang, Liu, & Jiang, 2018; van Gils, Caris, Ramaekers, & Braekers, 2019; Carli, Dotoli, Digiesi, Facchini, & Mossa, 2020)。然而,这些研究的重点是拣选策略、拣选机路线和人工拣选的效率。随着自动化仓库问题规模的增加,解决方案的复杂性呈指数级增长,目前的精确算法无法解决这些问题。
学者们对元启发法进行了大量的研究(Dong, Jin, Luo, & Tong, 2020)。GA是应用最广泛的。Dou、Chen和Yang(2015)提出的GA专注于移动机器人的最小化路径规划。Nastasi, Colla, Cateni, and Campigli(2018)提出了三种GA策略来优化位于炼钢业的自动化仓库。Sun, Zhang, Qiao, Li, & Chen(2020)设计了GA来解决自动化仓库中基于多类型资源协同调度问题的混合调度模型的可行方案。此外,一些研究人员开发了两层GA来优化订单调度问题(Baniamerian, Bashiri, & Zabihi, 2018)。
此外,还有其他针对订单批量处理和调度问题的算法,如有效烟花算法,这是一种新的启发式算法,灵感来自于烟花的性能现象(Ye, Ma, Xu, Yang, & Fei, 2017),以及人工蜜蜂控制(ABC)算法(Contreras-Cruz, Ayala-Ramirez, & Hernandez- Belmonte, 2015)。Zhuang, Huang, Sun, & Qin, 2020),粒子群优化(PSO)算法(Lin, Kang, Hou, & Cheng, 2016;Li, Barenji, Jiang, Zhong, & Xu, 2020),实时整体调度方法(Yoshitake, Kamoshida, & Nagashima, 2019),模拟退火(SA)算法(Toncovich, Rossit, Frutos, & Rossit, 2019)。 Wang, Liu, Huang, Mou, and Zhang (2020)设计并比较了Tabu搜索算法、蚁群算法和SA算法来解决大规模的检索任务调度问题。还有关于不同算法组合的研究(Atmaca & Ozturk, 2013;Mousavi, Yap, Musa, Tahriri, & Md Dawal, 2017;Yao等人,2019)。
在此背景下,现有文献为我们建立目标函数和模型提供了指导。然而,大多数学者在订单批处理与调度、路径规划等方面进行了单目标建模分析。关于订单进出库流程优化的文献很少。此外,关于多目标问题的文献相对较少,许多文献几乎没有考虑到目标的相对重要性。在现实中,企业往往以客户的订单为目标,客户的重要性会影响订单的优先级。同时,订单的完成时间是订单中所有出站/入站任务完成的时间。单个出站/入站任务的提前完成对订单的最终完成时间影响不大,但订单中某个任务的延迟将导致整个订单的延迟。因此,考虑订单重要性、订单完成时间和总延迟率具有重要的现实意义。此外,如前文所述,独立分量分析在解决订单挑排问题的研究中应用较少,因此独立分量分析是解决该问题的一种新的方法。
表1总结了ICA的应用领域和性能。可以发现,ICA在很多领域都优于其他启发式算法。基于前面的研究和订单调度问题的特点,本文应用改进的DICA来解决订单调度问题。
ICA的流程图如图1所示。由于很多文献已经对ICA进行了详细描述(Hosseini & Khaled, 2014; Pan, Lei, & Zhang, 2018; Tao, Li, Huang, & Duan, 2021),我们简要地列出改进的DICA的步骤。改进的DICA与经典ICA的主要区别在于步骤2(同化)。
详见原文
本文考虑的自动化仓库可以同时执行多个出站/入站订单,并且每个订单的到达时间和预期交货时间是不同的。出入口工作台设置在通道内堆垛机路径的一端,靠近入口通道。仓库系统可能同时接收不同数量的入站/出站订单,每个订单包含一个或多个具有已知存储位置的任务。当收到出库订单时,堆垛机将所需要的货物从立体货架上各自的位置运到出库工作台,然后由叉车将货物运到准备区进行出库。入站订单的流程与出站订单的流程相反
假设如下:
(1) 一台堆垛机或一台叉车的容量是一个标准托盘(Cinar, Oliveira, Topcu, & Pardalos, 2017)。
(2) 出/入库工作台只能容纳一个存储单元(托盘)货物。
(3) 执行任务的设备是叉车和堆垛机。 每台设备只能同时执行一项任务,一旦操作开始,就不能中断(Baniamerian, Bashiri, & Zabihi, 2018)。
(4) 每个订单中包含的货物数量是标准托盘的整数倍。也就是说,不存在拆包操作。
表2是本文使用的符号的定义。它们是集合和索引、参数和决策变量。
通常,出站/入站流程的两种调度策略可应用于企业的自动化仓库。两种调度策略的过程俯视图如图4所示。其中x轴和y轴分别表示仓库的行号和列号。黑点表示货物的位置。假设有两个出站订单C1, C2和两个入站订单R1, R2。是堆垛机从出站工作台到位置x所花费的时间。是堆垛机在拾取或储存货物上所花费的时间,我们假设拾取或储存货物所需的时间是恒定的。
调度系统先安排出库订单的操作,出库订单完成后再安排进库订单。如果在流程中插入出站订单,则进站订单的操作将停止(在当前进站任务完成后),然后转向出站订单。堆垛机可能的操作顺序为C1→C2→R1→R2,如图4(a)所示,总完成时间为
以出库流程为例。这个过程意味着,当入库和出库任务被分配给同一个堆垛机时,调度系统会将入库和出库的订单安排在一起。 也就是说,一旦一个堆垛机得到一个出库任务,匹配平台将检查该堆垛机是否已经被分配了一个入库任务。如果答案是 "是",堆垛机就会把这两个任务放到一个绑定任务中,这意味着它将在入站任务之后执行出站任务,而不是返回到出口。这种策略在经济学上也被称为 "搭便车 "或 "免费搭车",即 "绑定任务 "产生正外部性。这种策略可以节省堆垛机从货架到工作台面的往返时间。
同样,当堆垛机将货物运送到出库工作台时,叉车将接管出库任务。如果有“搭车”入站任务,叉车需要将入站货物运送到出站任务对应的堆垛机工作台上,再将出站工作台上的货物运送到出站缓冲区。过程如图4(b)所示,堆垛机的操作顺序可为R1→C1→R2→C2。总完成时间为
本文结合客户特征和订单特征,运用层次分析法(Mondragon, Mastrocinque, Tsai, & Hogg, 2021)建立了基于三个指标的优先级准则:(1)订单重要性指数(IV);(2)订单相对截止时间指数(IT);(3)当前时刻的任务数索引(ID)。
判断矩阵为,然后,得到最大特征值λmax和特征向量。同时,利用这些公式可以计算一致性指数(CI)、一致性比(CR)和平均随机一致性指数(RI).
当满足CR<0.1的一致要求时,可以计算出优先级值OP。
分别为三个指标的权重。
Score(i)是客户i的分数。订单的重要程度是对客户利润、业务规模和信用的综合估计。我们可以根据客户的数据将其划分为不同的等级,并给每个等级分配不同的分数。分数越高,表示该客户越重要,其订单也就越重要。
订单相对截止时间指数为。T(i)为订单i的相对截止时间,为了减少总延迟,订单的相对截止时间越短,订单的性能优先级越高。
当前时刻的任务数索引为。其中D(i)为订单i的任务。根据任务最少的原则,任务少的订单应排在优先位置,以释放储藏室,防止出库订单之间的混乱。
本文主要研究两种调度策略:出库订单优先调度和复合订单调度。目标函数是一个最小化问题,它由两部分组成。第一个是最大化所有订单的完成时间,第二个是最大化所有出站订单的总延迟。权重ω可根据企业需要进行调整。
约束应该基于4.1节中描述的模型描述和假设。以下数学模型可构建为式(3)。
约束条件①确保进站/出站订单的每一步只能在一台堆垛机或叉车上执行。
约束②和③设置两个任务在同一设备上运行的条件:如果两个任务在同一设备上运行,则这两个任务具有顺序关系。
约束④设置在同一设备上连续执行两个任务的条件。
约束⑤表示当设备有n个任务时,设备有n个连续任务。
约束⑥表示任务的开始时间不早于到达时间。
约束⑦表示任务的第二阶段的操作只有在第一阶段完成后才能执行。
约束⑧设置规则,当一个堆垛机或叉车在两个连续任务中执行时,第二个任务必须等待第一个任务的完成。
约束⑨:意味着每一个出港/入港订单的堆垛机操作只能由位于相应货仓的相应堆垛机完成。
约束⑩:表示订单的完成时间为订单中所有任务的完成时间。