原文

Improved discrete imperialist competition algorithm for order scheduling of automated warehouses发表于Computers & Industrial Engineering


摘要

针对自动化仓库多目标订单调度问题,提出了一种改进的离散帝国竞争算法(DICA)。目标是最小化所有订单的完成时间和出站订单的总延迟。优先级值受订单的重要性和相对截止时间以及任务数量的影响,用于对订单进行排序。与遗传算法(GA)相似,改进的DICA同化过程是通过交叉和突变构造的。同时引入汉明距离来验证同化的质量。以一个实际案例为例,利用改进的DICA算法解决了两种调度策略:出站订单优先调度和复合订单调度。主要研究结果表明,复合订单调度能够有效地进行,特别是在订单数量较大的情况下,能够大大降低订单的完成时间和总延误率。此外,与遗传算法相比,改进的DICA算法的求解质量更好,但收敛速度较慢。

关键词:自动化仓库;帝国主义竞争算法;订单调度;订单优先级


1. 绪论

本文的主要贡献如下。

(1)建立了以订单完成时间和出库订单总延迟最小化为目标的多目标调度模型。

(2)设计了两种订单调度策略,包括出站订单优先调度和复合订单调度。在调度过程中引入受重要度、顺序的相对截止时间和任务数量影响的优先级值,对同时到达的多个任务进行排序。

(3)针对离散问题,提出了基于连续ICA的改进DICA算法。与经典ICA不同的是,改进的DICA同化过程借鉴了遗传算法的交叉和突变过程,引入了汉明距离来控制同化质量。

(4)将改进的DICA算法用于解决订单调度问题,并比较了两种调度策略的效率。此外,将改进的DICA算法与遗传算法的求解质量和收敛速度进行了比较。


2. 文献综述

仓库调度有两个目的:一是在执行任务时提高服务质量,及时提供预期的产出;另一种是通过任务调度来平衡所有的任务,以保持服务的质量、效率和公平性。因此,仓库调度的优化需要复杂约束的组合(Atiewi, Yussof, & Ezanee, 2015)。在所有的仓库调度中,优化订单挑选是满足客户需求的必要条件(Henn & Schmid, 2013)。

2.1. 订单选择的调度算法

订单拣选的优化已经引起了学者们的广泛关注,订单批量处理和调度问题是其中最重要的两个领域(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)。

在此背景下,现有文献为我们建立目标函数和模型提供了指导。然而,大多数学者在订单批处理与调度、路径规划等方面进行了单目标建模分析。关于订单进出库流程优化的文献很少。此外,关于多目标问题的文献相对较少,许多文献几乎没有考虑到目标的相对重要性。在现实中,企业往往以客户的订单为目标,客户的重要性会影响订单的优先级。同时,订单的完成时间是订单中所有出站/入站任务完成的时间。单个出站/入站任务的提前完成对订单的最终完成时间影响不大,但订单中某个任务的延迟将导致整个订单的延迟。因此,考虑订单重要性、订单完成时间和总延迟率具有重要的现实意义。此外,如前文所述,独立分量分析在解决订单挑排问题的研究中应用较少,因此独立分量分析是解决该问题的一种新的方法。

2.2. ICA的应用

表1总结了ICA的应用领域和性能。可以发现,ICA在很多领域都优于其他启发式算法。基于前面的研究和订单调度问题的特点,本文应用改进的DICA来解决订单调度问题。


3.介绍改进的DICA

ICA的流程图如图1所示。由于很多文献已经对ICA进行了详细描述(Hosseini & Khaled, 2014; Pan, Lei, & Zhang, 2018; Tao, Li, Huang, & Duan, 2021),我们简要地列出改进的DICA的步骤。改进的DICA与经典ICA的主要区别在于步骤2(同化)。

3.1. 帝国初始化(第一步)

根据Wang, Lee, Song和Kim(2020)的说法,每个国家在算法初始化时都代表一个可行的解决方案。初始化的country是一个1 × N维向量,可以定义为: 。每个国家的成本可以从当前优化问题的目标函数中计算:

