CN111754176A - 一种面向多移动货架的两阶段智能订单分拣方法 - Google Patents
一种面向多移动货架的两阶段智能订单分拣方法 Download PDFInfo
- Publication number
- CN111754176A CN111754176A CN202010598474.6A CN202010598474A CN111754176A CN 111754176 A CN111754176 A CN 111754176A CN 202010598474 A CN202010598474 A CN 202010598474A CN 111754176 A CN111754176 A CN 111754176A
- Authority
- CN
- China
- Prior art keywords
- cur
- goods
- order
- trans
- shelf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
- B65G1/04—Storage devices mechanical
- B65G1/137—Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed
- B65G1/1373—Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Abstract
本发明公开一种面向多移动货架的两阶段智能订单分拣方法,包括:输入智能仓库各类对象的数据信息计算满足所述全部订单货物需求的具有最少货架个数的货架集合;建立订单-货架关系矩阵;对订单池内全部订单分批聚合处理;计算拣选站的货架进站总次数;比较多次计算结果,将其中最好的一次作为最终的结果,其对应的调度方案即为最终选定的调度方案;本发明采用两阶段调度策略,先从规模角度保证使用货架个数最少,再从订单聚合角度保证货架进站次数最少,综合考虑各阶段的最优性,有效提高了拣选作业的效率;本发明不仅适用于仓储行业内各类仓库的拣选作业,还适用于可抽象为集合覆盖问题的各类复杂场景,如移动云计算资源分配、作战火力分配等。
Description
技术领域
本发明属于智能仓库技术领域,具体涉及一种面向多移动货架的两阶段智能订单分拣方法。
背景技术
随着我国人口红利的消失以及人口结构的改变,拥有十万亿级市场规模的中国物流业正面临着人力资源短缺和劳务成本上升的严峻考验。传统依靠普通人工分拣的物流仓作业模式已不再适用。在“工业4.0”和“中国制造2025”的背景下,自动化智能仓库出现并得到发展。“货到人”拣选系统是一类常见的智能拣选系统,该系统中的拣选方法为:通过多台移动机器人将载有货物的货架搬运至指定的拣选站,再由站内拣选人员根据已被发送到拣选站的订单需求进行货物拣选,作业完成后移动机器人再将货架搬运离开。
相关已有技术中,由于订单分配规则和货架调度策略不优,导致大量货架频繁出入拣选站,最终会造成路径阻塞死锁等现象,极大地增加了时间成本,降低了拣选效率。因此,设计一个实时且高效的智能订单分拣方法是至关重要的。
发明内容
有鉴于此,本发明提供了一种面向多移动货架的两阶段智能订单分拣方法,能够在实际的仓储环境条件下,针对拣选作业中多订单、多货架和多货物的复杂情况,智能地分配订单和调度货架,以实现用最少的货架进站次数完成拣选任务,提高拣选效率。
实现本发明的技术方案如下:
一种面向多移动货架的两阶段智能订单分拣方法,包括以下步骤:
步骤一、对订单池内全部待拣选的N个订单的需求货物信息编码,建立订单编码矩阵对货架区内M个货架的存储货物信息进行编码,建立货架编码矩阵其中,LGO为全部订单中包含货物种类最多的订单所需的货物种类数,LGR为全部货架中包含货物种类最多的货架所储的货物种类数;
步骤二、计算能够满足所述全部订单货物需求的具有最少货架个数的货架集合βend;
步骤三、分别建立每个订单与βend中货架的关系,得到订单-货架关系矩阵;
步骤四、基于订单-货架关系矩阵,对订单池内全部订单分批聚合处理,形成K个拣选站订单组,K为拣选站数量;
步骤五、分别计算各拣选站订单组的货架进站次数,并求和得到货架总进站次数;
步骤六、设置最大迭代次数Itermax,重复步骤四-步骤五,存储得到的货架总进站次数,直至完成Itermax次迭代,选择货架总进站次数最小的一轮,输出该轮中订单-货架关系矩阵和各拣选站订单组,形成调度方案。
进一步地,在步骤一中,对订单需求货物信息和货架存储货物信息均进行编码,具体如下:
建立订单编码矩阵其中N为订单池内具有的待拣选的订单数量,LGO为全部订单中包含货物种类最多的订单需求的货物种类数,初始时为全零矩阵;对于每个订单oi(i=1,2,...,N),编码矩阵中通过连续两行进行描述,其中第2i-1行表示订单oi需求的货物种类,从行首开始依次填充,直至填完全部需求货物种类,第2i行表示订单对应上一行货物种类oi需求的货物数量,从行首开始依次填充,直至填完全部需求货物数量;
建立货架编码矩阵其中M为货架区内具有的货架数量,LGR为全部货架中包含货物种类最多的货架存储的货物种类数,初始时为全零矩阵;对于每个货架rj(j=1,2,...,M),编码矩阵中通过连续两行进行描述,其中第2j-1行表示货架rj所储的货物种类,从行首开始依次填充,直至填完全部存储货物种类,第2j行表示货架rj在上一行所储货物种类对应的货物数量,从行首开始依次填充,直至填完全部存储货物数量。
进一步地,步骤二具体过程为:
S201、计算初始订单货物总需求:对订单池内具有的全部待拣选的N个订单,基于各订单货物输入信息,生成订单货物总需求AOG;其中,订单货物总需求中的需求货物为所有订单中的货物种类的并集,对应的货物数量为所有订单中相应货物的数量之和;
S202、定义和初始化各类变量:定义二元组状态变量(α,β):其中α表示订单货物需求,β表示已为订单提供货物的货架集合;定义包含二元组状态变量的四种不同状态:初始状态Sini、转移前状态Scur、转移后状态Strans和终止状态Send;其中初始状态为{Sini:(αini,βini)},αini为步骤S201中全部订单的货物总需求AOG,βini为空集;转移前状态、转移后状态和终止状态均为状态集合,即Scur、Strans和Send中包含若干个形如(α,β)的状态变量,在初始时三者均为空集;
S203、生成初始决策货架集合DecRini,对于货架区内具有的M个储物货架,首先令j=1,计算rj存储的货物种类集合与所述初始状态下αini需求的货物种类集合的交集,若交集不为空,则将rj加入集合DecRini,否则执行j=j+1,重复上述步骤,直至j=M;记遍历全体货架后,DecRini包含的货架为
S204、计算转移前状态集合{Scur:(αcur,βcur)},具体为:
初始时Scur为空;对于所述DecRini中的货架首先令cf_ri=1,然后取(αcur)cf_ri的初值为αini,(βcur)cf_ri的初值为βini,将加入集合(βcur)cf_ri中,遍历所述S203中和(αcur)cf_ri的货物交集中的全部货物,对每一种货物,若货架中该货物储量不少于(αcur)cf_ri中该货物的需求,则在(αcur)cf_ri中删除该货物;否则将(αcur)cf_ri中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αcur,βcur)cf_ri存入Scur中;执行cf_ri=cf_ri+1,重复上述步骤,直至cf_ri=a,此时Scur中包含数量为a的(αcur,βcur)状态变量组;
S205、对于转移前状态集合Scur中的每个状态组(αcur,βcur)cf_sc,分别生成各状态对应的决策货架集合首先令cf_sc=1,初始时为空,对于货架区内的M个储物货架,令j=1,若rj已经在βcur中存在,则执行j=j+1;否则计算rj存储的货物种类集合与所述初始状态下(αcur)cf_sc需求的货物种类集合的交集,若交集不为空,则将rj加入集合否则执行j=j+1,重复上述货架判断步骤,直至j=M,然后执行cf_sc=cf_sc+1,重复上述全部步骤,直至cf_sc=a;记得到的每个转移前状态对应的决策货架集合包含的货架为
S206、计算转移后状态集合{Strans:(αtrans,βtrans)}:初始时Strans为空;首先令cf_sc=1,对于每个所述转移前状态对应的决策货架集合中的货架执行如下内操作:令cf_rc=1,然后取(αtrans)cf_rc的初值为(αcur)cf_sc,(βtrans)cf_rc的初值为(βcur)cf_sc,并将加入集合(βtrans)cf_rc中,遍历和(αtrans)cf_rc的货物交集中的全部货物,对每一种货物,若货架中该货物的储量不少于(αtrans)cf_rc中该货物的需求,则在(αtrans)cf_rc中删除该货物;否则将(αtrans)cf_rc中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αtrans,βtrans)cf_rc存入Strans中。执行cf_rc=cf_rc+1,重复上述内操作步骤,直至cf_rc=bcf_sc;结束内操作,执行cf_sc=cf_sc+1,重复上述全部步骤,直至cf_sc=a,此时Strans中包含数量为的(αtrans,βtrans)状态变量组;
S207、计算终止状态集合{Send:(αend,βend)}:初始时Send为空;首先令cf_end=1,计算所述转移后状态集合中状态(αtrans,βtrans)cf_end的βtrans所需求所有货物数量总和,若和值大于0,则执行cf_end=cf_end+1,重复判断步骤;否则将(αtrans,βtrans)cf_end记为(αend,βend)cf_end,存入终止状态集合Send中,执行cf_end=cf_end+1;重复上述全部步骤,直至若此时Send仍为空集,则执行将Scur=Strans,然后重复执行步骤S205-S206;若Send不为空集,则进入步骤三,其中Send所包含的每个βend都是能够满足全部订单货物需求的具有最少货架个数的货架集合,这些βend均可用于步骤三中相关操作。
进一步地,步骤三具体过程为:
S301、定义和初始化各类变量:定义五元组状态变量,(ε,χ,γ,η,φ),其中ε表示尚未与货架集合中货架建立关系的订单数量,χ表示订单货物信息矩阵,γ表示货架所储剩余货物信息矩阵,η表示已与订单建立关系的货架集合,φ表示订单货架关系矩阵;
定义包含五元组状态变量的四种不同状态:初始状态ESini、转移前状态EScur、转移后状态EStrans和终止状态ESend;其中初始状态为{ESini:(εini,χini,γini,ηini,φini)},εini为初始订单数量N,χini为每个订单的货物需求,即订单编码矩阵OG;γini为空集,ηini为空集,φini为N×T的全零矩阵,其中T为βend中货架的数量;转移前状态、转移后状态和终止状态均为状态集合,即EScur、EStrans和ESend中可包含若干个形如(ε,χ,γ,η,φ)的状态变量;
S302、生成初始决策货架集合EDecRini:对于步骤S207中所述的货架集合βend(re∈βend,e∈1,2,...E),首先令e=1,计算re存储的货物种类集合与所述初始状态下χini需求的货物种类集合的交集,若交集不为空,则将re加入集合EDecRini,否则执行e=e+1,重复上述步骤,直至e=E;记遍历全体货架后,EDecRini包含的货架为
S303、计算转移前状态集合{EScur:(εcur,χcur,γcur,ηcur,φcur)}:对于所述初始决策货架集合EDecRini中的货架首先令cs_ri=1,然后取当前五元组状态变量(εcur,χcur,γcur,ηcur,φcur)的初值为(εini,χini,γini,ηini,φini),并将加入集合ηcur中,通过对(εcur,χcur,γcur,ηcur,φcur)进行状态更新运算,将更新后的状态变量(εcur,χcur,γcur,ηcur,φcur)存入EScur中,执行cs_ri=cs_ri+1,重复状态更新运算操作,直至cs_ri=c停止;并将结果存入EScur中,EScur中包含数量为c的(εcur,χcur,γcur,ηcur,φcur)状态变量组;
S304、对于转移前状态集合EScur中的每个状态组(εcur,χcur,γcur,ηcur,φcur)cs_sc,分别生成对应的决策货架集合首先令cs_sc=1,初始时为空,对于步骤S207中所述的货架集合βend(re∈βend,e∈1,2,...E),首先令e=1,若re已经在(ηcur)cs_sc中存在,则跳过继续判断下一个货架;若不存在,则计算re存储的货物种类集合与所述初始状态下(χcur)cssc需求的货物种类集合的交集,若交集不为空,则将re加入集合否则执行e=e+1,重复上述步骤,直至e=E,然后执行cs_sc=cs_sc+1,重复上述全部步骤,直至cs_sc=c;。记得到的每个转移前决策货架集合包含的货架为
S305、计算转移后状态集合{EStrans:(εtrans,χtrans,γtrans,ηtrans,φtrans)}:初始时EStrans为空;首先令cs_sc=1,对于所述转移前状态对应的决策货架集合中的每个货架执行如下内操作:令cs_rc=1,然后取(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_rc的初值为(εcur,χcur,γcur,ηcur,φcur)cs_sc,并将加入集合(ηtrans)cs_rc中,用替换用(εcur,χcur,γcur,ηcur,φcur)cs_sc替换(εcur,χcur,γcur,ηcur,φcur),执行S303中的状态更新运算,将结果存入EStrans中。执行cs_rc=cs_rc+1,重复上述内操作步骤,直至cs_rc=dcs_sc;结束内操作,执行cs_sc=cs_sc+1,重复上述全部步骤,直至cs_sc=c,,此时EStrans中包含数量为的(εtrans,χtrans,γtrans,ηtrans,φtrans)状态变量组;
S306、计算终止状态集合{ESend:(εend,χend,γend,ηend,φend)}:初始时ESend为空;首先令cs_end=1;计算所述转移后状态集合中状态(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_end中的χtrans需求所有货物数量总和,若和值大于0,则执行cs_end=cs_end+1;否则将(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_end记为(εend,χend,γend,ηend,φend)m,存入终止状态ESend中,执行cs_end=cs_end+1;重复上述步骤,直至若此时ESend仍然为空集,则执行将EScur=EStrans,然后重复执行步骤S304-S305;若此时ESend不为空集,则进入步骤四,其中ESend所包含的每个φend都是全部订单与步骤二中所述的货架集合βend间的订单-货架关系矩阵,所述φend用于步骤四中订单聚合操作。
进一步地,在步骤S207和S306中,用所述转移后状态集合作为新的转移前状态集合时,若包含的状态数超过给定阈值BM,则需要对所述转移后状态集合的状态数量进行剪枝,使其数量减少至BM,具体方法如下:
a、设定剪枝优先级列表Prlist=({v1:s1},{v2:s2},...,{vp:sp}),其中vp和sp分别表示优先级规则和对应的排序方式,定义剪枝状态集合Sbm和临界状态集合Slimit,两者初始时都为空集;
b、分别计算所述转移后状态集合中每个转移状态在Prlist列表中第一优先级元素v1对应的值,并按照s1进行排序;排序后依次取出前BM个值对应的状态作为当前状态,其余删除;排序后若出现“僵局”,即第BM个位置的值(临界值)与该位置前后的若干个值相同,则先将序列中所有临界值之前的值对应的状态取出并存入剪枝状态Sbm中,然后计算新的阈值为BM与Sbm中状态数的差值,再将所有取值为临界值对应的状态取出,存入临界状态集合Slimit中,执行步骤c;若未出现“僵局”,则依次取出前BM个值对应的状态存入剪枝状态集合Sbm中,其余删除;
c、用Slimit作为新的转移后状态集合,优先级序号增加1,即优先级变为{v2:s2},重复步骤b,若阈值不为0则继续执行优先级序号加1和重复步骤b的操作,直至阈值为0,即Sbm中具有BM个状态为止;若Slimit在计算最后一个优先级元素vp的值后仍出现“僵局”,则随机取出数量为当前阈值的临界值对应状态存入Sbm;
d、Sbm即为新的转移前状态集合。
a、令(εcur,χcur,γcur,ηcur,φcur)中的每个变量初始值为初始状态中各变量值(εini,χini,γini,ηini,φini);
b、对于χcur中的全部订单o1,o2,…oN,分别计算存储的货物种类集合与每个订单oi(i=1,2,...N)需求的货物种类集合的交集,若交集为空,则继续下一个订单的计算;若交集不为空,则遍历交集中的全部货物,判断对于每一种货物,该货物在的货架储量不少于在订单oi的需求量是否都成立;若有至少一种货物不成立,则将oi存入临时集Otemp中,继续下一个订单的计算;若全都成立,则记为完全覆盖订单,在χcur中删除订单oi并执行φcur(i,cs_ri)=1,εcur=εcur-1,其中cs_ri表示货架在φcur中的列编号;更新货物存储量:对交集中的全部货物,存储每种货物的数量减去oi需求该种货物的数量;
c、若γcur当前为空集,则结束;否则执行以下步骤:记γcur中的全部货架编号为rγ1,rγ2,...,rγc,则定义联合货架集合RT:生成联合货架总存储量GRT,其中货物种类为RT中的货物种类的并集,对应的货物数量为RT中相应货物的数量之和;
d、对于Otemp中全部订单首先令li=1,计算GRT存储的货物种类集合与订单需求货物种类集合的交集,对交集中的每一种货物s,若需求s的数量均小于等于RT存储s的数量,则在χcur中删除该订单信息,执行εcur=εcur-1,li=li+1,并进入步骤e;否则执行li=li+1,重复上述计算,当li=lL时停止,进入步骤f;
e、删除冗余货架:令p=1,在GRT中减去货架rγp的货物存储信息,然后用GRT代替步骤b中的用代替步骤b中的oi,采用步骤b中方法判断RT能否完全覆盖订单若能够完全覆盖,则将货架rγp对应的货物信息存入γcur中,并更新RT=RT/rγp,令p=1,对更新后的GRT和RT重复上述判断操作;若不能够完全覆盖,则执行p=p+1,继续执行上述判断操作。当p等于当前RT中包含货架数量时停止,记此时RT中剩余货架为执行φcur(li,{γ1′,γ2′,...,γc′})=1,然后分别用当前RT中剩余的每个货架替换步骤b中的用代替步骤b中的oi,采用步骤b中方法对RT中剩余的每个货架所储货物信息更新;更新后,将存储货物数量总和仍大于0的货架的货物信息存入γcur中,返回步骤d。
f、将计算得到的状态变量(εcur,χcur,γcur,ηcur,φcur)存入EScur中。
进一步地,步骤四的具体过程为:
S401、基于所述步骤3中的订单-货架关系矩阵φend,对订单池内全部订单采用Kmeans算法进行聚类,其中类别数等于拣选站的数量K;
S402、定义拣选站编号w1,w2,…wK,基于聚类结果将全部订单分类,随机将所得各订单类别与拣选站进行绑定;
S403、与各拣选站存放订单容量(每个拣选站能够存放的最大订单数量)相比,若订单类别内包含的订单数量多于绑定拣选站存放订单容量,执行贪婪删除操作,被移除的订单存放于订单缓存区,具体为:
首先计算需要删除的订单数量,其值为所述订单类别内包含的订单数量与所述拣选站存放订单容量的差值,然后基于步骤3中所述订单-货架关系矩阵,提取所有与类别内订单建立关系的货架并计算这些货架的出现次数,不断删除当前使用次数最少货架所对应的订单,直至删除的订单数与需要删除的订单数量相等时停止,最后剩余的订单即为拣选站订单组。若执行删除操作时,待删除的订单数超过需要删除的订单数量,则随机选择数量为需要删除的订单数量的订单进行删除;
S404、若订单类别内包含的订单数量少于绑定拣选站存放订单容量,执行最大边际收益补充操作,具体为:
a、定义订单缓存区订单编号o1,o2,…oQ和待补充类别编号t1,t2,…tH;建立订单—类别补充矩阵OTQ×H,若矩阵中元素取值为1,表示订单oq被补充到类别th中,若取值为0,表示没有补充,初始化时矩阵为全零矩阵;
b、定义一维补充数量向量其中表示每个类别待补充的订单数量,h表示待补充类别编号,表示该类别绑定的拣选站kh的存放订单容量,为th类别包含订单数量;定义一维已补充数量向量LcAdd=[Lch]1×H,其中h表示待补充类别编号,Lch表示th类别已经补充的订单数量,初始化时LcAdd为全零向量;
c、建立补充方案矩阵AOQH×2,其中补充方案矩阵AO共有Q×H行,2列。在所述补充方案矩阵中每一行都存储一个(订单缓存区订单编号,待补充类别编号)的补充匹配组合(ol,wk),其中(ol∈1,2,...Q,wk∈1,2,...H);;
d、对补充方案矩阵进行可行性分析:初始时令count_ow=1,若AO中第count_ow行所表示的补充匹配组合(ol,wk)满足OTol,wk=1,则从AO中删除该行所对应的补充匹配组合,否则执行Lcwk=Lcwk+1;若此则从AO中删除该行所对应的补充匹配组合,否则执行count_ow=count_ow+1,重复上述操作,记可行性分析后的AO矩阵为可行补充方案矩阵FAO;
e、在FAO矩阵中选出当前最佳补充方案:对矩阵中每一组匹配组合(ol,wk),基于步骤3中所述订单-货架关系矩阵,将订单ool加入待补充订单类别twk中,计算当前类别twk内货架进站次数,将各匹配组合的货架进站次数按照升序排列,选出排在第一的(ol,wk)匹配组合作为当前最佳分配方案(olbest,wkbest),并在订单—类别补充矩阵OT中将对应的元素值置为1,即同时,执行
f、比较当前CAdd和LcAdd,若两者元素差值和为0则结束,补充后的各类别订单即为拣选站订单组,否则继续重复步骤c~e执行;
S405、若得到订单类别内包含的订单数量等于绑定拣选站存放订单容量,不执行操作,直接形成拣选站订单组。
进一步地,步骤五的具体过程为:存储步骤三中得到的订单-货架关系矩阵和步骤四中得到的拣选站订单组,分别计算每个拣选站内的货架进站次数,求和得到拣选站订单组的货架总进站次数。
进一步地,步骤S404和步骤五中,计算所述订单类别内或拣选站内的货架进站次数的方法的具体过程为:基于步骤三中的订单-货架关系矩阵,提取为所述订单类别内或拣选站内的每个订单提供货物的货架集合,将这些货架集合执行并集操作,得到当前订单类别内或拣选站内的货架全集,全集内包含的货架数目为当前订单类别内或拣选站内的货架进站次数。
进一步地,步骤六的具体过程为:
设置最大迭代次数Itermax,重复步骤四和五,每次执行时选择不同的βend和φend,并令Itermax=Itermax-1,同时存储得到的货架总进站次数,直至Itermax等于0停止。选择货架总进站次数最小的一轮,输出该轮中订单-货架关系矩阵和各拣选站订单组,形成(订单编号,拣选站编号,货架编号)调度方案。
有益效果:
第一、本发明从实际出发,采用两阶段调度策略,先从全局角度保证使用货架个数最少,再从各拣选站角度保证货架进站次数最少,综合考虑各阶段的最优性,为智能仓库的拣选作业做出了合理且快速的调度方案,有效提高了拣选作业的效率。
第二、本发明给出的编码方式,既能统一订单与货架的货物信息表示,又能有效利用存储空间,减少计算代价,提高计算速度。
第三、本发明在第一阶段策略中,采用两步动态规划思想,通过巧妙设计状态变量、更新准则和剪枝策略,在节省计算空间资源的同时,还保证能够高效求解,即使在问题规模较大时仍能快速生成近似最优解。
第四、本发明在第二阶段策略中,直接通过货架进站次数选择最佳订单聚合方式,计算简洁的同时提高了订单聚合策略的有效性。
第五、本发明提供的基于多移动货架的两阶段智能订单分拣策略,不仅适用于仓储行业内各类仓库的拣选作业,还适用于可抽象为集合覆盖问题的各类复杂场景,如移动云计算资源分配、作战火力分配等,在军事和民用领域有着广泛的应用。
附图说明
图1为两阶段智能订单分拣完整算法流程图。
图2为智能仓储各类对象示意图,(a)为订单信息,(b)为货架信息,(c)为拣选站信息。
图3为第一阶段算法流程图。
图4为剪枝操作算法流程图。
图5为联合货架总存储中冗余货架删除算法流程图。
图6为第二阶段算法流程图。
图7为订单类别归类算法流程图。
图8为删除操作算法流程图。
图9为补充操作算法流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种面向多移动货架的两阶段智能订单分拣方法,如图1所示,包括以下步骤:
如图2所示,定义订单池内全部订单编号为o1,o2,…oN,第i个订单需求ni种货物,定义为所需每种货物的数量为定义货架区内全部货架编号为r1,r2,…rM,第i个货架具有mi种货物,定义为所储每种货物的数量为
建立订单编码矩阵其中N为订单池内具有的待拣选的订单数量,LGO为全部订单中包含货物种类最多的订单所需的货物种类数max(ni),i=1,2,...N,初始时为全零矩阵。对于每个订单oi,编码矩阵中通过连续两行进行描述,其中第2i-1行表示订单oi需求的货物种类,第2i行表示订单oi在上一行需求货物种类对应的货物数量,其中0元素的个数为LGO-ni;
同样,建立货架编码矩阵其中M为货架区内具有的货架数量,LGR为全部货架中包含货物种类最多的货架所储的货物种类数max(mj),j=1,2,...M,初始时为全零矩阵。对于每个货架rj,编码矩阵中通过连续两行进行描述,其中第2j-1行表示货架rj所储的货物种类,第2j行表示货架rj在上一行所储货物种类对应的货物数量,其中0元素的个数为LGR-mj。
步骤2:如图3所示,执行第一阶段策略,计算能够满足所述全部订单货物需求的具有最少货架个数的货架集合,具体步骤为:
S201、计算初始订单货物总需求:对全部订单,根据各订单货物输入信息,生成订单货物总需求AOG。记AOG为两行矩阵,第一行为需求货物编号s1,s2,...sS,第二行为对应的货物数量为sc1,sc2,...scS。其中,订单货物总需求中的需求货物为所有订单中的货物种类的并集,对应的货物数量为所有订单中相应货物的数量之和。
S202、定义和初始化各类变量:定义二元组状态变量(α,β):其中α表示订单货物需求,β表示已为订单提供货物的货架集合。定义包含二元组状态变量的四种不同状态:初始状态Sini、转移前状态Scur、转移后状态Strans和终止状态Send。其中初始状态为{Sini:(αini,βini)},αini为步骤S201中全部订单的货物总需求AOG,βini为空集;转移前状态、转移后状态和终止状态均为状态集合,即Scur、Strans和Send中可包含若干个形如(α,β)的状态变量,初始时均为空集。定义数量阈值BM:由Strans向Scur赋值时的最大赋值状态数量。
S203、生成初始决策货架集合DecRini,对于货架区内具有的M个储物货架,首先令j=1,计算rj存储的货物种类集合与所述初始状态下αini需求的货物种类集合的交集,
S204、计算转移前状态集合{Scur:(αcur,βcur)},具体为:
初始时Scur为空;对于所述DecRini中的货架首先令cf_ri=1,然后取(αcur)cf_ri的初值为αini,(βcur)cf_ri的初值为βini,将加入集合(βcur)cf_ri中,遍历所述S203中和(αcur)i的货物交集中的全部货物,对每一种货物,若货架中该货物储量不少于(αcur)cf_ri中该货物的需求,则在(αcur)cf_ri中删除该货物;否则将(αcur)cf_ri中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αcur,βcur)cf_ri存入Scur中;执行cf_ri=cf_ri+1,重复上述步骤,直至cf_ri=a,此时Scur中包含数量为a的(αcur,βcur)状态变量组;
S205、对于转移前状态集合Scur中的每个状态组(αcur,βcur)cf_sc,分别生成各状态对应的决策货架集合首先令cf_sc=1,初始时为空,对于货架区内的M个储物货架,令j=1,若rj已经在βcur中存在,则执行j=j+1;若不存在,则通过公式(1)计算rj存储的货物种类集合与所述初始状态下(αcur)cf_sc需求的货物种类集合的交集,若交集不为空,则将rj加入集合否则执行j=j+1,重复上述货架判断步骤,直至j=M,然后执行cf_sc=cf_sc+1,重复上述全部步骤,直至cf_sc=a;记得到的每个转移前状态对应的决策货架集合包含的货架为
S206、计算转移后状态集合{Strans:(αtrans,βtrans)}:
b、然后取(αtrans)cf_rc的初值为(αcur)cf_sc,(βtrans)cf_rc的初值为(βcur)cf_sc,并将加入集合(βtrans)cf_rc中,遍历和(αtrans)cf_rc的货物交集中的全部货物,对每一种货物,若货架中该货物的储量不少于(αtrans)cf_rc中该货物的需求,则在(αtrans)cf_rc中删除该货物;否则将(αtrans)cf_rc中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αtrans,βtrans)cf_rc存入Strans中。执行cf_rc=cf_rc+1;
c、重复上述步骤b,直至cf_rc=bcf_sc;结束内操作,执行cf_sc=cf_sc+1;
S207、计算终止状态集合{Send:(αend,βend)}:初始时Send为空;首先令cf_end=1,计算所述转移后状态集合中状态(αtrans,βtrans)cf_end的βtrans所需求所有货物数量总和,若和值大于0,则执行cf_end=cf_end+1,重复判断步骤;否则将(αtrans,βtrans)cf_end记为(αend,βend)cf_end,存入终止状态集合Send中,执行cf_end=cf_end+1;重复上述全部步骤,直至
若此时Send仍然为空集且Strans包含的状态数超过给定阈值BM,则进入步骤S208,否则执行将Scur=Strans,然后重复执行步骤S205-S206;若此时Send不为空集,则进入步骤三,其中Send所包含的每个βend都是能够满足全部订单货物需求的具有最少货架个数的货架集合,这些βend均可用于步骤三中相关操作。
S208、如图4所示,定义剪枝优先级表Prlist=({v1:s1},{v2:s2},...,{vp:sp}),其中vp和sp分别表示优先级规则和对应的排序方式,定义剪枝状态集合Sbm和临界状态集合Slimit,两者初始时都为空集,执行剪枝操作:
a、假设此处v1表示剩余货物数量总和,s1表示降序,则分别计算Strans的每个βtrans中所有货物数量的总和,并按照降序排列,排序后若出现“僵局”,即临界值(第BM个值)与前后若干个值相同,则先将序列中所有临界值之前的值对应的状态取出并存入剪枝状态Sbm中,然后计算新的阈值为BM与Sbm中状态数的差值,再将所有取值为临界值对应的状态取出,存入临界状态集合Slimit中,执行步骤b;若未出现“僵局”,则依次取出前BM个值对应的状态存入剪枝状态集合Sbm中,其余删除。
b、用Slimit给Strans赋值,优先级序号增加1,即优先级变为{v2:s2},重复步骤a,若阈值不为0则继续执行优先级序号加1和重复步骤a的操作,直至阈值为0,即Sbm中具有BM个状态为止。若Slimit在计算最后一个优先级元素vp的值后仍出现“僵局”,则随机取出数量为当前阈值的临界值对应状态存入Sbm;
c、用Sbm给Scur赋值作为新的转移前状态集合,重复执行步骤S205-S207。
步骤3:根据所述步骤2中能够满足全部订单货物需求的具有最少货架个数的货架集合βend,分别建立每个订单与βend中货架的关系,得到订单-货架关系矩阵,具体步骤为:
S301、定义和初始化各类变量:定义五元组状态变量,(ε,χ,γ,η,φ),其中ε表示尚未与货架集合中货架建立关系的订单数量,χ表示订单货物信息矩阵,γ表示货架所储剩余货物信息矩阵,η表示已与订单建立关系的货架集合,φ表示订单货架关系矩阵。
定义包含五元组状态变量的四种不同状态:初始状态ESini、转移前状态EScur、转移后状态EStrans和终止状态ESend;其中初始状态为{ESini:(εini,χini,γini,ηini,φini)},εini为初始订单数量N,χini为每个订单的货物需求,即订单编码矩阵γini为空集,ηini为空集,φini为N×T的全零矩阵,其中T为βend中货架的数量;转移前状态、转移后状态和终止状态均为状态集合,即EScur、EStrans和ESend中可包含若干个形如(ε,χ,γ,η,φ)的状态变量,初始时均为空集。定义数量阈值EBM:由EStrans向EScur赋值时的最大赋值状态数量。
S302、生成初始决策货架集合EDecRini:对于步骤S207中所述的货架集合βend(re∈βend,e∈1,2,...E),首先令e=1,计算re存储的货物种类集合与所述初始状态下χini需求的货物种类集合的交集,若交集不为空,则将re加入集合EDecRini,否则执行e=e+1,重复上述步骤,直至e=E;记遍历全体货架后,EDecRini包含的货架为
S303、计算转移前状态集合{EScur:(εcur,χcur,γcur,ηcur,φcur)},具体步骤为:
a、对于所述初始决策货架集合EDecRini中的货架首先令cs_ri=1,然后取当前五元组状态变量(εcur,χcur,γcur,ηcur,φcur)的初值为(εini,χini,γini,ηini,φini),并将加入集合ηcur中;
若则继续下一个订单的计算;若交集不为空,则遍历交集中的全部货物,判断对于每一种货物,该货物在的货架储量不少于在订单oi的需求量是否都成立;若有至少一种货物不成立,则将oi存入临时集Otemp中,继续下一个订单的计算;若全都成立,则记为完全覆盖订单,在χcur中删除订单oi并执行
c、若γcur当前为空集,则结束;否则执行以下步骤:记γcur中的全部货架编号为rγ1,rγ2,...,rγc,则定义联合货架集合RT:生成联合货架总存储量GRT,其中货物种类为RT中的货物种类的并集,对应的货物数量为RT中相应货物的数量之和;
d、对于Otemp中全部订单首先令li=1,计算GRT存储的货物种类集合与订单需求货物种类集合的交集,对交集中的每一种货物s,若需求s的数量均小于等于RT存储s的数量,则在χcur中删除该订单信息,执行εcur=εcur-1,li=li+1,并进入步骤e;否则执行li=li+1,重复上述计算,当li=lL时停止,进入步骤f;
e、删除冗余货架:如图5所示,首先令p=1,在GRT中减去货架rγp的货物存储信息,然后用GRT代替步骤b中的用代替步骤b中的oi,采用步骤b中方法判断RT能否完全覆盖订单若能够完全覆盖,则将货架rγp对应的货物信息存入γcur中,并更新RT=RT/rγp,令p=1,对更新后的GRT和RT重复上述判断操作;若不能够完全覆盖,则执行p=p+1,继续执行上述判断操作。当p等于当前RT中包含货架数量时停止,记此时RT中剩余货架为rγ1′,rγ2′,...,rγc′,执行φcur(li,{γ1′,γ2′,...,γc′})=1,然后分别用当前RT中剩余的每个货架替换步骤b中的用代替步骤b中的oi,采用步骤b中方法对RT中剩余的每个货架所储货物信息更新;更新后,将存储货物数量总和仍大于0的货架的货物信息存入γcur中,返回步骤d。
f、将计算得到的状态变量(εcur,χcur,γcur,ηcur,φcur)存入EScur中,执行cs_ri=cs_ri+1,并重复步骤a~d,直至cs_ri=c停止。
S304、对于转移前状态集合EScur中的每个状态组(εcur,χcur,γcur,ηcur,φcur)cs_sc,分别生成对应的决策货架集合首先令cs_sc=1,初始时为空,对于步骤S207中所述的货架集合βend(re∈βend,e∈1,2,...E),首先令e=1,若re已经在(ηcur)cs_sc中存在,则跳过继续判断下一个货架;若不存在,则计算re存储的货物种类集合与所述初始状态下(χcur)cs_sc需求的货物种类集合的交集,若交集不为空,则将re加入集合否则执行e=e+1,重复上述步骤,直至e=E,然后执行cs_sc=cs_sc+1,重复上述全部步骤,直至cs_sc=c;。记得到的每个转移前决策货架集合包含的货架为
S305、计算转移后状态集合{EStrans:(εtrans,χtrans,γtrans,ηtrans,φtrans)},具体步骤为:
b、取(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_rc的初值为(εcur,χcur,γcur,ηcur,φcur)cs_sc,并将加入集合(ηtrans)cs_rc中,用替换用(εcur,χcur,γcur,ηcur,φcur)cs_sc替换(εcur,χcur,γcur,ηcur,φcur),执行S303中的状态更新运算,将结果存入EStrans中。执行cs_rc=cs_rc+1;
c、重复上述步骤b,直至cs_rc=dcs_sc;结束内操作,执行cs_sc=cs_sc+1;
S306、计算终止状态集合{ESend:(εend,χend,γend,ηend,φend)}:初始时ESend为空;首先令cs_end=1;计算所述转移后状态集合中状态(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_end中的χtrans需求所有货物数量总和,若和值大于0,则执行cs_end=cs_end+1;否则将(εtrans,χtrans,γtrans,ηtrans,φtrans)cs_end记为(εend,χend,γend,ηend,φend)m,存入终止状态ESend中,执行cs_end=cs_end+1;重复上述步骤,直至若此时ESend仍然为空集且EStrans包含的状态数超过给定阈值EBM,则用EStrans代替Strans,执行步骤S208中的剪枝操作,否则执行将EScur=EStrans,然后重复执行步骤S304-S305;若此时ESend不为空集,则进入步骤4,其中ESend所包含的每个φend都是全部订单与步骤2中所述的货架集合βend间的订单-货架关系矩阵,所述φend用于步骤四中订单聚合操作。
步骤4:执行第二阶段策略,如图6所示,对订单池内全部订单分批聚合处理,形成K个拣选站订单组,其中K为拣选站数量,具体步骤为:
S401、基于所述步骤3中的订单-货架关系矩阵φend,对订单池内全部订单采用Kmeans算法进行聚类,其中类别数等于K。
S402、基于聚类结果将全部订单分类,得到类别t1,t2,…tK,定义拣选站编号w1,w2,…wK,随机将所得各订单类别分配给拣选站,并对各订单类别内订单数量执行增删操作,使其与绑定拣选站存放订单容量相等。对于每个订单类别tk,假设该类别分配给拣选站wk,tk内具有的订单数量为拣选站wk的存放订单容量为
S403、如图7所示,比较每一个与对应的若两者相等,则不执行操作,tk类别内订单即为分配给拣选站wk的订单组若则存入待删除类别组Tmore中;若则存入待补充类别组Tlittle中;然后继续判断下一类别,直至遍历全部类别。
如图8所示,对于待删除类别组Tmore中的每个类别tk,首先计算该类别待删除的订单数量然后基于步骤3中所述订单-货架关系矩阵φend,提取所有与tk内订单建立关系的货架,并升序排列这些货架的出现次数,不断删除当前出现次数最少的货架所对应的订单,直至删除的订单数与Cdel相等时停止,最后剩余的订单即为拣选站订单组。若执行删除操作时,出现次数最少的货架所对应的订单数超过Cdel,则随机选择数量为需要删除的订单数量的订单进行删除。被移除的订单存放于订单缓存区;
S404、若订单类别内包含的订单数量少于绑定拣选站存放订单容量,执行最大边际收益补充操作,如图9所示,具体为:
a、定义订单缓存区订单编号o1,o2,…oQ和待补充类别编号t1,t2,…tH;建立订单—类别补充矩阵OTQ×H,若矩阵中元素取值为1,表示订单oq被补充到类别th中,若取值为0,表示没有补充,初始化时矩阵为全零矩阵;
b、定义一维补充数量向量CAdd=[Caddh]1×H,其中表示每个类别待补充的订单数量,h表示待补充类别编号,表示该类别绑定的拣选站kh的存放订单容量,为th类别包含订单数量;定义一维已补充数量向量LcAdd=[Lch]1×H,其中h表示待补充类别编号,Lch表示th类别已经补充的订单数量,初始化时LcAdd为全零向量;
c、建立补充方案矩阵AOQH×2,其中补充方案矩阵AO共有Q×H行,2列。在所述补充方案矩阵中每一行都存储一个(订单缓存区订单编号,待补充类别编号)的补充匹配组合(ol,wk),其中(ol∈1,2,...Q,wk∈1,2,...H);
d、对补充方案矩阵进行可行性分析:初始时令count_ow=1,若AO中第count_ow行所表示的补充匹配组合(ol,wk)满足OTol,wk=1,则从AO中删除该行所对应的补充匹配组合,否则执行Lcwk=Lcwk+1;若此时Lcwk>Caddwk,则从AO中删除该行所对应的补充匹配组合,否则执行count_ow=count_ow+1,重复上述操作,记可行性分析后的AO矩阵为可行补充方案矩阵FAO;
e、在FAO矩阵中选出当前最佳补充方案:对矩阵中每一组匹配组合(ol,wk),基于步骤3中所述订单-货架关系矩阵,订单ool加入待补充订单类别twk中,计算当前类别twk内货架进站次数,具体为:
假设twk内的订单编号为ow1,ow2,…owk,基于步骤3中的订单-货架关系矩阵,分别提取为ow1,ow2,…owk提供货物的货架集合,记为orw1,orw2,…orwk,执行
Orw={orw1}∪{orw2}∪…∪{orwk} (5)
记Orw内包含的货架数目为当前订单类别内的货架进站次数Countrt。将各匹配组合的Countrt按照升序排列,选出排在第一的(ol,wk)匹配组合作为当前最佳分配方案(olbest,wkbest),并在订单—类别补充矩阵OT中将对应的元素值置为1,即同时,执行
f、比较当前CAdd和LcAdd,若两者元素差值和为0则结束,补充后的各类别订单即为拣选站订单组,否则继续按照步骤c~e执行。
S405、若得到订单类别内包含的订单数量等于绑定拣选站存放订单容量,不执行操作,直接形成拣选站订单组。
步骤5:存储步骤3中得到的订单-货架关系矩阵和步骤4中得到的拣选站订单组,将S404中步骤e的类别twk换为每个拣选站,使用e中方法分别计算每个拣选站内订单的货架进站次数,并求和得到货架总进站次数。
步骤6:设置最大迭代次数Itermax,重复执行步骤4-5,每次执行时选择不同的βend和φend,并令Itermax=Itermax-1,同时存储得到的货架总进站次数,直至Itermax等于0停止,选择货架总进站次数最小的一轮,输出该轮中订单-货架关系矩阵和各拣选站订单组,形成(订单编号,拣选站编号,货架编号)的调度方案。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,包括以下步骤:
步骤一、对订单池内全部待拣选的N个订单的需求货物信息编码,建立订单编码矩阵对货架区内M个储物货架的存储货物信息进行编码,建立货架编码矩阵其中,LGO为全部订单中包含货物种类最多的订单所需的货物种类数,LGR为全部货架中包含货物种类最多的货架所储的货物种类数;
步骤二、计算能够满足所述全部订单货物需求的具有最少货架个数的货架集合βend;
步骤三、分别建立每个订单与βend中货架的关系,得到订单-货架关系矩阵;
步骤四、基于订单-货架关系矩阵,对订单池内全部订单分批聚合处理,形成K个拣选站订单组,K为拣选站数量;
步骤五、分别计算各拣选站订单组的货架进站次数,并求和得到货架总进站次数;
步骤六、设置最大迭代次数Itermax,重复步骤四-步骤五,存储得到的货架总进站次数,直至完成Itermax次迭代,选择货架总进站次数最小的一轮,输出该轮中订单-货架关系矩阵和各拣选站订单组,形成调度方案。
2.如权利要求1所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,在步骤一中,对订单需求货物信息和货架存储货物信息均进行编码,具体如下:
建立订单编码矩阵其中N为订单池内具有的待拣选的订单数量,LGO为全部订单中包含货物种类最多的订单需求的货物种类数,初始时为全零矩阵;对于每个订单oi,编码矩阵中通过连续两行进行描述,其中第2i-1行表示订单oi需求的货物种类,从行首开始依次填充,直至填完全部需求货物种类,第2i行表示订单对应上一行货物种类oi需求的货物数量,从行首开始依次填充,直至填完全部需求货物数量;
3.如权利要求1所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,步骤二具体过程为:
S201、计算初始订单货物总需求:对订单池内具有的全部待拣选的N个订单,基于各订单货物输入信息,生成订单货物总需求OG;其中,订单货物总需求中的需求货物为所有订单中的货物种类的并集,对应的货物数量为所有订单中相应货物的数量之和;
S202、定义和初始化各类变量:定义二元组状态变量(α,β):其中α表示订单货物需求,β表示已为订单提供货物的货架集合;定义包含二元组状态变量的四种不同状态:初始状态Sini、转移前状态Scur、转移后状态Strans和终止状态Send;其中初始状态为{Sini:(αini,βini)},αini为步骤S201中全部订单的货物总需求OG,βini为空集;转移前状态、转移后状态和终止状态均为状态集合,即Scur、Strans和Send中包含若干个形如(α,β)的状态变量,在初始时三者均为空集;
S203、生成初始决策货架集合DecRini,对于货架区内具有的M个储物货架,首先令i=1,计算ri存储的货物种类集合与所述初始状态下αini需求的货物种类集合的交集,若交集不为空,则将ri加入集合DecRini,否则执行i=i+1,重复上述步骤,直至i=M;记遍历全体货架后,DecRini包含的货架为
S204、计算转移前状态集合{Scur:(αcur,βcur)},具体为:
初始时Scur为空;对于所述DecRini中的货架首先令k=1,然后取αcur的初值为αini,βcur的初值为βini,并将加入集合βcur中,遍历所述S203中和αcur的货物交集中的全部货物,对每一种货物,若货架中该货物的储量不少于αcur中该货物的需求,则在αcur中删除该货物;否则将αcur中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αcur,βcur)k存入Scur中;执行k=k+1,重复上述步骤,直至k=a,此时Scur中包含数量为a的(αcur,βcur)状态变量组;
S205、对于转移前状态集合Scur中的每个状态组(αcur,βcur)k,分别生成各状态对应的决策货架集合首先令k=1,初始时为空,对于货架区内具有的M个储物货架,令i=1,若ri已经在βcur中存在,则跳过继续判断下一个货架;否则计算ri存储的货物种类集合与所述初始状态下(αcur)k需求的货物种类集合的交集,若交集不为空,则将ri加入集合否则执行i=i+1,重复上述货架判断步骤,直至i=M,然后执行k=k+1,重复上述全部步骤,直至k=a;记得到的每个转移前决策货架集合包含的货架为
S206、计算转移后状态集合{Strans:(αtrans,βtrans)}:初始时Strans为空;首先令kf=1,对于所述中的货架执行如下内操作:令ks=1,然后取(αtrans)ks的初值为(αcur)kf,(βtrans)ks的初值为(βcur)kf,并将加入集合(βtrans)ks中,遍历和(αtrans)ks的货物交集中的全部货物,对每一种货物,若货架中该货物的储量不少于(αtrans)ks中该货物的需求,则在(αtrans)ks中删除该货物;否则将(αtrans)ks中需求该货物的数量减去存储该货物的数量;遍历交集中所有货物后,将状态变量(αtrans,βtrans)ks存入Strans中。执行ks=ks+1,重复上述步骤,直至ks=bkf;结束内操作,执行kf=kf+1,重复上述步骤,直至kf=a,此时Strans中包含数量为的(αtrans,βtrans)状态变量组;
4.如权利要求3所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,步骤三具体过程为:
S301、定义和初始化各类变量:定义五元组状态变量,(ε,χ,γ,η,φ),其中ε表示尚未与货架集合中货架建立关系的订单数量,χ表示订单货物信息矩阵,γ表示货架所储剩余货物信息矩阵,η表示已与订单建立关系的货架集合,φ表示订单货架关系矩阵;
定义包含五元组状态变量的四种不同状态:初始状态S′ini、转移前状态S′cur、转移后状态S′trans和终止状态S′end;其中初始状态为{S′ini:(εini,χini,γini,ηini,φini)},εini为初始订单数量N,χini为每个订单的货物需求,即订单编码矩阵γini为空集,ηini为空集,φini为N×M′的全零矩阵,其中M′为βend中货架的数量;转移前状态、转移后状态和终止状态均为状态集合,即S′cur、S′trans和S′end中可包含若干个形如(ε,χ,γ,η,φ)的状态变量;
S302、生成初始决策货架集合DecR′ini:对于步骤S207中所述的货架集合βend(ri∈βend,i∈1,2,...M′),首先令i=1,计算ri存储的货物种类集合与所述初始状态下χini需求的货物种类集合的交集,若交集不为空,则将ri加入集合DecR′ini,否则执行i=i+1,重复上述步骤,直至i=M′;记遍历全体货架后,DecRini包含的货架为
S303、计算转移前状态集合{S′cur:(εcur,χcur,γcur,ηcur,φcur)}:对于所述初始决策货架集合DecR′ini中的货架首先令k′=1,然后取当前五元组状态变量(εcur,χcur,γcur,ηcur,φcur)的初值为(εini,χini,γini,ηini,φini),并将加入集合ηcur中,通过对(εcur,χcur,γcur,ηcur,φcur)进行状态更新运算,将更新后的状态变量(εcur,χcur,γcur,ηcur,φcur)存入S′cur中,执行k′=k′+1,重复状态更新运算操作,直至k′=a′停止;并将结果存入S′cur中,S′cur中包含数量为a′的(εcur,χcur,γcur,ηcur,φcur)状态变量组;
S304、对于转移前状态集合S′cur中的每个状态组(εcur,χcur,γcur,ηcur,φcur)k′,分别生成对应的决策货架集合首先令k′=1,初始时为空,对于步骤S207中所述的货架集合βend(ri∈βend,i∈1,2,...M′),首先令i=1,若ri已经在ηcur中存在,则跳过继续判断下一个货架;若不存在,则计算ri存储的货物种类集合与所述初始状态下(χcur)k′需求的货物种类集合的交集,若交集不为空,则将ri加入集合否则执行i=i+1,重复上述货架判断步骤,直至i=M′,然后执行k′=k′+1,重复上述全部步骤,直至k′=a′;记得到的每个转移前决策货架集合包含的货架为
S305、计算转移后状态集合{S′trans:(εtrans,χtrans,γtrans,ηtrans,φtrans)}:初始时S′trans为空;首先令kf′=1,对于所述中的货架执行如下内操作:令ks′=1,然后取(εtrans,χtrans,γtrans,ηtrans,φtrans)ks′的初值为(εcur,χcur,γcur,ηcur,φcur)kf′,并将加入集合(ηtrans)ks′中,用替换用(εtrans,χtrans,γtrans,ηtrans,φtrans)ks′替换(εcur,χcur,γcur,ηcur,φcur),执行S303中的状态更新运算,将结果存入S′trans中。执行ks′=ks′+1,重复上述步骤,直至ks′=bkf′;结束内操作,执行kf′=kf′+1,重复上述步骤,直至kf′=a′,此时S′trans中包含数量为的(εtrans,χtrans,γtrans,ηtrans,φtrans)状态变量组;
S306、计算终止状态集合{S′end:(εend,χend,γend,ηend,φend)}:初始时S′end为空;首先令m=1;计算(εtrans,χtrans,γtrans,ηtrans,φtrans)m中的χtrans需求所有货物数量总和,若和值大于0,则执行m=m+1;否则将(εtrans,χtrans,γtrans,ηtrans,φtrans)m记为(εend,χend,γend,ηend,φend)m,存入终止状态S′end中,执行m=m+1;重复上述步骤,直至若此时S′end仍然为空集,则执行将S′cur=S′trans,然后重复执行步骤S304-S305;若此时S′end不为空集,则进入步骤四,其中S′end所包含的每个φend都是全部订单与步骤二中所述的货架集合βend间的订单-货架关系矩阵,所述φend用于步骤四中订单聚合操作。
5.如权利要求4所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,在步骤S207和S306中,用转移后状态集合Strans作为新的转移前状态集合时,若包含的状态数超过给定阈值BM,则需要对Strans的状态数量进行剪枝,使其数量减少至BM,具体方法如下:
a、设定剪枝优先级列表Prlist=({v1:s1},{v2:s2},...,{vp:sp}),其中vp和sp分别表示优先级规则和对应的排序方式,定义剪枝状态集合Sbm和临界状态集合Slimit,两者初始时都为空集;
b、分别计算Strans每个转移状态在Prlist列表中第一优先级元素v1对应的值,并按照s1进行排序;排序后依次取出前BM个值对应的状态作为当前状态,其余删除;排序后若出现“僵局”,即第BM个位置的值与该位置前后的若干个值相同,则先将序列中所有临界值之前的值对应的状态取出并存入剪枝状态Sbm中,然后计算新的阈值为BM与Sbm中状态数的差值,再将所有取值为临界值对应的状态取出,存入临界状态集合Slimit中,执行步骤c;若未出现“僵局”,则依次取出前BM个值对应的状态存入剪枝状态集合Sbm中,其余删除;
c、用Slimit给Strans赋值,优先级序号增加1,即优先级变为{v2:s2},重复步骤b,若阈值不为0则继续执行优先级序号加1和重复步骤b的操作,直至阈值为0,即Sbm中具有BM个状态为止;若Slimit在计算最后一个优先级元素vp的值后仍出现“僵局”,则随机取出数量为当前阈值的临界值对应状态存入Sbm;
d、用Sbm给Scur赋值,即得到新的转移前状态集合。
6.如权利要求4所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,在步骤S303中,分别加入决策货架集合中的每个货架后,状态更新的具体步骤为:
a、令(εcur,χcur,γcur,ηcur,φcur)中的每个变量初始值为初始状态中各变量值(εini,χini,γini,ηini,φini);
b、对于χcur中的全部订单o1,o2,…oN,分别计算存储的货物种类集合与每个订单oi(i=1,2,...N)需求的货物种类集合的交集,若交集为空,则继续下一个订单的计算;若交集不为空,则遍历交集中的全部货物,判断对每一种货物货架储量不少于订单需求量是否都成立;若有至少一种货物不成立,则将oi存入临时集Otemp中,继续下一个订单的计算;若全都成立,则记为完全覆盖订单,在χcur中删除订单oi并执行φcur(i,k′)=1,εcur=εcur-1,其中k′表示货架在φcur中的列编号,更新货物存储量,对交集中的全部货物,存储每种货物的数量减去oi需求该种货物的数量;
c、若γcur当前为空集,则结束;否则执行以下步骤:记γcur中的全部货架编号为rγ1,rγ2,...,rγc,则定义联合货架集合RT:生成联合货架总存储量GRT,其中货物种类为RT中的货物种类的并集,对应的货物数量为RT中相应货物的数量之和;
d、对于Otemp中全部订单首先令tj=1,计算GRT存储的货物种类集合与订单需求货物种类集合的交集,对交集中的每一种货物s,若需求s的数量均小于等于RT存储s的数量,则在χcur中删除该订单信息,执行εcur=εcur-1,tj=tj+1,并进入步骤e;否则执行tj=tj+1,重复上述计算,当j=T时停止,进入步骤f;
7.如权利要求4所述的一种面向多移动货架的两阶段智能订单分拣方法,其特征在于,步骤四的具体过程为:
S401、基于所述步骤3中的订单-货架关系矩阵φend,对订单池内全部订单采用Kmeans算法进行聚类,其中类别数等于K;
S402、定义拣选站编号w1,w2,…wK,基于聚类结果将全部订单分类,随机将所得各订单类别与拣选站进行绑定;
S403、与各拣选站存放订单容量(每个拣选站能够存放的最大订单数量)相比,若订单类别内包含的订单数量多于绑定拣选站存放订单容量,执行贪婪删除操作,被移除的订单存放于订单缓存区,具体为:
首先计算需要删除的订单数量,其值为所述订单类别内包含的订单数量与所述拣选站存放订单容量的差值,然后基于步骤3中所述订单-货架关系矩阵,提取所有与类别内订单建立关系的货架并计算这些货架的出现次数,不断删除当前使用次数最少货架所对应的订单,直至删除的订单数与需要删除的订单数量相等时停止,最后剩余的订单即为拣选站订单组。若执行删除操作时,待删除的订单数超过需要删除的订单数量,则随机选择数量为需要删除的订单数量的订单进行删除;
S404、若订单类别内包含的订单数量少于绑定拣选站存放订单容量,执行最大边际收益补充操作,具体为:
a、定义订单缓存区订单编号o1,o2,…oN'和待补充类别编号t1,t2,…tL;建立订单—类别补充矩阵OTN'×L,若矩阵中元素取值为1,表示订单oi被补充到类别tj中,若取值为0,表示没有补充,初始化时矩阵为全零矩阵;
b、定义一维补充数量向量其中表示每个类别待补充的订单数量,j表示待补充类别编号,表示该类别绑定的拣选站的存放订单容量,为该类别包含订单数量;定义一维已补充数量向量LcAdd=[Lcj]1×L,其中j表示待补充类别编号,Lcj表示该类别已经补充的订单数量,初始化时LcAdd为全零向量;
c、建立补充方案矩阵AON'L×2,存储所有的订单编号、类别编号补充匹配组合(i,j),其中i∈1,2,...N',j∈1,2,...L;
d、对补充方案矩阵进行可行性分析:对矩阵中每一组匹配组合(i,j)执行操作:若OTij=1,则从补充方案矩阵中删除该匹配组合,否则执行Lcj=Lcj+1;若此时则从补充方案矩阵中删除该匹配组合,否则保留;记可行性分析后的AO矩阵为可行补充方案矩阵FAO;
e、在FAO矩阵中选出当前最佳补充方案:对矩阵中每一组匹配组合(i,j),基于步骤3中所述订单-货架关系矩阵,将订单oi加入待补充订单类别tj中,计算当前类别tj内货架进站次数,将各匹配组合的货架进站次数按照升序排列,选出排在第一的(i,j)匹配组合作为当前最佳分配方案(ibest,jbest),并在补充矩阵OL中将对应的元素值置为1,即同时,执行
f、比较当前CAdd和LcAdd,若两者元素差值和为0则结束,补充后的各类别订单即为拣选站订单组,否则继续按照步骤c~e执行;
S405、若得到订单类别内包含的订单数量等于绑定拣选站存放订单容量,不执行操作,直接形成拣选站订单组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598474.6A CN111754176B (zh) | 2020-06-28 | 2020-06-28 | 一种面向多移动货架的两阶段智能订单分拣方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598474.6A CN111754176B (zh) | 2020-06-28 | 2020-06-28 | 一种面向多移动货架的两阶段智能订单分拣方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111754176A true CN111754176A (zh) | 2020-10-09 |
CN111754176B CN111754176B (zh) | 2023-03-28 |
Family
ID=72677648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010598474.6A Active CN111754176B (zh) | 2020-06-28 | 2020-06-28 | 一种面向多移动货架的两阶段智能订单分拣方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111754176B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792902A (zh) * | 2020-11-30 | 2021-12-14 | 北京京东振世信息技术有限公司 | 商品的出库方法及相关设备 |
CN114852566A (zh) * | 2022-04-11 | 2022-08-05 | 深圳市库宝软件有限公司 | 订单处理方法、装置、设备、仓储系统及存储介质 |
CN115130858A (zh) * | 2022-06-27 | 2022-09-30 | 上海聚水潭网络科技有限公司 | 一种基于多目标启发式的订单聚合方法及系统 |
CN117151594A (zh) * | 2023-10-30 | 2023-12-01 | 湖北凯乐仕通达科技有限公司 | 一种分拣站库存箱分配方法、装置和电子设备 |
CN117383126A (zh) * | 2023-11-29 | 2024-01-12 | 广州赛志系统科技有限公司 | 板件分拣缓存库位调度方法、控制系统及智能分拣生产线 |
CN114852566B (zh) * | 2022-04-11 | 2024-05-14 | 深圳市库宝软件有限公司 | 订单处理方法、装置、设备、仓储系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3182348A1 (en) * | 2015-12-17 | 2017-06-21 | Dematic Systems GmbH | Method of order fulfilling by making storage units available from a storage facility in a desired sequence at a picking station |
CN107824463A (zh) * | 2017-09-30 | 2018-03-23 | 北京极智嘉科技有限公司 | 自动物流分拣系统和自动物流分拣方法 |
US20180253683A1 (en) * | 2017-03-02 | 2018-09-06 | Walmart Apollo, Llc | Shipment receiving systems and methods including notification and reconciliation features |
CN208560515U (zh) * | 2018-05-15 | 2019-03-01 | 镇江国中亿家科技有限公司 | 一种用于物流仓储的智能分拣装置 |
-
2020
- 2020-06-28 CN CN202010598474.6A patent/CN111754176B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3182348A1 (en) * | 2015-12-17 | 2017-06-21 | Dematic Systems GmbH | Method of order fulfilling by making storage units available from a storage facility in a desired sequence at a picking station |
US20180253683A1 (en) * | 2017-03-02 | 2018-09-06 | Walmart Apollo, Llc | Shipment receiving systems and methods including notification and reconciliation features |
CN107824463A (zh) * | 2017-09-30 | 2018-03-23 | 北京极智嘉科技有限公司 | 自动物流分拣系统和自动物流分拣方法 |
CN208560515U (zh) * | 2018-05-15 | 2019-03-01 | 镇江国中亿家科技有限公司 | 一种用于物流仓储的智能分拣装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792902A (zh) * | 2020-11-30 | 2021-12-14 | 北京京东振世信息技术有限公司 | 商品的出库方法及相关设备 |
CN114852566A (zh) * | 2022-04-11 | 2022-08-05 | 深圳市库宝软件有限公司 | 订单处理方法、装置、设备、仓储系统及存储介质 |
CN114852566B (zh) * | 2022-04-11 | 2024-05-14 | 深圳市库宝软件有限公司 | 订单处理方法、装置、设备、仓储系统及存储介质 |
CN115130858A (zh) * | 2022-06-27 | 2022-09-30 | 上海聚水潭网络科技有限公司 | 一种基于多目标启发式的订单聚合方法及系统 |
CN115130858B (zh) * | 2022-06-27 | 2024-01-26 | 上海聚水潭网络科技有限公司 | 一种基于多目标启发式的订单聚合方法及系统 |
CN117151594A (zh) * | 2023-10-30 | 2023-12-01 | 湖北凯乐仕通达科技有限公司 | 一种分拣站库存箱分配方法、装置和电子设备 |
CN117151594B (zh) * | 2023-10-30 | 2024-01-16 | 湖北凯乐仕通达科技有限公司 | 一种分拣站库存箱分配方法、装置和电子设备 |
CN117383126A (zh) * | 2023-11-29 | 2024-01-12 | 广州赛志系统科技有限公司 | 板件分拣缓存库位调度方法、控制系统及智能分拣生产线 |
CN117383126B (zh) * | 2023-11-29 | 2024-04-09 | 广州赛志系统科技有限公司 | 板件分拣缓存库位调度方法、控制系统及智能分拣生产线 |
Also Published As
Publication number | Publication date |
---|---|
CN111754176B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111754176B (zh) | 一种面向多移动货架的两阶段智能订单分拣方法 | |
CN109447317B (zh) | 一种基于多人同时拣货的仓库最短路径优化方法 | |
CN109784566B (zh) | 一种订单排序优化方法及装置 | |
CN103971222B (zh) | 多层穿梭车自动仓储系统的货位分配方法 | |
Wutthisirisart et al. | A two-phased heuristic for relation-based item location | |
CN109784791B (zh) | 订单分配方法和装置 | |
CN107886196B (zh) | 一种用于货物取送的单车调度方法 | |
CN111815040B (zh) | 一种用于智能仓库的订单处理和货架指派方法 | |
CN110766194A (zh) | 订单处理方法及装置、仓储系统、计算机设备和存储介质 | |
CN113200275A (zh) | 货箱整理方法、装置、设备、仓储系统及存储介质 | |
Khojasteh et al. | A travel time model for order picking systems in automated warehouses | |
CN110674978A (zh) | 一种车间无人运输系统任务分配与路径规划方法 | |
CN110334993A (zh) | 一种对播种货位进行管控的方法、装置及计算机设备 | |
CN115730789A (zh) | 分类存储下的asrs任务调度与货位分配方法及系统 | |
Jawahar et al. | Optimal random storage allocation for an AS/RS in an FMS | |
CN116679636A (zh) | 一种物流搬运机器人任务调度系统及方法 | |
CN111626516A (zh) | 考虑倒货策略的双深位四向穿梭车系统订单排序优化方法 | |
CN113343367B (zh) | 基于eda算法的舰船航空弹药转运调度优化方法和装置 | |
CN115409448A (zh) | 仓储调度决策方法、装置、终端设备以及存储介质 | |
CN115112137A (zh) | 路径规划方法、装置、电子设备及可读存储介质 | |
Muppani et al. | Formation of storage classes in the presence of space cost for warehouse planning | |
CN117557189B (zh) | 基于机器学习的拣货路径优化方法及系统 | |
Baray et al. | Design methodology for a multiple-level warehouse layout based on particle swarm optimization algorithm | |
CN115456537B (zh) | 仓库拣货路径规划方法及系统 | |
JP7415076B1 (ja) | 情報処理装置、情報処理方法、プログラムおよび情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |