用于物流的订单排序优化方法与流程

文档序号:12735225阅读:1014来源:国知局
用于物流的订单排序优化方法与流程

本发明涉及用于利用机器人自动化存取仓库内货物的物流系统,具体涉及用于物流的订单排序优化方法。



背景技术:

目前,智能仓储是根据订单的需求,仓库后台将订单进行分类汇总,然后用机器人将商品所在货柜从仓储区拣取出来,并运送到货物分拣区,最后由分拣区域的工作人员从货柜的SKU中分拣出当前订单所需商品的数量,订单完成后装箱出库。

在现有技术中,承担以上功能的典型例子为亚马逊的kiva机器人,但由于机器人一次性是取整个货架,而货架上的其他物品并非都是此次订单所需要的,那些不需要的商品由于无法被其他订单所使用,因此会导致效率变差。



技术实现要素:

鉴于目前存在的订单中商品无法被并发使用而导致的效率变差问题,本发明提供用于物流的订单排序优化方法即基于进化算法的智能仓储订单排序的方法,其技术方案如下。

用于物流的订单排序优化方法,其具体包括:对仓库存储系统与物品存放进行布局;获取当前仓库库存信息及需进行处理的订单内容;对订单进行排序优化,排序优化过程包括:(1)由于同一类商品可能存放在多个不同的货柜中,在进行订单排序优化之前,根据订单中的商品保质期、订单中商品所在货柜的商品剩余数量或货柜的远近距离去确定订单中相应商品应从哪个货柜中取出;(2)对于确定了商品的取货货柜后的订单进行优化排序,为了减小商品的来回运输,提高商品取出后的使用效率和次数,运用进化计算的优化方法对订单进行优化排序,使具有相同商品的订单尽量排在相邻位置,从而可以重复利用已取出商品,避免来回运输商品而造成排单效率的低下。本发明以小组学习的改进教学算法为优化工具,构建学习小组概念扩大算法搜索范围,使优化计算避免陷入局部最优,也使得收敛精度大大增加。

进一步地,所述对仓库存储系统与物品存放进行布局具体是:

仓库中存放有mxn个货柜,n为行数,m为列数;每个货柜有自己的ID号;以仓库的一个位置为坐标原点建立坐标系,在该坐标系统中每个货柜的位置定义为(Pxi,Pyi),Pxi和Pyi为该货柜与坐标轴的距离,i为货柜的ID编号;所述距离以米为单位;在每个货柜上有一个或多个SKU(stock keeping unit的简称,为库存进出计量的基本单元,以件、盒、托盘等为单位),每个SKU中存放同一种类的商品;

仓库中存在SP个分拣口,每个分拣口同时能分拣OrderNum个订单,只有当某一分拣订单被完成时,才能往分拣口加入下一个被分拣的订单;第i个分拣口在坐标系中对应坐标定义为(POxi,POyi);物流自动化采用机器人将货柜从仓储区送到每个分拣口,分拣人员从中取出所需的商品后,机器人即马上将货柜运走,而该商品可能在随后的订单中仍被需要,这样将花费大量的搬运时间成本,因此给每个分拣口配一个s1xs2的缓存架,即该缓存架包含s1层,每层具有s2个格子,用于缓存货柜,机器人将货柜从仓储区送到每个分拣台并分拣;仓库存储系统的后台服务器判断该货柜中的商品在随后k个订单内是否被再次需要分拣,若不需要,则机器人将其运回货架;否则,则放入缓存架中,以备之后的需要该货柜中商品的订单在分拣时直接取用;若放入缓存架后缓存架不满,则直接放入;若放入后缓存架满了,则对缓存柜s1xs2个格中的货柜判断哪一个货柜中的商品会被随后的订单序列最晚被需要,则机器人将该货柜送回仓储区;从而保证在整个分拣过程中,缓存柜至少有一个格是空着的。

进一步地,所述获取当前仓库库存信息及需进行处理的订单内容具体包括:

获取物流初始信息,该初始信息包括当前仓库商品库存信息、分拣口当前仍未分拣完的订单信息、需优化的订单和订单信息;所述当前仓库商品库存信息具体包括获取仓库中所有的货柜ID及其坐标、每个货柜包括的SKU数量及每个SKU内存放商品的商品ID、商品数量与商品保质日期;所述的获取分拣口当前仍未分拣完的订单信息具体包括获取每个分拣口未完成的订单数量、这些订单所包含的商品ID及商品所需数量、此时缓存架中的货柜ID;所述的获取需优化的订单和订单信息具体如下:

需优化的订单的获取过程为:一批次处理N张订单的排序优化,订单的优化按照先下单先排序的准则进行;首先从N个订单中获取分拣商品ID和商品数量,判断需分拣的每种商品的库存量是否满足需求,若满足,此N个订单进行入待排序状态;若任意一种或多种商品库存量不够,则提醒仓储管理人员进行补货,并将此N个订单顺延到下一次再进行排序优化;同时重新提取随后N个订单对其信息商品库存的上述判断,否则重复上面的步骤直至N个订单的所需商品数量库存均能满足为止;

需优化订单的信息包括N个订单中每个订单所包含的商品ID及商品所需数量;订单在读取时按读取顺序对其进行1,…,N编号;在N个订单中被需要的所有商品各自被存放的货柜的ID。

进一步地,所述步骤(1)具体是:

在优化排序前需确定订单中各商品所用货柜ID,对于N个待排序订单序列,在保持分配后每个分拣口数量相当的条件下先将订单分配给每个分拣口,订单的分配分为两种模式,分别为启动模式和连续工作模式;再按照订单顺序根据订单中不同的商品为其采取保质期优先、商品剩余数量优先、距离优先三种策略中的一种为其选取所需的货柜。按照某种策略进行货柜选取后,若最优货柜商品数量不够订单需求,则需要同时再取次优货柜以满足不足部分,若次优货柜内包含的商品数量依旧不够,则同时需再取次次优,若再不满足则同理,直到满足该商品所需的数量;重复以上步骤直到给所有订单中所有的商品都确定好其所需货柜;

4.1:所述的订单分配的启动模式为:启动模式通常在每个新工作日的开始时;每个分拣口均在前一工作日完成了分配的任务,每个分拣口无未分拣完的订单,而每个分拣口的缓存架还维持着前一工作日工作完成时的状态;

4.2:所述的订单分配的连续工作模式为:启动模式之后的均为连续工作模式;在连续工作模式中,当某个分拣口剩余未分拣的订单数量不大于Ordernum个时后台给各分拣口分配订单并加在每个分拣口未分拣完的订单之后;

4.3:所述的货柜确定的三种策略的具体内容为:对于有保质期限制的商品采取保质期优先策略,保质期优先策略为优先分配距过期时间最短的存放该商品的货柜;对于数量多的商品采取商品剩余数量优先策略,商品剩余数量优先策略为优先分配库存该商品数量最少的货柜,以防止过多的货柜剩余商品数量同时降到货柜的补货临界点所导致的没及时补货而产生的商品总数量不足问题;对于大型商品采取距离优先策略,距离优先策略为优先分配离所需该商品的分拣口最近的货柜,该距离利用货柜和分拣口的欧式距离来求取。

进一步地,所述步骤(2)具体是:

5.1:订单的排序优化的问题描述:同一商品可能存放在多个货柜中或不同商品存放在同一货柜的不同SKU中,因此优化算法要求在订单排序前应先确定分拣商品时所用到的货柜ID号,将每个订单中的每个商品确定好其所用的货柜ID后,再对订单序列进行优化排序,使需要相同ID货柜的商品订单尽量排在同一分拣口,而不同分拣口的订单尽量不使用相同ID货柜,即同一分拣口的订单之间的相似程度高尽量高,而不同分拣口的订单之间的相似度尽量低;

5.2:所述的订单的优化排序问题的模型可描述为:优化算法对确定好使用货柜ID的订单序列进行优化排序,以得到效率最高的的订单序列,即优化目标函数f的值最高;模型的中的变量定义如下:

Ordernum:每一个分拣口同时可分拣的订单数量

SP:分拣口的数量

li:N个订单分配到第i个分拣口的数量

rei:第i个分拣口未完成订单数量(启动模式下为0)

Q1、Q2、P:加权系数,为正常数

pij:第i个分拣口的第j个订单,j=1,...,rei,...,rei+li

habc1,habc2:分别表示与pab交叉的第c个出口的下限与上限的订单编号

SNabcd:表示pab和pcd中包含所需相同ID货柜的商品数量

SSab:表示pab所需第a个分拣口的缓存架上货柜的商品数量

决策变量为:

优化模型如下:

目标函数:

约束条件:

min(rei,Ordernum)≤(1-z)·Ordernum 公式(4)

上述约束中公式(2)、公式(3)表示N个订单在在保持分配后每个分拣口数量相当的条件下将订单分配给每个分拣口;公式(4)表示在启动模式时,每个分拣口未分拣完订单数量均为0;在连续工作模式时,只有在某个分拣口待处理订单数量小于Ordernum时才会加入新的订单;

5.3:所述的问题的模型的优化目标函数f是由两部分组成,即同一分拣口的订单之间的相似性和不同分拣口之间的订单的相似性组成,f所表示的即为优化目标的适应度值;

所述的同一分拣口的订单之间的相似性定义如下:分配到同一个分拣口的订单之间相似性越高则适应值越高,同一分拣口的相似性具体如目标函数中的部分描述,此时决策变量xabcd=1,即a=c,b≠d;其中Q1,Q2为权重系数,而表示越相近的订单间的相似性对适应值的影响增大,同时,相距较远的订单间的相似性也仍具有一定的影响力,表示在启动模式下,还需将每个分拣口的前Ordernum个订单与该分拣口的缓存架进行比较;

所述的适应值的计算中不同分拣口之间的订单的相似性求取过程如下:分配到不同分拣口的订单之间相似性越低则适应值越高,这样可以保证同一货柜尽量不要被不同分拣口使用;假定每个商品处理的时间相当,则可将一个订单的被分拣时间段转化为其在订单序列中的位置,以商品为单位,某订单起始位置为订单中第一个商品所在该分拣口所有订单商品序列中的顺序号,而订单终止位置为该订单中最后一个商品所在该分拣口所有订单序列中的顺序号;获取其他分拣口的相同起点与终点位置间的所对应的订单,这些订单被称为与其交叉的订单;将与第a个分拣口的第b个订单交叉的第c个分拣口的订单编号下限与上限定义为(habc1,habc2);每个订单与其有交叉的订单进行比较,又因要考虑到机器人的搬运时间,因此将对比的范围扩大Δ个订单,即habc1=habc1-Δ,habc2=habc2+Δ,且habc1≥0,habc2≤lc;不同分拣口的相似性具体如目标函数中的部分描述,此时a≠c。当不同分拣口间的订单所需货柜起冲突时,也即两个在不同分拣口的订单会使用相同ID的货柜时,则采用一个惩罚函数,P取一个很大的正数,使其适应值减低;

6.4采用进化算法用于解决所述的订单的排序优化问题,具体采用的进化算法为基于学习小组的改进教学算法,算法具体如下:

教学算法是在教师对学生的课堂教学过程中,以达到最佳教学效果和提高班级学习质量为目的,而提取出的一种新型算法;教学算法也是一种群体智能进化算法,在整个群体中,每一代的最优个体为Teacher,每个个体通过学习更新自己;针对传统教学算法容易早熟收敛陷入局部最优的问题,引入学习小组的概念;将学生分为多个学习小组,每个小组分别有个Leader,充当教学算法中Teacher的角色;算法的流程为:

1)算法初始化;利用随机和启发式信息产生Np个学习小组,即子种群;每个小组(子种群)含有Popsize个成员,即种群大小为Np*Popsize;初始化迭代次数Gen,小组交换成员个数Iv=1;

2)对每个学习小组成员进行适应值评估,选出每个学习小组的Leader;

3)每个学习小组独立进化,依次进行教师教学阶段、学生相互学习阶段、学生自学习阶段的学习;

4)若每个学习小组连续五次迭代都没得到更优个体,则进行学习小组间成员交换;

5)若达到算法终止条件,则算法结束;否则转至5.1.2;

5.4.1所述的基于学习小组的改进教学算法中种群中成员的编码方式为:在进化算法中,每一个成员都对应于该问题的一个解;进化的过程即为由初始解逐步迭代产生新的优秀成员的过程;对于处理的N个订单,每个解即学习小组成员由染色体的基因表示,每个基因即为订单的编号,染色体长度为N,染色体基因的顺序决定了订单所分配的分拣口与被处理的顺序;根据公式(2)、公式(3),可得到l1,l2,...,lSP,将订单序列中前l1个订单分配给分拣口1,接下来的l2个订单分配给分拣口2,以此类推;如编码为912453876的长度为9的订单序列,分配给两个分拣口,两个分拣口分别还有3个与2个完成订单,则可知将前4个订单即9、1、2、4分配给分拣口1,后五个订单即5、3、8、7、6分配给分拣口2;

5.4.2所述的基于学习小组的改进教学算法中种群初始化的过程为:初始种群对进化算法收敛速度和准确性有重要的影响;初始种群质量不好,可能会大大增加算法的进化代数,导致计算效率降低,影响问题求取精度;本发明确定初始条件时,先通过对各商品所需频次进行统计,利用频次高到低的启发式信息对种群中的某个成员进行初始化,其他个体仍利用随机产生方式产生;