ICA初始化步骤如下。首先,生成个初始化的国家,并计算每个国家的成本; 然后,个成本最低的国家被选为帝国主义国家,其余个国家作为殖民地,因此,每个帝国主义者都可以拥有一定数量的殖民地,这些殖民地与其形成帝国的能力成正比。

每个帝国的势力,其中是帝国的成本。

殖民地的数量根据帝国的势力分配,,这是帝国n所拥有的殖民地数量

3.2. 帝国内部的同化和更新(步骤2)

仓库订单调度问题是一个离散优化问题。与连续ICA相比,离散ICA最独特的部分是同化过程。帝国主义对殖民地的同化分两步进行:第一步是帝国主义与殖民地的某种交叉,第二步是殖民地的变异。交叉过程借鉴了GA的经验,它可以使殖民地走向帝国主义,而不是成为殖民地上的主导部分。但这些方法的不同之处在于,ICA的殖民地需要有明确的交叉和突变。因此,我们引入 汉明距离 来验证同化的质量。

汉明距离证明了可以在汉明空间中进行精确近邻搜索,表示代码组中任意两个代码元素的匹配位置中不同值的计数,即: ,在这个代码组中,i表示代码元素的位置,x和y是包含n个元素的代码组。比如,if x = [1, 0, 2, 3, 1, 3, 0, 1],and y = [1, 1, 2, 0, 1, 3, 2, 1], then d(x, y) = 3 ,也就是说,在匹配位置上不相同的代码元素的数量是3。

我们可以通过大量的实验来确定汉明距离的值,并假设殖民地和帝国之间交叉码的数目必须大于或等于码长减去汉明距离的结果,具体来说,

在殖民地向帝国主义同化的过程中,殖民地的成本可能比帝国主义的成本要低。在这种情况下,殖民地和帝国主义的地位需要改变,即当前帝国主义的地位被殖民地取代,当前帝国主义沦为殖民地。然后,该算法将继续帝国主义者在新地点同化殖民地的过程。

3.3. 帝国之间的竞争(第三步)

经过同化和更新,形成了一个稳定的帝国,各个帝国相互竞争。在竞争之前,有必要计算每个帝国的总成本,这与帝国主义和所包括殖民地的成本有关。然后,可以根据总成本计算每个帝国主义者拥有自由殖民地的概率(Xu, Wang, & Huang, 2014)。帝国n的总成本定义为下式:

是一个帝国的全部总价值,是一个帝国的cost function值。是自定义参数,相对于殖民地势力的权重。 是帝国n的殖民地价值的平均值

帝国竞争的方向是让强大的帝国主义者更强,让弱的帝国主义者更弱。因此,在ICA中,较弱的帝国主义将不得不释放最弱的殖民地(使其自由)以供帝国攫取。如图3所示,最弱的帝国主义1释放其最弱的殖民地成为“自由殖民地”,然后各帝国争相抢夺“自由殖民地”。

3.4. 算法终止(步骤4)

该算法在两种情况下终止。

(1)当帝国主义者失去所有殖民地时,帝国也就消失了。理想情况下,当整个群体中只剩下一个帝国主义者时,算法就会终止。

(2)当达到最大迭代次数时,算法停止。如果此时群体中还剩下一个以上的帝国主义者,那么最强大的帝国主义者将被选为最优输出解。


4. 建模

4.1. 模型描述和假设

本文考虑的自动化仓库可以同时执行多个出站/入站订单,并且每个订单的到达时间和预期交货时间是不同的。出入口工作台设置在通道内堆垛机路径的一端,靠近入口通道。仓库系统可能同时接收不同数量的入站/出站订单,每个订单包含一个或多个具有已知存储位置的任务。当收到出库订单时,堆垛机将所需要的货物从立体货架上各自的位置运到出库工作台,然后由叉车将货物运到准备区进行出库。入站订单的流程与出站订单的流程相反

假设如下:

(1) 一台堆垛机或一台叉车的容量是一个标准托盘(Cinar, Oliveira, Topcu, & Pardalos, 2017)。

(2) 出/入库工作台只能容纳一个存储单元(托盘)货物。

