本發(fā)明涉及用于利用機器人自動化存取倉庫內(nèi)貨物的物流系統(tǒng),具體涉及用于物流的訂單排序優(yōu)化方法。
背景技術(shù):
目前,智能倉儲是根據(jù)訂單的需求,倉庫后臺將訂單進行分類匯總,然后用機器人將商品所在貨柜從倉儲區(qū)揀取出來,并運送到貨物分揀區(qū),最后由分揀區(qū)域的工作人員從貨柜的SKU中分揀出當前訂單所需商品的數(shù)量,訂單完成后裝箱出庫。
在現(xiàn)有技術(shù)中,承擔以上功能的典型例子為亞馬遜的kiva機器人,但由于機器人一次性是取整個貨架,而貨架上的其他物品并非都是此次訂單所需要的,那些不需要的商品由于無法被其他訂單所使用,因此會導致效率變差。
技術(shù)實現(xiàn)要素:
鑒于目前存在的訂單中商品無法被并發(fā)使用而導致的效率變差問題,本發(fā)明提供用于物流的訂單排序優(yōu)化方法即基于進化算法的智能倉儲訂單排序的方法,其技術(shù)方案如下。
用于物流的訂單排序優(yōu)化方法,其具體包括:對倉庫存儲系統(tǒng)與物品存放進行布局;獲取當前倉庫庫存信息及需進行處理的訂單內(nèi)容;對訂單進行排序優(yōu)化,排序優(yōu)化過程包括:(1)由于同一類商品可能存放在多個不同的貨柜中,在進行訂單排序優(yōu)化之前,根據(jù)訂單中的商品保質(zhì)期、訂單中商品所在貨柜的商品剩余數(shù)量或貨柜的遠近距離去確定訂單中相應商品應從哪個貨柜中取出;(2)對于確定了商品的取貨貨柜后的訂單進行優(yōu)化排序,為了減小商品的來回運輸,提高商品取出后的使用效率和次數(shù),運用進化計算的優(yōu)化方法對訂單進行優(yōu)化排序,使具有相同商品的訂單盡量排在相鄰位置,從而可以重復利用已取出商品,避免來回運輸商品而造成排單效率的低下。本發(fā)明以小組學習的改進教學算法為優(yōu)化工具,構(gòu)建學習小組概念擴大算法搜索范圍,使優(yōu)化計算避免陷入局部最優(yōu),也使得收斂精度大大增加。
進一步地,所述對倉庫存儲系統(tǒng)與物品存放進行布局具體是:
倉庫中存放有mxn個貨柜,n為行數(shù),m為列數(shù);每個貨柜有自己的ID號;以倉庫的一個位置為坐標原點建立坐標系,在該坐標系統(tǒng)中每個貨柜的位置定義為(Pxi,Pyi),Pxi和Pyi為該貨柜與坐標軸的距離,i為貨柜的ID編號;所述距離以米為單位;在每個貨柜上有一個或多個SKU(stock keeping unit的簡稱,為庫存進出計量的基本單元,以件、盒、托盤等為單位),每個SKU中存放同一種類的商品;
倉庫中存在SP個分揀口,每個分揀口同時能分揀OrderNum個訂單,只有當某一分揀訂單被完成時,才能往分揀口加入下一個被分揀的訂單;第i個分揀口在坐標系中對應坐標定義為(POxi,POyi);物流自動化采用機器人將貨柜從倉儲區(qū)送到每個分揀口,分揀人員從中取出所需的商品后,機器人即馬上將貨柜運走,而該商品可能在隨后的訂單中仍被需要,這樣將花費大量的搬運時間成本,因此給每個分揀口配一個s1xs2的緩存架,即該緩存架包含s1層,每層具有s2個格子,用于緩存貨柜,機器人將貨柜從倉儲區(qū)送到每個分揀臺并分揀;倉庫存儲系統(tǒng)的后臺服務器判斷該貨柜中的商品在隨后k個訂單內(nèi)是否被再次需要分揀,若不需要,則機器人將其運回貨架;否則,則放入緩存架中,以備之后的需要該貨柜中商品的訂單在分揀時直接取用;若放入緩存架后緩存架不滿,則直接放入;若放入后緩存架滿了,則對緩存柜s1xs2個格中的貨柜判斷哪一個貨柜中的商品會被隨后的訂單序列最晚被需要,則機器人將該貨柜送回倉儲區(qū);從而保證在整個分揀過程中,緩存柜至少有一個格是空著的。
進一步地,所述獲取當前倉庫庫存信息及需進行處理的訂單內(nèi)容具體包括:
獲取物流初始信息,該初始信息包括當前倉庫商品庫存信息、分揀口當前仍未分揀完的訂單信息、需優(yōu)化的訂單和訂單信息;所述當前倉庫商品庫存信息具體包括獲取倉庫中所有的貨柜ID及其坐標、每個貨柜包括的SKU數(shù)量及每個SKU內(nèi)存放商品的商品ID、商品數(shù)量與商品保質(zhì)日期;所述的獲取分揀口當前仍未分揀完的訂單信息具體包括獲取每個分揀口未完成的訂單數(shù)量、這些訂單所包含的商品ID及商品所需數(shù)量、此時緩存架中的貨柜ID;所述的獲取需優(yōu)化的訂單和訂單信息具體如下:
需優(yōu)化的訂單的獲取過程為:一批次處理N張訂單的排序優(yōu)化,訂單的優(yōu)化按照先下單先排序的準則進行;首先從N個訂單中獲取分揀商品ID和商品數(shù)量,判斷需分揀的每種商品的庫存量是否滿足需求,若滿足,此N個訂單進行入待排序狀態(tài);若任意一種或多種商品庫存量不夠,則提醒倉儲管理人員進行補貨,并將此N個訂單順延到下一次再進行排序優(yōu)化;同時重新提取隨后N個訂單對其信息商品庫存的上述判斷,否則重復上面的步驟直至N個訂單的所需商品數(shù)量庫存均能滿足為止;
需優(yōu)化訂單的信息包括N個訂單中每個訂單所包含的商品ID及商品所需數(shù)量;訂單在讀取時按讀取順序?qū)ζ溥M行1,…,N編號;在N個訂單中被需要的所有商品各自被存放的貨柜的ID。
進一步地,所述步驟(1)具體是:
在優(yōu)化排序前需確定訂單中各商品所用貨柜ID,對于N個待排序訂單序列,在保持分配后每個分揀口數(shù)量相當?shù)臈l件下先將訂單分配給每個分揀口,訂單的分配分為兩種模式,分別為啟動模式和連續(xù)工作模式;再按照訂單順序根據(jù)訂單中不同的商品為其采取保質(zhì)期優(yōu)先、商品剩余數(shù)量優(yōu)先、距離優(yōu)先三種策略中的一種為其選取所需的貨柜。按照某種策略進行貨柜選取后,若最優(yōu)貨柜商品數(shù)量不夠訂單需求,則需要同時再取次優(yōu)貨柜以滿足不足部分,若次優(yōu)貨柜內(nèi)包含的商品數(shù)量依舊不夠,則同時需再取次次優(yōu),若再不滿足則同理,直到滿足該商品所需的數(shù)量;重復以上步驟直到給所有訂單中所有的商品都確定好其所需貨柜;
4.1:所述的訂單分配的啟動模式為:啟動模式通常在每個新工作日的開始時;每個分揀口均在前一工作日完成了分配的任務,每個分揀口無未分揀完的訂單,而每個分揀口的緩存架還維持著前一工作日工作完成時的狀態(tài);
4.2:所述的訂單分配的連續(xù)工作模式為:啟動模式之后的均為連續(xù)工作模式;在連續(xù)工作模式中,當某個分揀口剩余未分揀的訂單數(shù)量不大于Ordernum個時后臺給各分揀口分配訂單并加在每個分揀口未分揀完的訂單之后;
4.3:所述的貨柜確定的三種策略的具體內(nèi)容為:對于有保質(zhì)期限制的商品采取保質(zhì)期優(yōu)先策略,保質(zhì)期優(yōu)先策略為優(yōu)先分配距過期時間最短的存放該商品的貨柜;對于數(shù)量多的商品采取商品剩余數(shù)量優(yōu)先策略,商品剩余數(shù)量優(yōu)先策略為優(yōu)先分配庫存該商品數(shù)量最少的貨柜,以防止過多的貨柜剩余商品數(shù)量同時降到貨柜的補貨臨界點所導致的沒及時補貨而產(chǎn)生的商品總數(shù)量不足問題;對于大型商品采取距離優(yōu)先策略,距離優(yōu)先策略為優(yōu)先分配離所需該商品的分揀口最近的貨柜,該距離利用貨柜和分揀口的歐式距離來求取。
進一步地,所述步驟(2)具體是:
5.1:訂單的排序優(yōu)化的問題描述:同一商品可能存放在多個貨柜中或不同商品存放在同一貨柜的不同SKU中,因此優(yōu)化算法要求在訂單排序前應先確定分揀商品時所用到的貨柜ID號,將每個訂單中的每個商品確定好其所用的貨柜ID后,再對訂單序列進行優(yōu)化排序,使需要相同ID貨柜的商品訂單盡量排在同一分揀口,而不同分揀口的訂單盡量不使用相同ID貨柜,即同一分揀口的訂單之間的相似程度高盡量高,而不同分揀口的訂單之間的相似度盡量低;
5.2:所述的訂單的優(yōu)化排序問題的模型可描述為:優(yōu)化算法對確定好使用貨柜ID的訂單序列進行優(yōu)化排序,以得到效率最高的的訂單序列,即優(yōu)化目標函數(shù)f的值最高;模型的中的變量定義如下:
Ordernum:每一個分揀口同時可分揀的訂單數(shù)量
SP:分揀口的數(shù)量
li:N個訂單分配到第i個分揀口的數(shù)量
rei:第i個分揀口未完成訂單數(shù)量(啟動模式下為0)
Q1、Q2、P:加權(quán)系數(shù),為正常數(shù)
pij:第i個分揀口的第j個訂單,j=1,...,rei,...,rei+li
habc1,habc2:分別表示與pab交叉的第c個出口的下限與上限的訂單編號
SNabcd:表示pab和pcd中包含所需相同ID貨柜的商品數(shù)量
SSab:表示pab所需第a個分揀口的緩存架上貨柜的商品數(shù)量
決策變量為:
優(yōu)化模型如下:
目標函數(shù):
約束條件:
min(rei,Ordernum)≤(1-z)·Ordernum 公式(4)
上述約束中公式(2)、公式(3)表示N個訂單在在保持分配后每個分揀口數(shù)量相當?shù)臈l件下將訂單分配給每個分揀口;公式(4)表示在啟動模式時,每個分揀口未分揀完訂單數(shù)量均為0;在連續(xù)工作模式時,只有在某個分揀口待處理訂單數(shù)量小于Ordernum時才會加入新的訂單;
5.3:所述的問題的模型的優(yōu)化目標函數(shù)f是由兩部分組成,即同一分揀口的訂單之間的相似性和不同分揀口之間的訂單的相似性組成,f所表示的即為優(yōu)化目標的適應度值;
所述的同一分揀口的訂單之間的相似性定義如下:分配到同一個分揀口的訂單之間相似性越高則適應值越高,同一分揀口的相似性具體如目標函數(shù)中的部分描述,此時決策變量xabcd=1,即a=c,b≠d;其中Q1,Q2為權(quán)重系數(shù),而表示越相近的訂單間的相似性對適應值的影響增大,同時,相距較遠的訂單間的相似性也仍具有一定的影響力,表示在啟動模式下,還需將每個分揀口的前Ordernum個訂單與該分揀口的緩存架進行比較;
所述的適應值的計算中不同分揀口之間的訂單的相似性求取過程如下:分配到不同分揀口的訂單之間相似性越低則適應值越高,這樣可以保證同一貨柜盡量不要被不同分揀口使用;假定每個商品處理的時間相當,則可將一個訂單的被分揀時間段轉(zhuǎn)化為其在訂單序列中的位置,以商品為單位,某訂單起始位置為訂單中第一個商品所在該分揀口所有訂單商品序列中的順序號,而訂單終止位置為該訂單中最后一個商品所在該分揀口所有訂單序列中的順序號;獲取其他分揀口的相同起點與終點位置間的所對應的訂單,這些訂單被稱為與其交叉的訂單;將與第a個分揀口的第b個訂單交叉的第c個分揀口的訂單編號下限與上限定義為(habc1,habc2);每個訂單與其有交叉的訂單進行比較,又因要考慮到機器人的搬運時間,因此將對比的范圍擴大Δ個訂單,即habc1=habc1-Δ,habc2=habc2+Δ,且habc1≥0,habc2≤lc;不同分揀口的相似性具體如目標函數(shù)中的部分描述,此時a≠c。當不同分揀口間的訂單所需貨柜起沖突時,也即兩個在不同分揀口的訂單會使用相同ID的貨柜時,則采用一個懲罰函數(shù),P取一個很大的正數(shù),使其適應值減低;
6.4采用進化算法用于解決所述的訂單的排序優(yōu)化問題,具體采用的進化算法為基于學習小組的改進教學算法,算法具體如下:
教學算法是在教師對學生的課堂教學過程中,以達到最佳教學效果和提高班級學習質(zhì)量為目的,而提取出的一種新型算法;教學算法也是一種群體智能進化算法,在整個群體中,每一代的最優(yōu)個體為Teacher,每個個體通過學習更新自己;針對傳統(tǒng)教學算法容易早熟收斂陷入局部最優(yōu)的問題,引入學習小組的概念;將學生分為多個學習小組,每個小組分別有個Leader,充當教學算法中Teacher的角色;算法的流程為:
1)算法初始化;利用隨機和啟發(fā)式信息產(chǎn)生Np個學習小組,即子種群;每個小組(子種群)含有Popsize個成員,即種群大小為Np*Popsize;初始化迭代次數(shù)Gen,小組交換成員個數(shù)Iv=1;
2)對每個學習小組成員進行適應值評估,選出每個學習小組的Leader;
3)每個學習小組獨立進化,依次進行教師教學階段、學生相互學習階段、學生自學習階段的學習;
4)若每個學習小組連續(xù)五次迭代都沒得到更優(yōu)個體,則進行學習小組間成員交換;
5)若達到算法終止條件,則算法結(jié)束;否則轉(zhuǎn)至5.1.2;
5.4.1所述的基于學習小組的改進教學算法中種群中成員的編碼方式為:在進化算法中,每一個成員都對應于該問題的一個解;進化的過程即為由初始解逐步迭代產(chǎn)生新的優(yōu)秀成員的過程;對于處理的N個訂單,每個解即學習小組成員由染色體的基因表示,每個基因即為訂單的編號,染色體長度為N,染色體基因的順序決定了訂單所分配的分揀口與被處理的順序;根據(jù)公式(2)、公式(3),可得到l1,l2,...,lSP,將訂單序列中前l(fā)1個訂單分配給分揀口1,接下來的l2個訂單分配給分揀口2,以此類推;如編碼為912453876的長度為9的訂單序列,分配給兩個分揀口,兩個分揀口分別還有3個與2個完成訂單,則可知將前4個訂單即9、1、2、4分配給分揀口1,后五個訂單即5、3、8、7、6分配給分揀口2;
5.4.2所述的基于學習小組的改進教學算法中種群初始化的過程為:初始種群對進化算法收斂速度和準確性有重要的影響;初始種群質(zhì)量不好,可能會大大增加算法的進化代數(shù),導致計算效率降低,影響問題求取精度;本發(fā)明確定初始條件時,先通過對各商品所需頻次進行統(tǒng)計,利用頻次高到低的啟發(fā)式信息對種群中的某個成員進行初始化,其他個體仍利用隨機產(chǎn)生方式產(chǎn)生;
6.4.3:所述的基于學習小組的改進教學算法中學習小組成員交換的策略為:當進化連續(xù)迭代五次所有小組都沒有進化得到更優(yōu)的成員的時候,為改善學習氛圍,進行學習小組成員交換,每次交換Iv個成員,成員的選擇方式為輪盤賭選擇法,交換完成后Iv=Iv+1,且Iv大小不能超過Popsize/2;該改進方式能很好的保證各種群的多樣性,避免早熟收斂;
5.4.4:所述的基于學習小組的改進教學算法中教師教學階段為:每一代中最優(yōu)的個體作為教師,負責引領種群進行進化;用下式描述子種群和教師之間的差距:
Difference_Meani=ri(Mnew-TFMi) 公式(5)
其中,TF表示教學因子,TF=[1+round(0,1)],ri為[0,1]間的隨機數(shù);Mi為第i代的平均水平,Mnew表示期望的下一代的平均水平,一般取當前種群的最優(yōu)個體;
在教師階段,每個學生根據(jù)Difference_Meansi按照下式進行學習:
Xnew,j=Xold,j+Difference_Meansi 公式(6)
其中Xnew,i,Xold,i表示更新前后的第i代的第j個個體;只有當學生的水平有所提高的時候,即適應值更優(yōu)時,當前的學習過程才會被接受;
5.4.5:所述的基于學習小組的改進教學算法中學生相互學習階段為:學生除了會向老師學習以外,還會相互進行學習,從而相互影響共同進步;學生相互學習階段的過程即是隨機選擇兩個學生進行交叉操作,這個過程同樣只有當學生水平有所提高時才被接受;
5.4.6:所述的基于學習小組的改進教學算法中學生自學習階段為:除了會向他人學習以外,學生還具有自學的能力;優(yōu)秀的學生自我學習的能力更強,因此學習的次數(shù)更多,同時學習能力差的學生,也會給予其一定的學習機會以提高自己;因此將學習次數(shù)定義在一個范圍[Smin,Smax],根據(jù)公式(7)計算獲得每個個體的學習次數(shù):
其中LA(i)=f(i)/max(f(i))表示第i個個體的學習能力,f(i)為第i個個體的適應值;考慮到運行的效率,取Smin=1,Smax=15,Smean=(Smin+Smax)/2;每個個體根據(jù)自學習算子進行各自學習次數(shù)的學習,從多次的學習中選擇最優(yōu)的那個方向進行進化,即用某個個體鄰域中的最優(yōu)個體替換當前個體;
5.4.7:所述的基于學習小組的改進教學算法中教師教學階段和學生相互學習階段采用的交叉算子為:為保證后代中的染色體不會產(chǎn)生基因的重疊與缺失,交叉算子采取基于位置的交叉算子;即在parent1中隨機選擇若干個位置的基因并按照其在parent1中的位置繼承給子代,并將parent2中未被parent1選中的基因按順序添加到子代的欠缺的基因中;
5.4.8:所述的基于學習小組的改進教學算法中學生自學習階段采用的自學習算子為:自學習算子采用單點交叉算子、倒位算子與移位算子。所述的自學習算子中單點交叉算子為:隨機選取兩個基因位,交換其位置,單點交叉對于個體的改變較?。凰龅淖詫W習算子中倒位算子為:隨機選取兩個基因位,對兩個位置間的基因進行字符串反轉(zhuǎn)操作;所述的自學習算子中移位算子為:隨機選取兩個基因位,對兩個位置間的基因進行循環(huán)左移一位的操作。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點和技術(shù)效果:本發(fā)明解決了物流過程訂單商品的取貨效率最優(yōu)的問題。由于同一類商品可能存放在多個不同的貨柜中,在進行訂單排序優(yōu)化之前,根據(jù)訂單中的商品保質(zhì)期、訂單中商品所在貨柜的商品剩余數(shù)量或貨柜的遠近距離去確定訂單中相應商品應從哪個貨柜中取出;二是:對于確定了商品的取貨貨柜后的訂單進行優(yōu)化排序。為了減小商品的來回運輸,提高商品取出后的使用效率和次數(shù),運用進化計算的優(yōu)化方法對訂單進行優(yōu)化排序,使具有相同商品的訂單盡量排在相鄰位置,從而可以重復利用已取出商品,避免來回運輸商品而造成排單效率的低下。其中本發(fā)明使用的進化算法為以小組學習的改進教學方法,利用所構(gòu)建的學習小組概念擴大算法搜索范圍,使優(yōu)化計算避免陷入局部最優(yōu),也使得收斂精度大大增加。
附圖說明
圖1為實例中倉庫的構(gòu)造與布局圖。
圖2為實例中訂單序列優(yōu)化排序系統(tǒng)整體流程圖。
圖3為實例中訂單間對比的說明圖。
圖4為實例中基于學習小組的改進教學算法的流程圖。
圖5為實例中交叉操作示意圖。
圖6為實例中自學習操作示意圖。
具體實施方式
前面發(fā)明內(nèi)容部分已對本發(fā)明作了詳細描述,下面再結(jié)合附圖進一步說明本發(fā)明的實現(xiàn),以下內(nèi)容只作為實施例,并不是對本發(fā)明保護范圍的限定。
1.用于物流的訂單排序優(yōu)化系統(tǒng)和方法具體包括:相關(guān)的倉庫存儲系統(tǒng)與物品存放布局的描述;獲取當前倉庫庫存信息及進行處理的訂單內(nèi)容;訂單的排序優(yōu)化,其過程包括兩方面,一是:確定訂單中商品的取貨貨柜。由于同一類商品可能存放在多個不同的貨柜中,在進行訂單排序優(yōu)化之前,根據(jù)訂單中的商品保質(zhì)期、訂單中商品所在貨柜的商品剩余數(shù)量或貨柜的遠近距離去確定訂單中相應商品應從哪個貨柜中取出;二是:對于確定了商品的取貨貨柜后的訂單進行優(yōu)化排序。為了減小商品的來回運輸,提高商品取出后的使用效率和次數(shù),運用進化計算的優(yōu)化方法對訂單進行優(yōu)化排序,使具有相同商品的訂單盡量排在相鄰位置,從而可以重復利用已取出商品,避免來回運輸商品而造成排單效率的低下。本發(fā)明以小組學習的改進教學算法為優(yōu)化工具,構(gòu)建學習小組概念擴大算法搜索范圍,使優(yōu)化計算避免陷入局部最優(yōu),也使得收斂精度大大增加。
2.如圖1所示。如上所述的用于物流的訂單排序優(yōu)化系統(tǒng)和方法,相關(guān)的倉庫存儲系統(tǒng)與物品存放布局具體如下:
2.1:本系統(tǒng)僅根據(jù)物流所需發(fā)貨的訂單商品內(nèi)容,考慮商品的取貨的約束條件,進行商品取貨貨柜ID的確定和發(fā)貨訂單的先后排序。
2.1.1:商品的取貨約束條件為商品保質(zhì)期、訂單中商品所在貨柜的商品剩余數(shù)量或貨柜的遠近距離。
2.2:倉庫中存放有mxn個貨柜,n為行數(shù),m為列數(shù)。每個貨柜有自己的ID號。以倉庫某個位置為坐標原點建立坐標系,在該坐標系統(tǒng)中每個貨柜的位置定義為(Pxi,Pyi),Pxi和Pyi為該貨柜與坐標軸的距離,i為貨柜的ID編號。本系統(tǒng)中設計的距離以米為單位。在每個貨柜上有一個或多個SKU(stock keeping unit的簡稱,為庫存進出計量的基本單元,以件、盒、托盤等為單位),每個SKU中存放同一種類的商品。
2.3:倉庫中存在SP個分揀口,每個分揀口同時能分揀OrderNum個訂單,只有當某一分揀訂單被完成時,才能往分揀口加入下一個被分揀的訂單。第i個分揀口在坐標系中對應坐標定義為(POxi,POyi)。物流自動化采用機器人將貨柜從倉儲區(qū)送到每個分揀口,分揀人員從中取出所需的商品后,機器人即馬上將貨柜運走,而該商品可能在隨后的訂單中仍被需要,這樣將花費大量的搬運時間成本,因此給每個分揀口配一個s1xs2的緩存架,即該緩存架包含s1層,每層具有s2個格子,其用于緩存貨柜,機器人將貨柜從倉儲區(qū)送到每個分揀臺并分揀。根據(jù)訂單排序優(yōu)化的結(jié)果,系統(tǒng)判斷該貨柜中的商品在隨后k個訂單內(nèi)是否被再次需要分揀,若不需要,則機器人將其運回貨架;否則,則放入緩存架中,以備之后的需要該貨柜中商品的訂單在分揀時直接取用。若放入緩存架后緩存架不滿,則直接放入;若放入后緩存架滿了,則對緩存柜s1xs2個格中的貨柜判斷哪一個貨柜中的商品會被隨后的訂單序列最晚被需要,則機器人將該貨柜送回倉儲區(qū)。從而保證在整個分揀過程中,緩存柜至少有一個格是空著的。
3.如上所述的用于物流的訂單排序優(yōu)化系統(tǒng)和方法,獲取物流的訂單排序優(yōu)化系統(tǒng)的初始信息,該初始信息包括獲取當前倉庫商品庫存信息、分揀口當前仍未分揀完的訂單信息、需優(yōu)化的訂單和訂單信息:
3.1:獲取當前倉庫商品庫存信息具體包括獲取倉庫中所有的貨柜ID及其坐標、每個貨柜包括的SKU數(shù)量及每個SKU內(nèi)存放商品的商品ID、商品數(shù)量與商品保質(zhì)日期。
3.2:獲取分揀口當前仍未分揀完的訂單信息具體包括獲取每個分揀口未完成的訂單數(shù)量、這些訂單所包含的商品ID及商品所需數(shù)量、此時緩存架中的貨柜ID。
3.3:獲取需優(yōu)化的訂單和訂單信息具體如下:
3.3.1獲取所需優(yōu)化的訂單具體內(nèi)容為:系統(tǒng)一批處理N張訂單的排序優(yōu)化,訂單的優(yōu)化按照先下單先排序的準則進行。首先從N個訂單中獲取分揀商品ID和商品數(shù)量,判斷需分揀的每種商品的庫存量是否滿足需求,若滿足,此N個訂單進行入待排序狀態(tài);若任意一種或多種商品庫存量不夠,則提醒倉儲管理人員進行補貨,并將此N個訂單順延到下一次再進行排序優(yōu)化。同時重新提取隨后N個訂單對其信息商品庫存的上述判斷,否則重復上面的步驟直至N個訂單的所需商品數(shù)量庫存均能滿足為止。
3.3.2:獲取所需優(yōu)化訂單的信息包括獲取N個訂單中每個訂單所包含的商品ID及商品所需數(shù)量。訂單在讀取時按讀取順序?qū)ζ溥M行1,…,N編號。獲取在N個訂單中被需要的所有商品各自被存放的貨柜的ID。
4.如上所述的用于物流的訂單排序優(yōu)化系統(tǒng)和方法,訂單的排序優(yōu)化系統(tǒng)的流程圖如圖2所示,具體內(nèi)容如下:
4.1:訂單的排序優(yōu)化系統(tǒng)的問題描述:同一商品可能存放在多個貨柜中或不同商品存放在同一貨柜的不同SKU中,因此優(yōu)化算法要求在訂單排序前應先確定分揀商品時所用到的貨柜ID號,將每個訂單中的每個商品確定好其所用的貨柜ID后,再對訂單序列進行優(yōu)化排序,使需要相同ID貨柜的商品訂單盡量排在同一分揀口,而不同分揀口的訂單盡量不使用相同ID貨柜,即同一分揀口的訂單之間的相似程度高盡量高,而不同分揀口的訂單之間的相似度盡量低。
4.2:在優(yōu)化排序前確定訂單中各商品所用貨柜ID的具體過程為:對于N個待排序訂單序列,在保持分配后每個分揀口數(shù)量相當?shù)臈l件下先將訂單分配給每個分揀口,訂單的分配分為兩種模式,分別為啟動模式和連續(xù)工作模式。再按照訂單順序根據(jù)訂單中不同的商品為其采取保質(zhì)期優(yōu)先、商品剩余數(shù)量優(yōu)先、距離優(yōu)先三種策略中的一種為其選取所需的貨柜。按照某種策略進行貨柜選取后,若最優(yōu)貨柜商品數(shù)量不夠訂單需求,則需要同時再取次優(yōu)貨柜以滿足不足部分,若次優(yōu)貨柜內(nèi)包含的商品數(shù)量依舊不夠,則同時需再取次次優(yōu),若再不滿足則同理,直到滿足該商品所需的數(shù)量。重復以上步驟直到給所有訂單中所有的商品都確定好其所需貨柜。
4.2.1:訂單分配的啟動模式為:啟動模式通常在每個新工作日的開始時。每個分揀口均在前一工作日完成了分配的任務,每個分揀口無未分揀完的訂單,而每個分揀口的緩存架還維持著前一工作日工作完成時的狀態(tài)。
4.2.2:訂單分配的連續(xù)工作模式為:啟動模式之后的均為連續(xù)工作模式。在連續(xù)工作模式中,當某個分揀口剩余未分揀的訂單數(shù)量不大于Ordernum個時后臺給各分揀口分配訂單并加在每個分揀口未分揀完的訂單之后。
4.2.3:貨柜確定的三種策略的具體內(nèi)容為:對于有保質(zhì)期限制的商品采取保質(zhì)期優(yōu)先策略,保質(zhì)期優(yōu)先策略為優(yōu)先分配距過期時間最短的存放該商品的貨柜;對于數(shù)量多的商品采取商品剩余數(shù)量優(yōu)先策略,商品剩余數(shù)量優(yōu)先策略為優(yōu)先分配庫存該商品數(shù)量最少的貨柜,以防止過多的貨柜剩余商品數(shù)量同時降到貨柜的補貨臨界點所導致的沒及時補貨而產(chǎn)生的商品總數(shù)量不足問題;對于大型商品采取距離優(yōu)先策略,距離優(yōu)先策略為優(yōu)先分配離所需該商品的分揀口最近的貨柜,該距離利用貨柜和分揀口的歐式距離來求取。
4.3:如上所述優(yōu)化排序問題的模型可描述為:優(yōu)化算法對確定好使用貨柜ID的訂單序列進行優(yōu)化排序,以得到效率最高的的訂單序列,即優(yōu)化目標函數(shù)f的值最高。模型的中的變量定義如下:
Ordernum:一個分揀口同時可分揀的訂單數(shù)量
SP:分揀口的數(shù)量
li:N個訂單分配到第i個分揀口的數(shù)量
rei:第i個分揀口未完成訂單數(shù)量(啟動模式下為0)
Q1、Q2、P:加權(quán)系數(shù),為正常數(shù)
pij:第i個分揀口的第j個訂單,j=1,...,rei,...,rei+li
habc1,habc2:分別表示與pab交叉的第c個出口的下限與上限的訂單編號
SNabcd:表示pab和pcd中包含所需相同ID貨柜的商品數(shù)量
SSab:表示pab所需第a個分揀口的緩存架上貨柜的商品數(shù)量
決策變量為:
優(yōu)化模型如下:
目標函數(shù):
約束條件:
min(rei,Ordernum)≤(1-z)·Ordernum 公式(11)
上述約束中公式(9)、公式(10)表示N個訂單在在保持分配后每個分揀口數(shù)量相當?shù)臈l件下將訂單分配給每個分揀口。公式(11)表示在啟動模式時,每個分揀口未分揀完訂單數(shù)量均為0;在連續(xù)工作模式時,只有在某個分揀口待處理訂單數(shù)量小于Ordernum時才會加入新的訂單。
4.4:如上模型的優(yōu)化目標函數(shù)是由兩部分組成即同一分揀口的訂單之間的相似性和不同分揀口之間的訂單的相似性組成,f所表示的即為適應度值。
4.4.1:適應值的計算中同一分揀口的訂單之間的相似性定義如下:分配到同一個分揀口的訂單之間相似性越高則適應值越高,同一分揀口的相似性具體如上所述目標函數(shù)中的部分描述,此時決策變量xabcd=1,即a=c,b≠d。其中Q1,Q2為權(quán)重系數(shù),而表示越相近的訂單間的相似性對適應值的影響增大,同時,相距較遠的訂單間的相似性也仍具有一定的影響力,表示在啟動模式下,還需將每個分揀口的前Ordernum個訂單與該分揀口的緩存架進行比較。
4.4.2:適應值的計算中不同分揀口之間的訂單的相似性求取過程如下:分配到不同分揀口的訂單之間相似性越低則適應值越高,這樣可以保證同一貨柜盡量不要被不同分揀口使用。假定每個商品處理的時間相當,則可將一個訂單的被分揀時間段轉(zhuǎn)化為其在訂單序列中的位置,以商品為單位,某訂單起始位置為訂單中第一個商品所在該分揀口所有訂單商品序列中的順序號,而訂單終止位置為該訂單中最后一個商品所在該分揀口所有訂單序列中的順序號。獲取其他分揀口的相同起點與終點位置間的所對應的訂單,這些訂單被稱為與其交叉的訂單。將與第a個分揀口的第b個訂單交叉的第c個分揀口的訂單編號下限與上限定義為(habc1,habc2)。每個訂單與其有交叉的訂單進行比較,又因要考慮到機器人的搬運時間,因此將對比的范圍擴大Δ個訂單,即habc1=habc1-Δ,habc2=habc2+Δ,且habc1≥0,habc2≤lc。不同分揀口的相似性具體如中目標函數(shù)中的部分描述,此時a≠c。當不同分揀口間的訂單所需貨柜起沖突時,也即兩個在不同分揀口的訂單會使用相同ID的貨柜時,則采用一個懲罰函數(shù),P取一個很大的正數(shù),使其適應值減低。
5.如上所述的用于物流的訂單排序優(yōu)化系統(tǒng)和方法,訂單的排序優(yōu)化系統(tǒng)的所采用的進化算法為基于學習小組的改進教學算法。具體如下:
5.1:教學算法是在教師對學生的課堂教學過程中,以達到最佳教學效果和提高班級學習質(zhì)量為目的,而提取出的一種新型算法。教學算法也是一種群體智能進化算法,在整個群體中,每一代的最優(yōu)個體為Teacher,每個個體通過學習更新自己。針對傳統(tǒng)教學算法容易早熟收斂陷入局部最優(yōu)的問題,引入學習小組的概念。將學生分為多個學習小組,每個小組分別有個Leader,充當教學算法中Teacher的角色?;趯W習小組的改進教學算法的流程圖如圖4所示,算法流程為:
5.1.1:算法初始化。利用隨機和啟發(fā)式信息產(chǎn)生Np個學習小組,即子種群。每個小組(子種群)含有Popsize個成員,即種群大小為Np*Popsize。初始化迭代次數(shù)Gen,小組交換成員個數(shù)Iv=1。
5.1.2:對每個學習小組成員進行適應值評估,選出每個學習小組的Leader。
5.1.3:每個學習小組獨立進化,依次進行教師教學階段、學生相互學習階段、學生自學習階段的學習。
5.1.4:若每個學習小組連續(xù)五次迭代都沒得到更優(yōu)個體,則進行學習小組間成員交換。
5.1.5:若達到算法終止條件,則算法結(jié)束;否則轉(zhuǎn)至5.1.2。
5.2:基于學習小組的改進教學算法中種群中成員的編碼方式為:在進化算法中,每一個成員都對應于該問題的一個解。進化的過程即為由初始解逐步迭代產(chǎn)生新的優(yōu)秀成員的過程。對于處理的N個訂單,每個解即學習小組成員由染色體的基因表示,每個基因即為訂單的編號,染色體長度為N,染色體基因的順序決定了訂單所分配的分揀口與被處理的順序。根據(jù)公式(9)、公式(10),可得到l1,l2,...,lSP,將訂單序列中前l(fā)1個訂單分配給分揀口1,接下來的l2個訂單分配給分揀口2,以此類推。如編碼為912453876的長度為9的訂單序列,分配給兩個分揀口,兩個分揀口分別還有3個與2個完成訂單,則可知將前4個訂單即9、1、2、4分配給分揀口1,后五個訂單即5、3、8、7、6分配給分揀口2。
5.3:基于學習小組的改進教學算法中種群初始化的過程為:初始種群對進化算法收斂速度和準確性有重要的影響。初始種群質(zhì)量不好,可能會大大增加算法的進化代數(shù),導致計算效率降低,影響問題求取精度。本發(fā)明確定初始條件時,先通過對各商品所需頻次進行統(tǒng)計,利用頻次高到低的啟發(fā)式信息對種群中的某個成員進行初始化,其他個體仍利用隨機產(chǎn)生方式產(chǎn)生。
5.4:基于學習小組的改進教學算法中學習小組成員交換的策略為:當進化連續(xù)迭代五次所有小組都沒有進化得到更優(yōu)的成員的時候,為改善學習氛圍,進行學習小組成員交換,每次交換Iv個成員,成員的選擇方式為輪盤賭選擇法,交換完成后Iv=Iv+1,且Iv大小不能超過Popsize/2。該改進方式能很好的保證各種群的多樣性,避免早熟收斂。
5.5:基于學習小組的改進教學算法中教師教學階段為:每一代中最優(yōu)的個體作為教師,負責引領種群進行進化。用下式描述整個種群和教師之間的差距。
Difference_Meani=ri(Mnew-TFMi) 公式(12)
其中,TF表示教學因子,TF=[1+round(0,1)],ri為[0,1]間的隨機數(shù)。Mi為第i代的平均水平,Mnew表示期望的下一代的平均水平,一般取當前種群的最優(yōu)個體。
在教師階段,每個學生根據(jù)Difference_Meansi按照下式進行學習。
Xnew,j=Xold,j+Difference_Meansi 公式(13)
其中Xnew,i,Xold,i表示更新前后的第i代的第j個個體。只有當學生的水平有所提高的時候,即適應值更優(yōu)時,當前的學習過程才會被接受。
5.6:基于學習小組的改進教學算法中學生相互學習階段為:學生除了會向老師學習以外,還會相互進行學習,從而相互影響共同進步。學生相互學習階段的過程即是隨機選擇兩個學生進行交叉操作,這個過程同樣只有當學生水平有所提高時才被接受。
5.7:基于學習小組的改進教學算法中學生自學習階段為:除了會向他人學習以外,學生還具有自學的能力。優(yōu)秀的學生自我學習的能力更強,因此學習的次數(shù)更多,同時學習能力差的學生,也會給予其一定的學習機會以提高自己。因此將學習次數(shù)定義在一個范圍[Smin,Smax],根據(jù)公式(14)計算獲得每個個體的學習次數(shù)。
其中LA(i)=f(i)/max(f(i))表示第i個個體的學習能力,f(i)為第i個個體的適應值??紤]到運行的效率,取Smin=1,Smax=15,Smean=(Smin+Smax)/2。每個個體根據(jù)自學習算子進行各自學習次數(shù)的學習,從多次的學習中選擇最優(yōu)的那個方向進行進化,即用某個個體鄰域中的最優(yōu)個體替換當前個體。
5.8:基于學習小組的改進教學算法中教師教學階段和學生相互學習階段采用的交叉算子為:為保證后代中的染色體不會產(chǎn)生基因的重疊與缺失,交叉算子采取基于位置的交叉算子。即在parent1中隨機選擇若干個位置的基因并按照其在parent1中的位置繼承給子代,并將parent2中未被parent1選中的基因按順序添加到子代的欠缺的基因中。如圖5所示,parent1中箭頭所指為被選擇的parent1中的基因位置,將其繼承給子代,如child中箭頭所指;再將parent2中未被parent1選中的基因,如parent2中箭頭所指基因,按順序添加到子代欠缺的基因中。
5.9:基于學習小組的改進教學算法中學生自學習階段采用的自學習算子為:自學習算子采用單點交叉算子、倒位算子與移位算子。
5.8.1:自學習算子中單點交叉算子為:隨機選取兩個基因位,交換其位置,單點交叉對于個體的改變較小。如圖6(1)所示。
5.8.2:自學習算子中倒位算子為:隨機選取兩個基因位,對兩個位置間的基因進行字符串反轉(zhuǎn)操作。如圖6(2)所示。
5.8.1:自學習算子中移位算子為:隨機選取兩個基因位,對兩個位置間的基因進行循環(huán)左移一位的操作。如圖6(2)所示。
采用的實例為5x5的倉庫,商品種類為25種,共有兩個出口,處理訂單數(shù)量N為50,一個分揀口同時可分揀訂單數(shù)量Ordernum為3,緩存架大小為3x3,加權(quán)系數(shù)P、Q1、Q2分別為3、4、10,進行對比的為未采用學習小組策略的自學習教學算法,學習小組數(shù)量為3個,種群大小均為50,迭代次數(shù)為200代,獨立運行10次。自學習教學算法得到的最優(yōu)解適應值為1499.77,十次結(jié)果的平均值為1448.57,方差為1211.43;基于學習小組的教學算法得到的最優(yōu)解適應值為1527.91,十次結(jié)果的平均值為1486.42,方差為566.69??梢?,基于學習小組的教學算法的最優(yōu)解、解的平均值、方差均優(yōu)于自學習教學算法,因此其具有更強的搜索解的能力且尋優(yōu)精度更好,表明本發(fā)明是可靠的。