6.4.3:所述的基于学习小组的改进教学算法中学习小组成员交换的策略为:当进化连续迭代五次所有小组都没有进化得到更优的成员的时候,为改善学习氛围,进行学习小组成员交换,每次交换Iv个成员,成员的选择方式为轮盘赌选择法,交换完成后Iv=Iv+1,且Iv大小不能超过Popsize/2;该改进方式能很好的保证各种群的多样性,避免早熟收敛;

5.4.4:所述的基于学习小组的改进教学算法中教师教学阶段为:每一代中最优的个体作为教师,负责引领种群进行进化;用下式描述子种群和教师之间的差距:

Difference_Meani=ri(Mnew-TFMi) 公式(5)

其中,TF表示教学因子,TF=[1+round(0,1)],ri为[0,1]间的随机数;Mi为第i代的平均水平,Mnew表示期望的下一代的平均水平,一般取当前种群的最优个体;

在教师阶段,每个学生根据Difference_Meansi按照下式进行学习:

Xnew,j=Xold,j+Difference_Meansi 公式(6)

其中Xnew,i,Xold,i表示更新前后的第i代的第j个个体;只有当学生的水平有所提高的时候,即适应值更优时,当前的学习过程才会被接受;

5.4.5:所述的基于学习小组的改进教学算法中学生相互学习阶段为:学生除了会向老师学习以外,还会相互进行学习,从而相互影响共同进步;学生相互学习阶段的过程即是随机选择两个学生进行交叉操作,这个过程同样只有当学生水平有所提高时才被接受;

5.4.6:所述的基于学习小组的改进教学算法中学生自学习阶段为:除了会向他人学习以外,学生还具有自学的能力;优秀的学生自我学习的能力更强,因此学习的次数更多,同时学习能力差的学生,也会给予其一定的学习机会以提高自己;因此将学习次数定义在一个范围[Smin,Smax],根据公式(7)计算获得每个个体的学习次数:

其中LA(i)=f(i)/max(f(i))表示第i个个体的学习能力,f(i)为第i个个体的适应值;考虑到运行的效率,取Smin=1,Smax=15,Smean=(Smin+Smax)/2;每个个体根据自学习算子进行各自学习次数的学习,从多次的学习中选择最优的那个方向进行进化,即用某个个体邻域中的最优个体替换当前个体;

5.4.7:所述的基于学习小组的改进教学算法中教师教学阶段和学生相互学习阶段采用的交叉算子为:为保证后代中的染色体不会产生基因的重叠与缺失,交叉算子采取基于位置的交叉算子;即在parent1中随机选择若干个位置的基因并按照其在parent1中的位置继承给子代,并将parent2中未被parent1选中的基因按顺序添加到子代的欠缺的基因中;

5.4.8:所述的基于学习小组的改进教学算法中学生自学习阶段采用的自学习算子为:自学习算子采用单点交叉算子、倒位算子与移位算子。所述的自学习算子中单点交叉算子为:随机选取两个基因位,交换其位置,单点交叉对于个体的改变较小;所述的自学习算子中倒位算子为:随机选取两个基因位,对两个位置间的基因进行字符串反转操作;所述的自学习算子中移位算子为:随机选取两个基因位,对两个位置间的基因进行循环左移一位的操作。

与现有技术相比,本发明具有如下优点和技术效果:本发明解决了物流过程订单商品的取货效率最优的问题。由于同一类商品可能存放在多个不同的货柜中,在进行订单排序优化之前,根据订单中的商品保质期、订单中商品所在货柜的商品剩余数量或货柜的远近距离去确定订单中相应商品应从哪个货柜中取出;二是:对于确定了商品的取货货柜后的订单进行优化排序。为了减小商品的来回运输,提高商品取出后的使用效率和次数,运用进化计算的优化方法对订单进行优化排序,使具有相同商品的订单尽量排在相邻位置,从而可以重复利用已取出商品,避免来回运输商品而造成排单效率的低下。其中本发明使用的进化算法为以小组学习的改进教学方法,利用所构建的学习小组概念扩大算法搜索范围,使优化计算避免陷入局部最优,也使得收敛精度大大增加。

附图说明

图1为实例中仓库的构造与布局图。

图2为实例中订单序列优化排序系统整体流程图。

图3为实例中订单间对比的说明图。