(3) 执行任务的设备是叉车和堆垛机。 每台设备只能同时执行一项任务,一旦操作开始,就不能中断(Baniamerian, Bashiri, & Zabihi, 2018)。

(4) 每个订单中包含的货物数量是标准托盘的整数倍。也就是说,不存在拆包操作。

表2是本文使用的符号的定义。它们是集合和索引、参数和决策变量。

4.2. 两种调度策略

通常,出站/入站流程的两种调度策略可应用于企业的自动化仓库。两种调度策略的过程俯视图如图4所示。其中x轴和y轴分别表示仓库的行号和列号。黑点表示货物的位置。假设有两个出站订单C1, C2和两个入站订单R1, R2。是堆垛机从出站工作台到位置x所花费的时间。是堆垛机在拾取或储存货物上所花费的时间,我们假设拾取或储存货物所需的时间是恒定的。

4.2.1. 出站订单优先调度

调度系统先安排出库订单的操作,出库订单完成后再安排进库订单。如果在流程中插入出站订单,则进站订单的操作将停止(在当前进站任务完成后),然后转向出站订单。堆垛机可能的操作顺序为C1→C2→R1→R2,如图4(a)所示,总完成时间为

4.2.2. 复合订单调度

以出库流程为例。这个过程意味着,当入库和出库任务被分配给同一个堆垛机时,调度系统会将入库和出库的订单安排在一起。 也就是说,一旦一个堆垛机得到一个出库任务,匹配平台将检查该堆垛机是否已经被分配了一个入库任务。如果答案是 "是",堆垛机就会把这两个任务放到一个绑定任务中,这意味着它将在入站任务之后执行出站任务,而不是返回到出口。这种策略在经济学上也被称为 "搭便车 "或 "免费搭车",即 "绑定任务 "产生正外部性。这种策略可以节省堆垛机从货架到工作台面的往返时间。

同样,当堆垛机将货物运送到出库工作台时,叉车将接管出库任务。如果有“搭车”入站任务,叉车需要将入站货物运送到出站任务对应的堆垛机工作台上,再将出站工作台上的货物运送到出站缓冲区。过程如图4(b)所示,堆垛机的操作顺序可为R1→C1→R2→C2。总完成时间为

4.3. 出站订单的优先级值

