仓储系统中的订单任务调度方法与流程

文档序号:18399894发布日期:2019-08-09 23:46阅读:485来源:国知局
仓储系统中的订单任务调度方法与流程
本发明属于仓储
技术领域
,具体涉及一种订单任务调度方法,可用于仓储物流系统。
背景技术
:随着当今世界通信技术及信息技术的快速发展,互联网技术已融入到人们的日常生活中。尤其是数字经济、电子商务的崛起,逐渐改变了人们的传统消费习惯,网上购物已成为一种日常消费方式。而电子商务的迅速发展需要强大的快递物流系统做强有力的支持。在目前消费升级的市场压力下,订单处理的准确性及实时性要求,已成为限制智能仓储系统效率提升的重要瓶颈,尤其是仓储系统面向的消费者基数庞大,在促销时间段订单数量的急剧增加更是对仓储的订单处理方法提出了更高的要求。在传统的仓储系统中,采用较多的是“人到商品”的拣选模式,所谓人到商品的拣选模式就是拣选人员推着拣选车辆,同时携带系统分配的订单到指定的货架处拣选订单上相对应的具体商品。在该拣选模式中,一般为了提高拣选效率,系统会将涉及到具体商品位置的订单分配给一个分拣人员以提高系统的拣选效率。目前,随着智慧物流概念的提出,仓储系统的智能化水平不断提高,逐渐出现了以移动机器人代替分拣人员进行商品寻找的“商品到人”的拣选模式。在该分拣模式中,由移动机器人在仓库中移动,搬运存放商品的货架到分拣站台由分拣人员进行商品的拣选。整个系统处理流程可以描述如下:中央服务器接收用户产生的订单并调用订单处理模块进行处理;订单处理模块将订单分配给不同的分拣站台,并进行具体的任务调度,分配给移动机器人进行处理;移动机器人根据具体的任务移动到目标货架位置并将目标货架搬运到对应的分拣站台处;由分拣站台处的分拣人员进行目标商品的拣选;分拣完的货架由移动机器人再将其搬运回货架存储区。上述流程中的订单处理模块是智能仓储系统连接外部订单数据和内部系统具体任务的关键。其订单任务分配及调度的好坏将直接影响整个系统的稳定性和整体的效率。目前智能仓促系统中的订单调度主要有先来先服务、所有订单合并处理等方式,显然针对系统整体效率而言这些调度方式有较大的性能提升空间。纯粹的先来先服务的方式虽然对用户来说相对公平,但是并没有很好地利用订单中已知的信息,容易达到订单处理效率的瓶颈;而将所有订单进行合并处理的方式无疑会大大增加二次分拣的时间开销,而且需要等待所有订单到达后再进行整体的分拣,这明显增加了消费者的等待时间,影响了其购物体验。技术实现要素:本发明的目的在于针对上述现有的不足,提供一种仓储系统中的订单任务调度方法,以提高系统的稳定性,提升系统处理订单的效率,降低电商仓储的运行成本,并减少消费者的等待时间。为实现上述目的,本发明的技术方案如下:一种仓储系统中的订单任务调度方法,所述系统包括中央服务器、分拣站台、移动机器人和可移动货架,其特征在于,实现步骤包括如下:(1)中央服务器将接收到的订单放入到订单池中,(2)未达到满负荷的分拣站台向中央服务器发送订单请求,中央服务器收到分拣站台的订单请求后计算订单处理优先级;(3)取出订单并进行任务合并:3a)中央服务器根据订单处理优先级对订单池中的订单进行排序,从中取出优先级最高的订单分配给进行订单请求的第m个分拣站台stam;3b)分拣站台在请求到新的订单后,将订单中的每个具体商品和分拣站台中尚未处理的任务进行合并,以减少需要完成的具体任务数;(4)对具体任务进行调度并生成移动机器人的任务队列:4a)将待处理的具体任务抽象成一维数组的粒子模型,表述如下:其中表示第j个移动机器人rj当前正在执行的任务所对应的货架位置,如果该机器人当前空闲,则表示其当前所处的位置,j∈[1,nr],nr为当前分拣站台分配的移动机器人数量,gi表示第i个具体的任务对应的目标货架位置,i∈[1,tg],tg表示需要调度的任务总数;4b)粒子位置及粒子数量的初始化:采用启发式与随机初始化相结合的方式进行粒子的位置初始化;采用自适应方式进行粒子群粒子数量的初始化,即根据调度问题的规模大小进行调整,将粒子数量ps设置为粒子长度的两倍,即ps=2×||p||,p为粒子模型;4c)定义任务调度的适应度函数f(p)和粒子的移动速度v:其中,表示第j个移动机器人rj在粒子p的调度方式下运行在货架之间的距离,nru表示被实际调度的移动机器人数量,sg表示粒子中除去第一个元素后的所有元素的集合;4d)根据4c)定义的适应度函数计算每个粒子pq(q∈[1,ps])在第k次迭代时的适应度f(pq,k),并按如下条件更新paq,pg:paq=pq,k,s.t.f(pq,k)<f(paq),pg=pq,k,s.t.f(pq,k)<f(pg),其中,paq表示第q个粒子pq具有历史最优值时的粒子位置,pg表示粒子群中具有全局历史最优值时的粒子位置,pq,k表示第k次迭代时第q个粒子pq的粒子位置;4e)采用如下更新策略对粒子群中的所有粒子pq的位置进行更新:pq,k+1=pq,k+vq,k+1,其中表示第k次迭代时第q个粒子pq的移动速度,vq,k表示上一次迭代时第q个粒子pq的移动速度,pq,k+1表示第k次迭代后第q个粒子pq的位置,c1表示对粒子当前速度的信任度,c2表示对粒子历史最优位置的信任度,c3表示对历史全局最优位置的信任度,c1,c2,c3∈[0,1];4f)判断是否停止迭代:若迭代次数达到设定的最大迭代次数,或多次迭代后pg没有得到更新,则停止迭代,执行(5),否则,返回4d);(5)根据全局历史最优值时的粒子位置pg生成各移动机器人的任务队列并分配给各移动机器人,移动机器人根据自身任务队列的先后顺序将指定的货架搬运到分拣站台处,该分拣站台中的每个订单对应一个订单包裹箱,分拣人员根据系统的指示从货架上取下对应的商品放入到系统提示的订单包裹箱中,完成订单中对该商品的拣选;(6)当一个订单中的所有商品都拣选完成后,即订单包裹箱已包含该订单中的所有商品时,分拣人员对该订单中的商品进行再次验证,验证无误后,由传送带或移动机器人将该包裹箱运送到打包发送区进行打包,并向中央服务器发送新的订单请求。本发明与现有技术相比具有如下优点:1.本发明由于采用订单池来缓冲系统收到的订单,达到了削峰填谷的作用,降低了系统出现负载过高而引起瘫痪的可能性,同时采用分拣站台根据自身状况请求订单而不是由中央服务器直接进行分配,降低了分拣站台出现负载过高而瘫痪的可能性。2.本发明由于采用基于订单适应度的订单优先级分配策略,可以减少在完成相同订单情况下,移动机器人需要执行的具体任务数量,从而降低了系统的整体运行成本,提升了系统的整体运行效率。3.本发明由于采用了基于离散粒子群的订单任务调度算法,可以对机器人执行任务的具体顺序做合理调度,从而减少了移动机器人在运行过程中所走过的总路程,降低了移动机器人完成任务所花费的时间,进一步提升了系统处理订单的效率。附图说明图1是现有仓储系统框图;图2是本发明的实现总流程图;图3是本发明中调度算法中的粒子模型示意图;图4是本发明中的启发式粒子初始化过程示意图;图5是本发明中商品调度顺序示意图;图6是本发明中基于离散粒子群的订单任务调度子流程图;图7是用本发明仿真仓储系统运行时间的结果图;图8是用本发明仿真仓储系统中移动机器人运行总距离的结果图。具体实施方式以下结合附图及具体实施例对本发明作进一步详细描述。本发明实施例所提供的一种仓储系统中订单任务调度方法适用于仓储系统。参见图1,本发明实施例的一个仓储系统,包括一台中央服务器1、多个分拣站台2、多个可移动货架4和多台用于搬运货架的移动机器人3。其中,中央服务器1分别与每一个分拣站台2通过有线连接,每个移动机器人3与可移动货架4和分拣站台2可进行无线连接。参照图2,本发明的实现步骤如下:步骤1,订单入池。中央服务器中设有订单池用于存储接收到的订单,当一个新的订单到达后,中央服务器将其放入到订单池中。步骤2,订单请求。分拣站台判断自身的工作状态,若未处于满负荷状态,例如,当某个订单中的商品都拣选完成并将对应的包裹箱运送到打包发送区后,该分拣站台会有多余的空间,则可向中央服务器发送新的订单请求。步骤3,计算订单处理优先级。常用的订单处理优先级确定方式有根据订单中包含的商品数量多少进行优先级的划分,有根据订单到达的先后顺序进行优先级的划分,也有根据订单产生对象的重要程度进行优先级的划分,本实例采用但不限于用以下步骤进行:3.1)计算订单池中每个订单相对于该分拣站台的订单适应度:ofmn=ogn×stamgt其中,ofmn为订单适应度,其表示第n个订单on中商品种类和第m个分拣站台stam剩余待处理商品种类的相似程度,n∈[1,+∞);ogn表示第n个订单中包含的商品种类,ogn={p1,p2,...,pi,...,pgs},gs表示仓库中所有的商品种类数,stamg表示第m个分拣站台stam中实时待处理的商品种类,stamg={p′1,p′2,...,p′i,...,p′gs},t表示转置;3.2)根据订单适应度ofmn,计算出每个订单相对于该分拣站台的订单处理优先级:其中,opmnt表示第n个订单on在当前时间t时,针对第m个分拣站台stam的订单处理优先级;totol表示订单处理的容忍时间,α表示权重系数,表示系统收到第n个订单on时的时间。步骤4,订单分配及任务合并。中央服务器根据订单处理优先级对订单池中的订单进行排序,从中取出优先级最高的订单分配给进行订单请求的分拣站台;分拣站台在收到新的订单后会将订单中的每个具体商品和分拣站台中尚未处理的任务进行查对:若分拣站台尚未处理的任务中存在某个任务所对应的货架包含该商品,则将该订单的该商品合并到该任务中;若所有尚未处理的任务对应的货架中都不包含该商品,则产生一个新的任务对应该商品所在的货架;查对后,将所有待处理的任务放入到任务集合中并对任务进行编号:stg={1,2,3,...,tg},其中,stg表示所有待处理的任务集合,tg表示所有待处理任务的总数。通过上述这种任务合并的方式可以减少完成同样订单时的具体任务数。步骤5,任务调度。对具体任务进行合并处理后,分拣站台对具体任务进行调度,最终为移动机器人分配一个具体的任务队列并对其已有的任务队列进行更新。参照图6,本步骤的具体实现如下:5.1)粒子模型的定义将待处理的具体任务抽象成一维数组的粒子模型,表述如下:其中表示第j个移动机器人rj当前正在执行的任务所对应的货架位置,如果该机器人当前空闲,则表示其当前所处的位置,j∈[1,nr],nr为当前分拣站台分配的移动机器人数量,gi表示第i个具体的任务对应的目标货架位置,i∈[1,tg],tg表示需要调度的任务总数;5.2)粒子群初始化粒子在进行迭代前首先要进行初始化操作,初始化操作包括了粒子位置及数量的初始化。常用的粒子位置初始化方式有随机初始化和启发式初始化,本步骤采用启发式与随机初始化相结合的方式,即对其中一部分采用随机的初始化方式,将每个粒子中的元素顺序随机打乱,保证粒子在解空间中尽量分布均匀,防止陷入局部最优,这里第一个元素的位置保持不变,另一部分粒子采用启发式方式进行初始化,即将粒子通过贪婪方式初始化到可能会出现最优解的位置或附近;图4给出了启发式初始化的一个具体实例,假设该分拣站台分配有两个移动机器人,分别位于1号货架和2号货架位置,则从1和2货架位置开始在剩余的元素中寻找曼哈顿距离最近的元素3和4,分别加入到货架1开始的路径和货架2开始的路径中;接着分别从剩下的元素中寻找距离元素3和4曼哈顿距离最近的元素5和6,分别加入到路径队列中,即将元素5加入到元素3之后,将元素6加入到元素4之后,以这种方式进行路径拓展,直到所有元素都加入到路径之中。通过这种启发式的初始化方式能在度上提高算法的收敛速度;由于在粒子数量的初始化方面,当粒子数量较多时,粒子在解空间中的分布会更加广泛,更有利于算法搜索到最优解,但如果数量过大容易给计算机造成较大的计算压力,降低收敛速度,但如果粒子的数量较少,又会造成解空间覆盖不全,从而得不到理想的最优解。因此,本步骤采用自适应方式来调节粒子群中的粒子数量,即根据调度问题的规模大小进行调整,将粒子数量ps设置为粒子长度的两倍,即:ps=2×||p||5.3)计算每个粒子pq在第k次迭代时的适应度f(pq,k):其中,表示第j个移动机器人rj在粒子pq,k的调度方式下运行在货架之间的距离,nru表示被实际调度的移动机器人数量,nru表示被实际调度的移动机器人数量,显然,该适应度函数值越小,表示所设计的调度方案效率越高;本步骤通过上述公式计算适应度,是因为在进行移动机器人具体的任务调度时,首要的任务是提高系统完成订单的效率,具体到移动机器人,可以通过减少移动机器人运行的距离来实现。由于进行移动机器人任务调度时分拣站台的位置是固定的,任务的货架位置也是确定的,则在不同调度方案中,移动机器人在货架与分拣站台之间运行的距离也是固定不变的,所以在进行具体的任务调度时,可优化的路程主要是移动机器人在完成一个任务后从当前任务的货架位置移动到下一个任务的货架位置所走过的路程。图5给出了采用不同任务调度方案下移动机器人所走路程的示意,其中:图5(a)表示在一种较优的调度方式下移动机器人在货架间的运行路程;图5(b)表示在一种随机的调度方式下移动机器人在货架间的运行路程从图5中可以看出采用图5(a)的调度方式移动机器人运行的路程更短。同时考虑到多个移动机器人是合作完成该分拣站台的所有任务,所以将执行任务的移动机器人在货架之间运行的平均距离作为任务调度方案的评价指标,此步骤中空闲的移动机器人不计算在内,这种方式可以保证空闲的移动机器人都尽量被利用;5.4)按照下式更新每个粒子的个体极值paq和全局极值pg:paq=pq,k,s.t.f(pq,k)<f(paq),pg=pq,k,s.t.f(pq,k)<f(pg)。其中,paq表示第q个粒子pq具有历史最优值时的粒子位置,pg表示粒子群中具有全局历史最优值时的粒子位置,pq,k表示第k次迭代时第q个粒子pq的粒子位置;5.5)定义粒子速度v为一个由二元组组成的二元组数组:其中每一个二元组(iz,jz)表示在粒子中将元素iz和元素jz交换索引位置,sg表示粒子中除去第一个元素后的所有元素的集合,因为在粒子的迭代过程中第一个元素位置保持固定不变;5.6)采用如下更新策略对每个粒子的速度和位置进行更新:pq,k+1=pq,k+vq,k+1其中vq,k+1表示第k次迭代后第q个粒子pq的移动速度,vq,k表示上一次迭代后第q个粒子pq的移动速度,pq,k+1表示第k次迭代后第q个粒子pq的位置,c1表示对粒子当前速度的信任度,c2表示对粒子历史最优位置的信任度,c3表示对历史全局最优位置的信任度,c1,c2,c3∈[0,1];“+”表示移动速度作用于粒子位置时的加法运算,用于粒子位置的更新,举例说明:当p=(1,2,3,4,5),v=((2,3),(3,4))时,则在p+v的加法运算过程中,首先改变粒子p中元素2和元素3的索引位置,其次改变元素3和元素4的索引位置,即粒子p的变化过程为(1,3,2,4,5),(1,4,2,3,5);表示两个移动速度之间的加法运算,假设两个移动速度分别为v1和v2,则表示为首先包含了v1中所有元素,其次包含v2中所有元素的一个完整序列;“·”表示系数c与速度v之间的乘法运算,相当于一个截取操作:其中||cv||是小于等于c||v||的最大整数;5.7)判断是否终止迭代:进行迭代的最终目标是求得全局最优解,但在具体实现时这个最优解是不可预知的,因此不能通过迭代结果与最优值的差值来判断是否迭代结束,所以,本步骤采用最大迭代次数,或多次迭代后pg的更新情况这两个条件之一进行是否终止迭代的判断:若迭代次数达到设定的最大迭代次数,或多次迭代后pg没有得到更新,则停止迭代,进行5.8),否则,返回5.4)进行下一个迭代。5.8)生成具体任务队列并分配给移动机器人:根据粒子群中具有全局历史最优值时的粒子位置pg生成具体的任务队列并分配给各移动机器人,即将具有全局最优值的粒子pg以机器人位置元素为分隔符划分成nr个任务队列,分别分配给移动机器人rj。例如,若最终迭代的结果pg如图3所示,则将任务队列[g5,g10,g3]分配给第1个移动机器人r1,将任务队列[g4,g2]分配给第4个移动机器人r4,将任务队列[g6,g11,g1,g9]分配给第2个移动机器人r2,将任务队列[g8,g7]分配给第3个移动机器人r3。步骤6,商品拣选。通过任务调度步骤给移动机器人分配具体的任务后,移动机器人根据自身任务队列的先后顺序将指定的货架搬运到分拣站台处,该分拣站台中的每个订单对应一个订单包裹箱,分拣人员根据系统的指示从货架上取下对应的商品放入到系统提示的订单包裹箱中,完成订单中对该商品的拣选。步骤7,订单验证。当一个订单中的所有商品都拣选完成后,即订单包裹箱已包含该订单中的所有商品时,分拣人员对该订单中的商品进行再次验证,即重新确认订单中的商品是否已全部拣选到订单包裹中,且商品的种类和数量是否保持一致:若是,则验证无误,由传送带或移动机器人将该包裹箱运送到打包发送区进行打包,并向中央服务器请求新的订单,若否,则将该订单标记为未完成,在下一次调度时进行重新任务合并及调度。本发明的效果可以通过以下仿真进行说明:1.仿真参数仿真参数如表1所示。表1.订单调度算法仿真参数设置参数名称参数值仓库长(米)114仓库宽(米)78货架数(个)4440订单数(单)1000泊松到达参数(单/秒)1分拣站台最大复杂订单数(单)5单个订单最大商品种类数(行)5移动机器人速度(米/秒)1移动机器人转弯耗时(秒)1移动机器人装载货架时间(秒)3单个商品拣选时间(秒)10粒子群最大迭代数200权重系数α0.52.仿真内容仿真1,按照上表参数,在不同数量的移动机器人情况下,即移动机器人的数量从50增加到200,每次增加10台的条件下,仿真完成1000个订单任务系统所需花费的时间,结果如图7。仿真2,按照上表参数,在不同数量的移动机器人情况下,即移动机器人的数量从50增加到200,每次增加10台的条件下,仿真完成1000个订单任务后移动机器人所行驶的整体路程,结果如图8。3.仿真结果分析从图7可见,采用本订单任务调度方法系统完成所有订单所花费的时间更短,系统处理订单的效率更高。从图8可见,采用本订单任务调度方法系统完成所有订单时,所有机器人所行驶的路程更短,降低了系统开销。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1