图4为实例中基于学习小组的改进教学算法的流程图。

图5为实例中交叉操作示意图。

图6为实例中自学习操作示意图。

具体实施方式

前面发明内容部分已对本发明作了详细描述,下面再结合附图进一步说明本发明的实现,以下内容只作为实施例,并不是对本发明保护范围的限定。

1.用于物流的订单排序优化系统和方法具体包括:相关的仓库存储系统与物品存放布局的描述;获取当前仓库库存信息及进行处理的订单内容;订单的排序优化,其过程包括两方面,一是:确定订单中商品的取货货柜。由于同一类商品可能存放在多个不同的货柜中,在进行订单排序优化之前,根据订单中的商品保质期、订单中商品所在货柜的商品剩余数量或货柜的远近距离去确定订单中相应商品应从哪个货柜中取出;二是:对于确定了商品的取货货柜后的订单进行优化排序。为了减小商品的来回运输,提高商品取出后的使用效率和次数,运用进化计算的优化方法对订单进行优化排序,使具有相同商品的订单尽量排在相邻位置,从而可以重复利用已取出商品,避免来回运输商品而造成排单效率的低下。本发明以小组学习的改进教学算法为优化工具,构建学习小组概念扩大算法搜索范围,使优化计算避免陷入局部最优,也使得收敛精度大大增加。

2.如图1所示。如上所述的用于物流的订单排序优化系统和方法,相关的仓库存储系统与物品存放布局具体如下:

2.1:本系统仅根据物流所需发货的订单商品内容,考虑商品的取货的约束条件,进行商品取货货柜ID的确定和发货订单的先后排序。

2.1.1:商品的取货约束条件为商品保质期、订单中商品所在货柜的商品剩余数量或货柜的远近距离。

2.2:仓库中存放有mxn个货柜,n为行数,m为列数。每个货柜有自己的ID号。以仓库某个位置为坐标原点建立坐标系,在该坐标系统中每个货柜的位置定义为(Pxi,Pyi),Pxi和Pyi为该货柜与坐标轴的距离,i为货柜的ID编号。本系统中设计的距离以米为单位。在每个货柜上有一个或多个SKU(stock keeping unit的简称,为库存进出计量的基本单元,以件、盒、托盘等为单位),每个SKU中存放同一种类的商品。

2.3:仓库中存在SP个分拣口,每个分拣口同时能分拣OrderNum个订单,只有当某一分拣订单被完成时,才能往分拣口加入下一个被分拣的订单。第i个分拣口在坐标系中对应坐标定义为(POxi,POyi)。物流自动化采用机器人将货柜从仓储区送到每个分拣口,分拣人员从中取出所需的商品后,机器人即马上将货柜运走,而该商品可能在随后的订单中仍被需要,这样将花费大量的搬运时间成本,因此给每个分拣口配一个s1xs2的缓存架,即该缓存架包含s1层,每层具有s2个格子,其用于缓存货柜,机器人将货柜从仓储区送到每个分拣台并分拣。根据订单排序优化的结果,系统判断该货柜中的商品在随后k个订单内是否被再次需要分拣,若不需要,则机器人将其运回货架;否则,则放入缓存架中,以备之后的需要该货柜中商品的订单在分拣时直接取用。若放入缓存架后缓存架不满,则直接放入;若放入后缓存架满了,则对缓存柜s1xs2个格中的货柜判断哪一个货柜中的商品会被随后的订单序列最晚被需要,则机器人将该货柜送回仓储区。从而保证在整个分拣过程中,缓存柜至少有一个格是空着的。

3.如上所述的用于物流的订单排序优化系统和方法,获取物流的订单排序优化系统的初始信息,该初始信息包括获取当前仓库商品库存信息、分拣口当前仍未分拣完的订单信息、需优化的订单和订单信息:

3.1:获取当前仓库商品库存信息具体包括获取仓库中所有的货柜ID及其坐标、每个货柜包括的SKU数量及每个SKU内存放商品的商品ID、商品数量与商品保质日期。

3.2:获取分拣口当前仍未分拣完的订单信息具体包括获取每个分拣口未完成的订单数量、这些订单所包含的商品ID及商品所需数量、此时缓存架中的货柜ID。

3.3:获取需优化的订单和订单信息具体如下:

3.3.1获取所需优化的订单具体内容为:系统一批处理N张订单的排序优化,订单的优化按照先下单先排序的准则进行。首先从N个订单中获取分拣商品ID和商品数量,判断需分拣的每种商品的库存量是否满足需求,若满足,此N个订单进行入待排序状态;若任意一种或多种商品库存量不够,则提醒仓储管理人员进行补货,并将此N个订单顺延到下一次再进行排序优化。同时重新提取随后N个订单对其信息商品库存的上述判断,否则重复上面的步骤直至N个订单的所需商品数量库存均能满足为止。

3.3.2:获取所需优化订单的信息包括获取N个订单中每个订单所包含的商品ID及商品所需数量。订单在读取时按读取顺序对其进行1,…,N编号。获取在N个订单中被需要的所有商品各自被存放的货柜的ID。

4.如上所述的用于物流的订单排序优化系统和方法,订单的排序优化系统的流程图如图2所示,具体内容如下:

4.1:订单的排序优化系统的问题描述:同一商品可能存放在多个货柜中或不同商品存放在同一货柜的不同SKU中,因此优化算法要求在订单排序前应先确定分拣商品时所用到的货柜ID号,将每个订单中的每个商品确定好其所用的货柜ID后,再对订单序列进行优化排序,使需要相同ID货柜的商品订单尽量排在同一分拣口,而不同分拣口的订单尽量不使用相同ID货柜,即同一分拣口的订单之间的相似程度高尽量高,而不同分拣口的订单之间的相似度尽量低。

4.2:在优化排序前确定订单中各商品所用货柜ID的具体过程为:对于N个待排序订单序列,在保持分配后每个分拣口数量相当的条件下先将订单分配给每个分拣口,订单的分配分为两种模式,分别为启动模式和连续工作模式。再按照订单顺序根据订单中不同的商品为其采取保质期优先、商品剩余数量优先、距离优先三种策略中的一种为其选取所需的货柜。按照某种策略进行货柜选取后,若最优货柜商品数量不够订单需求,则需要同时再取次优货柜以满足不足部分,若次优货柜内包含的商品数量依旧不够,则同时需再取次次优,若再不满足则同理,直到满足该商品所需的数量。重复以上步骤直到给所有订单中所有的商品都确定好其所需货柜。

4.2.1:订单分配的启动模式为:启动模式通常在每个新工作日的开始时。每个分拣口均在前一工作日完成了分配的任务,每个分拣口无未分拣完的订单,而每个分拣口的缓存架还维持着前一工作日工作完成时的状态。

4.2.2:订单分配的连续工作模式为:启动模式之后的均为连续工作模式。在连续工作模式中,当某个分拣口剩余未分拣的订单数量不大于Ordernum个时后台给各分拣口分配订单并加在每个分拣口未分拣完的订单之后。

4.2.3:货柜确定的三种策略的具体内容为:对于有保质期限制的商品采取保质期优先策略,保质期优先策略为优先分配距过期时间最短的存放该商品的货柜;对于数量多的商品采取商品剩余数量优先策略,商品剩余数量优先策略为优先分配库存该商品数量最少的货柜,以防止过多的货柜剩余商品数量同时降到货柜的补货临界点所导致的没及时补货而产生的商品总数量不足问题;对于大型商品采取距离优先策略,距离优先策略为优先分配离所需该商品的分拣口最近的货柜,该距离利用货柜和分拣口的欧式距离来求取。

4.3:如上所述优化排序问题的模型可描述为:优化算法对确定好使用货柜ID的订单序列进行优化排序,以得到效率最高的的订单序列,即优化目标函数f的值最高。模型的中的变量定义如下:

Ordernum:一个分拣口同时可分拣的订单数量

SP:分拣口的数量

li:N个订单分配到第i个分拣口的数量

rei:第i个分拣口未完成订单数量(启动模式下为0)

Q1、Q2、P:加权系数,为正常数

pij:第i个分拣口的第j个订单,j=1,...,rei,...,rei+li

habc1,habc2:分别表示与pab交叉的第c个出口的下限与上限的订单编号

SNabcd:表示pab和pcd中包含所需相同ID货柜的商品数量

SSab:表示pab所需第a个分拣口的缓存架上货柜的商品数量

决策变量为:

优化模型如下:

目标函数:

约束条件:

min(rei,Ordernum)≤(1-z)·Ordernum 公式(11)

上述约束中公式(9)、公式(10)表示N个订单在在保持分配后每个分拣口数量相当的条件下将订单分配给每个分拣口。公式(11)表示在启动模式时,每个分拣口未分拣完订单数量均为0;在连续工作模式时,只有在某个分拣口待处理订单数量小于Ordernum时才会加入新的订单。