本文结合客户特征和订单特征,运用层次分析法(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.4. 数学模型

本文主要研究两种调度策略:出库订单优先调度和复合订单调度。目标函数是一个最小化问题,它由两部分组成。第一个是最大化所有订单的完成时间,第二个是最大化所有出站订单的总延迟。权重ω可根据企业需要进行调整。

约束应该基于4.1节中描述的模型描述和假设。以下数学模型可构建为式(3)。

约束①确保进站/出站订单的每一步只能在一台堆垛机或叉车上执行。

约束②和③设置两个任务在同一设备上运行的条件:如果两个任务在同一设备上运行,则这两个任务具有顺序关系。

约束④设置在同一设备上连续执行两个任务的条件。

约束⑤表示当设备有n个任务时,设备有n个连续任务。

约束⑥表示任务的开始时间不早于到达时间。

约束⑦表示任务的第二阶段的操作只有在第一阶段完成后才能执行。

约束⑧设置规则,当一个堆垛机或叉车在两个连续任务中执行时,第二个任务必须等待第一个任务的完成。

约束⑨:意味着每一个出港/入港订单的堆垛机操作只能由位于相应货仓的相应堆垛机完成。

约束⑩:表示订单的完成时间为订单中所有任务的完成时间。


5. 基于改进DICA的调度策略求解过程

5.1. 初始化 (Step 1)

5.1.1. 编码

为了提高改进的ICA在求解离散问题时的求解质量,本文根据订单调度的特点,采用非确定性长度编码对帝国进行初始化。在出站订单优先级调度和复合订单调度的初始编码过程中,采用了不同的编码方法。前者采用“双重编码”模式,后者采用“三重编码”模式。每个代码代表一个国家。

在编码之前,必须先计算入站和出站订单的总数。入站订单和出站订单应该分别编码。为了更清楚地描述初始编码过程,我们假设仓库中有6台编号为1到6的叉车。我们还假设有三个入站订单(R1-R3)和两个出站订单(C1-C2)。R1有三个任务,编号为任务1-任务3,R2有四个任务,编号为任务4-任务7,R3有五个任务,编号为任务8-任务12, C1有四个任务,编号为任务1-任务4,C2有六个任务,编号为任务5-任务10。

(1)出库订单优先级调度模型

最初,每台叉车执行第一个任务,然后按照完成第一个任务的优先级顺序分配第二个任务。出库订单的初始编码规则如图5所示。

首先,6台叉车分别同时执行任务1到任务6,然后完成任务4的叉车4先继续执行任务7,完成任务2的叉车2再继续执行任务8,完成任务6的叉车6第三次继续执行任务9,完成任务1的叉车1第四次继续执行任务10。叉车3和叉车5只执行一个任务,因为它们的第一个任务需要很长时间才能完成。同样,入站订单的初始编码规则如图6所示。

(2)复合订单调度模型

进站订单编码基于出站订单,采用“搭个便车”策略。在图7中,蓝色标记的叉车同时执行出站和入站任务。首先,仓库调度系统根据待储取货物的位置和任务的优先级值,将入站任务1和出站任务1安排给叉车1,将入站任务2和出站任务3安排给叉车2,以此类推。这是第一轮操作。然后先完成第一轮任务的叉车被分配第二轮任务。如果剩余的出站/入站任务匹配度不高,或者只剩下出站/入站任务,则叉车只执行单个出站/入站任务。例如,叉车3只执行入站任务7,叉车5只执行入站任务8。

5.1.2. 解码

解码是将国家代码转换为调度解决方案的过程。每个初始代码必须解码,以计算每个国家的实力。根据4.4节中建立的数学模型的目标函数,目标是使所有订单的最大完成时间和所有出库订单的总延迟时间最小化。因此,每个国家的成本可由式(4)计算:

在ICA中,一个国家的成本越低,它就越强大。因此,国家的实力与式(4)成反比。为了防止分母趋近于零,这对方程没有意义,在分母上加1。因此,国家cn的成本为式(5):。

根据订单调度模型,符号如表3所示。根据4.4节的约束条件,解码过程如下:

(1)每个阶段的设备是根据每一个进站或出站任务的顺序和堆垛机/叉车的顺序来确定的。入/出作业的每个阶段只能在一台堆垛机或铲车上完成。如果在同一台设备上执行两个任务,则这两个任务是依次相关的。

(2)对于存在的每个操作阶段,表示在Stage中完成任务 i 的最早完成时间。这意味着任务下一阶段允许的最早开始时间不能小于任务上一阶段的最早完成时间。具体来说,当堆垛机或叉车分两个顺序执行任务时,第二个任务必须等待前一个任务完成

(3)记录 阶段中匹配的堆垛机和叉车的闲置时间以及设备的闲置时间[t1, t2]。

就是说只有满足了, 才可以开始这一阶段的操作, 并且。否则,就要检查设备下次闲置的时间。如果所有阶段都不满足条件,则该阶段的操作应等待结束,等待结束后的启动时间为,其中为堆垛机或叉车上一个任务的完成时间。

(4)各操作阶段的完成时间,这意味着最早完成时间Ik与最早开始时间和在设备上花费的时间有关。

(5)计算叉车或堆垛机作业的开始时间和完成时间,并根据入站流程和出站流程的差值计算出货物的总作业时间。

(6)计算每个订单的总完成时间,即该订单中最后一个任务的完成时间。对于出站订单,应计算每个订单的总延迟时间

5.2. 帝国内部的同化和更新(步骤2)

5.2.1. 帝国和殖民地的交叉

在出站订单优先调度过程中,出站任务应该在入站任务之前执行。因此,他们的计划代码是独立的,正如他们的帝国主义和殖民地之间的交叉。如图8所示,步骤如下:。

(1)随机选择两个交叉点。(2)将从帝国主义代码中选取的片段复制到殖民地代码中的相应位置,并将替换后的片段从殖民地的原始代码中删除。(3)将该殖民地的其余代码复制到序列中新殖民地的相应位置。

在复合订单调度过程中,出库订单与入库订单需要交叉,如图9所示。帝国主义和殖民地的观点是同时交叉的

5.2.2. 殖民地突变

交叉后,群体本身需要进行一次革命,以保证群体所代表的解的多样性,防止算法陷入局部最优。旋转过程可以借鉴遗传算法的变异操作,即群体在交叉后可以在单点进行交换、插入和变异。

出库订单调度和复合订单调度的变化情况如图10和图11所示。在对复合订单调度的交换插入行为进行编码时,进站或出站订单和叉车的顺序随机选择代码段并交换其位置或依次插入。在本研究中,单点突变只发生在三/双编码的第二个序列(叉车序列)中。

帝国内部同化的有效性可以通过计算汉明距离来估计。如果汉明距离大于设定值,则殖民地应再次被同化。否则,同化过程就完成了。当帝国内部同化结束后,需要对帝国主义和殖民地进行检查,更新符合交换条件的帝国主义和殖民地。

5.4. 算法的终止(步骤4)

在本文中,算法在迭代次数达到500次时终止。此外,通过计算每个剩余帝国的权力值,选择最强大的帝国主义者作为最优解。

6. 实际案例

6.1. 背景

本文研究的A企业是TCL集团和创维集团的零部件供应商,主要从事家用电器、信息通信产品的制造。随着企业规模的扩大,物料和产品的增加,该企业越来越重视稀缺资源的优化,采用自动化仓库来提高企业物流效率,降低物流成本。但由于企业的入/出订单种类繁多,设备数量较少,需要改进调度策略和解决算法。我们采用改进的DICA对上述两种企业订单调度策略进行了仿真和比较。

通过模拟a企业某仓库的进站订单和出站订单数据,得到了3个进站订单R1-R3)和8个出库订单(C1-C8)。数据如表4所示。11个已记录订单(307个任务)的货物坐标见附录表A1。

6.2. 计算出站订单的优先级值

假设三个指标的重要顺序为判断矩阵可根据第4.3节获得。最大特征值表示三个索引的权重。因此,优先级值函数为

出库订单各指标计算见表5。根据每个订单的优先级值,得到同期到达订单的顺序。

根据表5最后一列的顺序,出库订单优先级调度顺序如图12所示。首先,调度系统对出库订单C1-C4进行排序。当入站订单R1和R2到达时,执行R1和R2。然后执行出站订单C6-C8,然后执行进站订单R3。

复合顺序调度顺序如图13所示。出站订单的顺序保持不变。在此基础上,R1搭C1便车,R3搭C5便车C5。

6.3. 算法参数

根据Abdollahi, Isazadeh,和Abdollahi(2013)和Nour- mohammadi, Zandieh,和Tavakkoli(2013),改进后的DICA的参数设置为:帝国/国家数量为30/350,殖民地影响因子为0.2,迭代次数为500,汉明距离:编码长度为1:2。

通过大量试验得到了遗传算法的最优参数,其中迭代次数为500次,总体为35次,突变率为0.4,交叉率为0.01。

6.4. 算法比较

6.4.1.解决方案质量

为了验证改进的遗传算法的有效性,我们将其与真实最优遗传算法和最成熟遗传算法的结果进行了比较。“真最优”是指企业A不使用启发式算法的时间。

应用改进的DICA和遗传算法分别模拟出站订单优先级调度和复合订单调度过程200次,可记录单单订单的最优完成时间、所有订单的总完成时间(TC)和出站订单的总延迟时间(TT)。数据如表6所示。

从表6可以看出,遗传算法和改进的DICA都可以优化订单完成时间、TC和TT。改进后的DICA求解单阶的完成时间比遗传算法的完成时间短。改进DICA求解的TC虽然比遗传算法求解的TC略短,但TT显著降低。此外,对于两种调度策略,改进的DICA在复合顺序调度中比遗传算法减少了更多的时间。也就是说,改进后的DICA在解决复杂问题方面比遗传算法更有优势。

6.4.2. 收敛速度