4.4:如上模型的优化目标函数是由两部分组成即同一分拣口的订单之间的相似性和不同分拣口之间的订单的相似性组成,f所表示的即为适应度值。

4.4.1:适应值的计算中同一分拣口的订单之间的相似性定义如下:分配到同一个分拣口的订单之间相似性越高则适应值越高,同一分拣口的相似性具体如上所述目标函数中的部分描述,此时决策变量xabcd=1,即a=c,b≠d。其中Q1,Q2为权重系数,而表示越相近的订单间的相似性对适应值的影响增大,同时,相距较远的订单间的相似性也仍具有一定的影响力,表示在启动模式下,还需将每个分拣口的前Ordernum个订单与该分拣口的缓存架进行比较。

4.4.2:适应值的计算中不同分拣口之间的订单的相似性求取过程如下:分配到不同分拣口的订单之间相似性越低则适应值越高,这样可以保证同一货柜尽量不要被不同分拣口使用。假定每个商品处理的时间相当,则可将一个订单的被分拣时间段转化为其在订单序列中的位置,以商品为单位,某订单起始位置为订单中第一个商品所在该分拣口所有订单商品序列中的顺序号,而订单终止位置为该订单中最后一个商品所在该分拣口所有订单序列中的顺序号。获取其他分拣口的相同起点与终点位置间的所对应的订单,这些订单被称为与其交叉的订单。将与第a个分拣口的第b个订单交叉的第c个分拣口的订单编号下限与上限定义为(habc1,habc2)。每个订单与其有交叉的订单进行比较,又因要考虑到机器人的搬运时间,因此将对比的范围扩大Δ个订单,即habc1=habc1-Δ,habc2=habc2+Δ,且habc1≥0,habc2≤lc。不同分拣口的相似性具体如中目标函数中的部分描述,此时a≠c。当不同分拣口间的订单所需货柜起冲突时,也即两个在不同分拣口的订单会使用相同ID的货柜时,则采用一个惩罚函数,P取一个很大的正数,使其适应值减低。

5.如上所述的用于物流的订单排序优化系统和方法,订单的排序优化系统的所采用的进化算法为基于学习小组的改进教学算法。具体如下:

5.1:教学算法是在教师对学生的课堂教学过程中,以达到最佳教学效果和提高班级学习质量为目的,而提取出的一种新型算法。教学算法也是一种群体智能进化算法,在整个群体中,每一代的最优个体为Teacher,每个个体通过学习更新自己。针对传统教学算法容易早熟收敛陷入局部最优的问题,引入学习小组的概念。将学生分为多个学习小组,每个小组分别有个Leader,充当教学算法中Teacher的角色。基于学习小组的改进教学算法的流程图如图4所示,算法流程为:

5.1.1:算法初始化。利用随机和启发式信息产生Np个学习小组,即子种群。每个小组(子种群)含有Popsize个成员,即种群大小为Np*Popsize。初始化迭代次数Gen,小组交换成员个数Iv=1。

5.1.2:对每个学习小组成员进行适应值评估,选出每个学习小组的Leader。

5.1.3:每个学习小组独立进化,依次进行教师教学阶段、学生相互学习阶段、学生自学习阶段的学习。

5.1.4:若每个学习小组连续五次迭代都没得到更优个体,则进行学习小组间成员交换。

5.1.5:若达到算法终止条件,则算法结束;否则转至5.1.2。

5.2:基于学习小组的改进教学算法中种群中成员的编码方式为:在进化算法中,每一个成员都对应于该问题的一个解。进化的过程即为由初始解逐步迭代产生新的优秀成员的过程。对于处理的N个订单,每个解即学习小组成员由染色体的基因表示,每个基因即为订单的编号,染色体长度为N,染色体基因的顺序决定了订单所分配的分拣口与被处理的顺序。根据公式(9)、公式(10),可得到l1,l2,...,lSP,将订单序列中前l1个订单分配给分拣口1,接下来的l2个订单分配给分拣口2,以此类推。如编码为912453876的长度为9的订单序列,分配给两个分拣口,两个分拣口分别还有3个与2个完成订单,则可知将前4个订单即9、1、2、4分配给分拣口1,后五个订单即5、3、8、7、6分配给分拣口2。

5.3:基于学习小组的改进教学算法中种群初始化的过程为:初始种群对进化算法收敛速度和准确性有重要的影响。初始种群质量不好,可能会大大增加算法的进化代数,导致计算效率降低,影响问题求取精度。本发明确定初始条件时,先通过对各商品所需频次进行统计,利用频次高到低的启发式信息对种群中的某个成员进行初始化,其他个体仍利用随机产生方式产生。