从图14和图15的分析可以看出,在两种调度策略中,遗传算法的收敛速度都要快于改进的DICA算法。

结果与Marandi和Ghomi(2019)和Kumar, Tyagi,和Kumar(2018)的结论相反。这源于改进后的DICA同化过程的改进。改进的同化需要经过各个国家和殖民地,而更好的解决方案只能在同化过程中产生,并通过帝国更新过程获得。此外,利用汉明距离来判断各个同化过程的质量。如果汉明距离不小于阈值,则需要重新同化,这将影响算法的速度。

但是,通过选择合适的突变率和交叉率,可以调整遗传算法的搜索范围,从而得到更好的解。结果表明,与遗传算法相比,改进的遗传算法在寻找新的最优解过程中更加彻底,时间间隔更长,收敛速度更慢。

6.5. 两种调度策略的比较

将入站订单数量增加到15个,出站订单数量增加到5个。订单数据见附录表A2。表7给出了两种策略下改进DICA求解单单订单、TC和TT最优完成时间的差异。

在增加入站和出站订单数量后,两种调度策略的优缺点如下:。

(1)对于C1-C4,与复合订单调度相比,出库订单优先级调度可以节省更多的时间。当优先处理出站订单时,可以快速释放仓库的存储区域,为新的入站订单腾出空间。因此,可以避免多个顺序的混淆。然而。入站订单R1的完成时间延长。

(2)对于C5-C15,复合订单调度的单订单完成时间比出站订单优先级调度的完成时间短。从广义上看,复合订单调度比出站订单优先级调度更节省时间,更合理地分配资源。

(3)虽然两种策略的总完成时间非常接近,但复合订单调度可以大大降低出库订单的总延迟时间。

8. 结论

通过分析自动化仓库的入库和出库流程,设计了出库订单优先级调度和复合订单调度两种调度策略,使所有订单的总完成时间和出库订单的总延迟时间最小化。为了对同时到达的多个任务进行排序,引入了顺序重要性和相对截止时间组合影响的优先级值以及任务数量。为了解决多目标优化问题,对DICA进行了改进。然后,结合实例,采用改进的DICA和遗传算法对两种调度策略进行了计算。主要有五个发现。(1)在任务较多的情况下,复合订单调度可以缩短所有订单的完成时间,减少出库订单的迟滞,提高设备的利用率。(2)在任务数量较少的情况下,出库订单优先级调度可以快速释放仓库的存储区域。(3)在两种调度策略中,改进的DICA收敛速度比遗传算法慢。(4)与遗传算法相比,改进后的DICA能更好地缩短单单订单的完成时间和出库订单的总延迟时间。(5)改进的DICA在解决复杂的复合顺序调度问题上比遗传算法更有优势。

尽管有这些有趣的发现,但也有一些局限性。对于该模型,本文设计的复合订单调度虽然可以提高仓库设备的利用率,但不能实现利用率最大化。从算法优化的角度来看,在改进的DICA同化过程中,如果帝国与殖民地之间的汉明距离不小于阈值,则需要重新同化,导致内部同化周期过多,会影响算法的速度。此外,本文的结果仅与遗传算法进行比较,与其他启发式算法相比可能会得到不同的结果。

在未来,我们可以进一步探索如何应用DICA来最大限度地利用自动化仓库的设备,并优化算法的质量和效率,使DICA优于大多数算法。

自动化仓库订单调度的改进型离散帝国主义竞争算法相关推荐

  1. 智能优化算法:帝国主义竞争算法-附代码

    智能优化算法:帝国主义竞争算法-附代码 文章目录 智能优化算法:帝国主义竞争算法-附代码 1.算法原理 1.1 帝国集团的初始化 1.2 帝国集团内部调整 1.3 交换帝国和殖民地的位置 1.4 帝国 ...

  2. 基于帝国主义竞争算法(ICA)求解旅行商问题(TSP)(Matlab代码实现)

  3. 【优化求解】基于帝国主义竞争算法ICA求解单目标问题Matlab源码

    1 简介 2 部分代码 function Empires=UniteSimilarEmpires(Empires,AlgorithmParams,ProblemParams) %联合相似的帝国,距离相 ...

  4. 用帝国主义竞争算法(ICA)求解旅行商问题(TSP)(Matlab代码实现)

     

  5. 【车间调度】基于改进帝国企鹅算法求解车间调度问题附matlab代码

    1 内容介绍 传统车间调度问题仅仅考虑工件的分配问题.而柔性车间调度问题在传统车间调度问题上做了一定的延伸,它更接近实际生产过程的原因是由于其在传统车间调度问题中加入了对加工机器的选择.因此对其的研究 ...

  6. MATLAB帝国(主义)竞争算法求解超市物流配送选址问题实例

    帝国竞争算法编程问题实例: MATLAB帝国竞争算法求解超市物流配送选址问题代码实例 在范围为(0,0)到(100,100)的矩形区域内,散布着40个连锁超市,各个连锁超市的坐标及需求量见表1.要求在 ...

  7. 帝国竞争算法(Imperialist Competitive Algorithm, ICA)

    帝国竞争算法(Imperialist Competitive Algorithm, ICA) 本文提出了一种受帝国主义竞争启发的优化算法.与其他进化算法一样,该算法从初始种群开始.被称为国家的人口有两 ...

  8. 帝国竞争算法(imperialist competitive algorithm, ICA )详解+Java代码实现

    前言 这段时间用过这个算法做过相关的工作,今天就介绍一下吧.虽然感觉效果嘛,勉勉强强啦.不过每种算法肯定有其适用的地方,用到了就Mark一下方便后人吧~ 介绍 帝国竞争算法(imperialist c ...

  9. 【数据分析进阶】DCIC竞赛-task56 订单调度分析

    [数据分析进阶]DCIC竞赛-task5&6 订单调度分析 task5 订单调度分析 经纬度转换相关知识 经纬度编码 订单调度分析 思考 task 06 分析报告撰写 分析报告撰写 报告撰写建 ...

最新文章

  1. Linux运维需要知道的Redis经验
  2. python 机器移植
  3. JAVA 海啸_java线程总结
  4. 邊做邊學 Internet Explorer 8:瞭解 IE8 相容性技術
  5. sqlserver2005分布式架构负载
  6. SAP 电商云 Spartacus Schematics 开发环境搭建
  7. nginx针对某个url限制ip访问,常用于后台访问限制
  8. 【汇总推荐】深度学习、自然语言处理干货笔记汇总
  9. 怎么用软件测试PSP硬件,PSP适用FC模拟器从安装到使用全面教程
  10. Java、JSP网上购物系统
  11. 汽车租赁管理系统的设计与实现(JSP+SqlServer在线租车网站)
  12. 修改root用户文件权限为普通用户
  13. 【已解决】华为手机USB调试和监控ADB安装应用的选项变成了灰色如何解决 | 华为荣耀9手机USB调试和监控ADB安装应用选项变成了灰色怎么办
  14. JS滑动滚动的n种方式
  15. matlab中ref代表什么,化妆品ref什么意思
  16. VUE3 watch写法与属性
  17. 【uni-app高级实战】手把手带你学习一个纯实战复杂项目的开发1/100
  18. 使用unity的mesh绘制三菱柱的碰撞体(3d三角形)
  19. 华为电脑怎么录屏?分享你两个好方法
  20. MDK5(Keil5)新建一个新空白工程模板

热门文章

  1. Android Activity生命周期★
  2. h1z1亚服服务器位置,h1z1欧服服务器在哪儿quest; | 手游网游页游攻略大全
  3. 从零开始搭建公司大型SaaS 平台架构技术栈,这套架构绝了!
  4. 【系统安全学习4】口令破解
  5. matlab打开eps文件_如何在Windows上打开EPS图像文件
  6. 【C#+打印组件】实现电商快递单打印系统 一:功能展示、系统介绍(附源码和资源)
  7. 多业务线亿级体量,携程的账务数据中台实践
  8. 区块链信用机制与应用场景介绍
  9. 随机数类Random
  10. 小鱼征服鼠标宏—第一天—获取鼠标x,y坐标实时动态