5.4:基于学习小组的改进教学算法中学习小组成员交换的策略为:当进化连续迭代五次所有小组都没有进化得到更优的成员的时候,为改善学习氛围,进行学习小组成员交换,每次交换Iv个成员,成员的选择方式为轮盘赌选择法,交换完成后Iv=Iv+1,且Iv大小不能超过Popsize/2。该改进方式能很好的保证各种群的多样性,避免早熟收敛。

5.5:基于学习小组的改进教学算法中教师教学阶段为:每一代中最优的个体作为教师,负责引领种群进行进化。用下式描述整个种群和教师之间的差距。

Difference_Meani=ri(Mnew-TFMi) 公式(12)

其中,TF表示教学因子,TF=[1+round(0,1)],ri为[0,1]间的随机数。Mi为第i代的平均水平,Mnew表示期望的下一代的平均水平,一般取当前种群的最优个体。

在教师阶段,每个学生根据Difference_Meansi按照下式进行学习。

Xnew,j=Xold,j+Difference_Meansi 公式(13)

其中Xnew,i,Xold,i表示更新前后的第i代的第j个个体。只有当学生的水平有所提高的时候,即适应值更优时,当前的学习过程才会被接受。

5.6:基于学习小组的改进教学算法中学生相互学习阶段为:学生除了会向老师学习以外,还会相互进行学习,从而相互影响共同进步。学生相互学习阶段的过程即是随机选择两个学生进行交叉操作,这个过程同样只有当学生水平有所提高时才被接受。

5.7:基于学习小组的改进教学算法中学生自学习阶段为:除了会向他人学习以外,学生还具有自学的能力。优秀的学生自我学习的能力更强,因此学习的次数更多,同时学习能力差的学生,也会给予其一定的学习机会以提高自己。因此将学习次数定义在一个范围[Smin,Smax],根据公式(14)计算获得每个个体的学习次数。

其中LA(i)=f(i)/max(f(i))表示第i个个体的学习能力,f(i)为第i个个体的适应值。考虑到运行的效率,取Smin=1,Smax=15,Smean=(Smin+Smax)/2。每个个体根据自学习算子进行各自学习次数的学习,从多次的学习中选择最优的那个方向进行进化,即用某个个体邻域中的最优个体替换当前个体。

5.8:基于学习小组的改进教学算法中教师教学阶段和学生相互学习阶段采用的交叉算子为:为保证后代中的染色体不会产生基因的重叠与缺失,交叉算子采取基于位置的交叉算子。即在parent1中随机选择若干个位置的基因并按照其在parent1中的位置继承给子代,并将parent2中未被parent1选中的基因按顺序添加到子代的欠缺的基因中。如图5所示,parent1中箭头所指为被选择的parent1中的基因位置,将其继承给子代,如child中箭头所指;再将parent2中未被parent1选中的基因,如parent2中箭头所指基因,按顺序添加到子代欠缺的基因中。

5.9:基于学习小组的改进教学算法中学生自学习阶段采用的自学习算子为:自学习算子采用单点交叉算子、倒位算子与移位算子。

5.8.1:自学习算子中单点交叉算子为:随机选取两个基因位,交换其位置,单点交叉对于个体的改变较小。如图6(1)所示。

5.8.2:自学习算子中倒位算子为:随机选取两个基因位,对两个位置间的基因进行字符串反转操作。如图6(2)所示。

5.8.1:自学习算子中移位算子为:随机选取两个基因位,对两个位置间的基因进行循环左移一位的操作。如图6(2)所示。

采用的实例为5x5的仓库,商品种类为25种,共有两个出口,处理订单数量N为50,一个分拣口同时可分拣订单数量Ordernum为3,缓存架大小为3x3,加权系数P、Q1、Q2分别为3、4、10,进行对比的为未采用学习小组策略的自学习教学算法,学习小组数量为3个,种群大小均为50,迭代次数为200代,独立运行10次。自学习教学算法得到的最优解适应值为1499.77,十次结果的平均值为1448.57,方差为1211.43;基于学习小组的教学算法得到的最优解适应值为1527.91,十次结果的平均值为1486.42,方差为566.69。可见,基于学习小组的教学算法的最优解、解的平均值、方差均优于自学习教学算法,因此其具有更强的搜索解的能力且寻优精度更好,表明本发明是可靠的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1