1.用于物流的訂單排序優(yōu)化方法,其特征在于具體包括:對(duì)倉(cāng)庫(kù)存儲(chǔ)系統(tǒng)與物品存放進(jìn)行布局;獲取當(dāng)前倉(cāng)庫(kù)庫(kù)存信息及需進(jìn)行處理的訂單內(nèi)容;對(duì)訂單進(jìn)行排序優(yōu)化,排序優(yōu)化過(guò)程包括:(1)由于同一類(lèi)商品可能存放在多個(gè)不同的貨柜中,在進(jìn)行訂單排序優(yōu)化之前,根據(jù)訂單中的商品保質(zhì)期、訂單中商品所在貨柜的商品剩余數(shù)量或貨柜的遠(yuǎn)近距離去確定訂單中相應(yīng)商品應(yīng)從哪個(gè)貨柜中取出;(2)對(duì)于確定了商品的取貨貨柜后的訂單進(jìn)行優(yōu)化排序,運(yùn)用進(jìn)化計(jì)算的優(yōu)化方法對(duì)訂單進(jìn)行優(yōu)化排序,使具有相同商品的訂單盡量排在相鄰位置,從而可以重復(fù)利用已取出商品,避免來(lái)回運(yùn)輸商品而造成排單效率的低下。
2.如權(quán)利要求1所述的用于物流的訂單排序優(yōu)化方法,其特征在于所述對(duì)倉(cāng)庫(kù)存儲(chǔ)系統(tǒng)與物品存放進(jìn)行布局具體是:
倉(cāng)庫(kù)中存放有mxn個(gè)貨柜,n為行數(shù),m為列數(shù);每個(gè)貨柜有自己的ID號(hào);以倉(cāng)庫(kù)的一個(gè)位置為坐標(biāo)原點(diǎn)建立坐標(biāo)系,在該坐標(biāo)系統(tǒng)中每個(gè)貨柜的位置定義為(Pxi,Pyi),Pxi和Pyi為該貨柜與坐標(biāo)軸的距離,i為貨柜的ID編號(hào);所述距離以米為單位;在每個(gè)貨柜上有一個(gè)或多個(gè)SKU(stock keeping unit的簡(jiǎn)稱,為庫(kù)存進(jìn)出計(jì)量的基本單元,以件、盒、托盤(pán)等為單位),每個(gè)SKU中存放同一種類(lèi)的商品;
倉(cāng)庫(kù)中存在SP個(gè)分揀口,每個(gè)分揀口同時(shí)能分揀OrderNum個(gè)訂單,只有當(dāng)某一分揀訂單被完成時(shí),才能往分揀口加入下一個(gè)被分揀的訂單;第i個(gè)分揀口在坐標(biāo)系中對(duì)應(yīng)坐標(biāo)定義為(POxi,POyi);物流自動(dòng)化采用機(jī)器人將貨柜從倉(cāng)儲(chǔ)區(qū)送到每個(gè)分揀口,分揀人員從中取出所需的商品后,機(jī)器人即馬上將貨柜運(yùn)走,給每個(gè)分揀口配一個(gè)s1xs2的緩存架,即該緩存架包含s1層,每層具有s2個(gè)格子,用于緩存貨柜,機(jī)器人將貨柜從倉(cāng)儲(chǔ)區(qū)送到每個(gè)分揀臺(tái)并分揀;倉(cāng)庫(kù)存儲(chǔ)系統(tǒng)的后臺(tái)服務(wù)器判斷該貨柜中的商品在隨后k個(gè)訂單內(nèi)是否被再次需要分揀,若不需要,則機(jī)器人將其運(yùn)回貨架;否則,則放入緩存架中,以備之后的需要該貨柜中商品的訂單在分揀時(shí)直接取用;若放入緩存架后緩存架不滿,則直接放入;若放入后緩存架滿了,則對(duì)緩存柜s1xs2個(gè)格中的貨柜判斷哪一個(gè)貨柜中的商品會(huì)被隨后的訂單序列最晚被需要,則機(jī)器人將該貨柜送回倉(cāng)儲(chǔ)區(qū);從而保證在整個(gè)分揀過(guò)程中,緩存柜至少有一個(gè)格是空著的。
3.如權(quán)利要求1所述的用于物流的訂單排序優(yōu)化方法,其特征在于所述獲取當(dāng)前倉(cāng)庫(kù)庫(kù)存信息及需進(jìn)行處理的訂單內(nèi)容具體包括:
獲取物流初始信息,該初始信息包括當(dāng)前倉(cāng)庫(kù)商品庫(kù)存信息、分揀口當(dāng)前仍未分揀完的訂單信息、需優(yōu)化的訂單和訂單信息;所述當(dāng)前倉(cāng)庫(kù)商品庫(kù)存信息具體包括獲取倉(cāng)庫(kù)中所有的貨柜ID及其坐標(biāo)、每個(gè)貨柜包括的SKU數(shù)量及每個(gè)SKU內(nèi)存放商品的商品ID、商品數(shù)量與商品保質(zhì)日期;所述的獲取分揀口當(dāng)前仍未分揀完的訂單信息具體包括獲取每個(gè)分揀口未完成的訂單數(shù)量、這些訂單所包含的商品ID及商品所需數(shù)量、此時(shí)緩存架中的貨柜ID;所述的獲取需優(yōu)化的訂單和訂單信息具體如下:
需優(yōu)化的訂單的獲取過(guò)程為:一批次處理N張訂單的排序優(yōu)化,訂單的優(yōu)化按照先下單先排序的準(zhǔn)則進(jìn)行;首先從N個(gè)訂單中獲取分揀商品ID和商品數(shù)量,判斷需分揀的每種商品的庫(kù)存量是否滿足需求,若滿足,此N個(gè)訂單進(jìn)行入待排序狀態(tài);若任意一種或多種商品庫(kù)存量不夠,則提醒倉(cāng)儲(chǔ)管理人員進(jìn)行補(bǔ)貨,并將此N個(gè)訂單順延到下一次再進(jìn)行排序優(yōu)化;同時(shí)重新提取隨后N個(gè)訂單對(duì)其信息商品庫(kù)存的上述判斷,否則重復(fù)上面的步驟直至N個(gè)訂單的所需商品數(shù)量庫(kù)存均能滿足為止;
需優(yōu)化訂單的信息包括N個(gè)訂單中每個(gè)訂單所包含的商品ID及商品所需數(shù)量;訂單在讀取時(shí)按讀取順序?qū)ζ溥M(jìn)行1,…,N編號(hào);在N個(gè)訂單中被需要的所有商品各自被存放的貨柜的ID。
4.如權(quán)利要求1所述的用于物流的訂單排序優(yōu)化方法,其特征在于,所述步驟(1)具體是:
在優(yōu)化排序前需確定訂單中各商品所用貨柜ID,對(duì)于N個(gè)待排序訂單序列,在保持分配后每個(gè)分揀口數(shù)量相當(dāng)?shù)臈l件下先將訂單分配給每個(gè)分揀口,訂單的分配分為兩種模式,分別為啟動(dòng)模式和連續(xù)工作模式;再按照訂單順序根據(jù)訂單中不同的商品為其采取保質(zhì)期優(yōu)先、商品剩余數(shù)量?jī)?yōu)先、距離優(yōu)先三種策略中的一種為其選取所需的貨柜;按照某種策略進(jìn)行貨柜選取后,若最優(yōu)貨柜商品數(shù)量不夠訂單需求,則需要同時(shí)再取次優(yōu)貨柜以滿足不足部分,若次優(yōu)貨柜內(nèi)包含的商品數(shù)量依舊不夠,則同時(shí)需再取次次優(yōu),若再不滿足則同理,直到滿足該商品所需的數(shù)量;重復(fù)以上步驟直到給所有訂單中所有的商品都確定好其所需貨柜;
所述的訂單分配的啟動(dòng)模式為:?jiǎn)?dòng)模式通常在每個(gè)新工作日的開(kāi)始時(shí);每個(gè)分揀口均在前一工作日完成了分配的任務(wù),每個(gè)分揀口無(wú)未分揀完的訂單,而每個(gè)分揀口的緩存架還維持著前一工作日工作完成時(shí)的狀態(tài);
所述的訂單分配的連續(xù)工作模式為:?jiǎn)?dòng)模式之后的均為連續(xù)工作模式;在連續(xù)工作模式中,當(dāng)某個(gè)分揀口剩余未分揀的訂單數(shù)量不大于Ordernum個(gè)時(shí)后臺(tái)給各分揀口分配訂單并加在每個(gè)分揀口未分揀完的訂單之后;
所述的貨柜確定的三種策略的具體內(nèi)容為:對(duì)于有保質(zhì)期限制的商品采取保質(zhì)期優(yōu)先策略,保質(zhì)期優(yōu)先策略為優(yōu)先分配距過(guò)期時(shí)間最短的存放該商品的貨柜;對(duì)于數(shù)量多的商品采取商品剩余數(shù)量?jī)?yōu)先策略,商品剩余數(shù)量?jī)?yōu)先策略為優(yōu)先分配庫(kù)存該商品數(shù)量最少的貨柜,以防止過(guò)多的貨柜剩余商品數(shù)量同時(shí)降到貨柜的補(bǔ)貨臨界點(diǎn)所導(dǎo)致的沒(méi)及時(shí)補(bǔ)貨而產(chǎn)生的商品總數(shù)量不足問(wèn)題;對(duì)于大型商品采取距離優(yōu)先策略,距離優(yōu)先策略為優(yōu)先分配離所需該商品的分揀口最近的貨柜,該距離利用貨柜和分揀口的歐式距離來(lái)求取。
5.如權(quán)利要求1所述的用于物流的訂單排序優(yōu)化方法,其特征在于,所述步驟(2)具體是:
5.1:訂單的排序優(yōu)化的問(wèn)題描述:同一商品可能存放在多個(gè)貨柜中或不同商品存放在同一貨柜的不同SKU中,因此優(yōu)化算法要求在訂單排序前應(yīng)先確定分揀商品時(shí)所用到的貨柜ID號(hào),將每個(gè)訂單中的每個(gè)商品確定好其所用的貨柜ID后,再對(duì)訂單序列進(jìn)行優(yōu)化排序,使需要相同ID貨柜的商品訂單盡量排在同一分揀口,而不同分揀口的訂單盡量不使用相同ID貨柜,即同一分揀口的訂單之間的相似程度高盡量高,而不同分揀口的訂單之間的相似度盡量低;
5.2:所述的訂單的優(yōu)化排序問(wèn)題的模型可描述為:優(yōu)化算法對(duì)確定好使用貨柜ID的訂單序列進(jìn)行優(yōu)化排序,以得到效率最高的的訂單序列,即優(yōu)化目標(biāo)函數(shù)f的值最高;模型的中的變量定義如下:
Ordernum:每一個(gè)分揀口同時(shí)可分揀的訂單數(shù)量;
SP:分揀口的數(shù)量;
li:N個(gè)訂單分配到第i個(gè)分揀口的數(shù)量;
rei:第i個(gè)分揀口未完成訂單數(shù)量,啟動(dòng)模式下為0;
Q1、Q2、P:加權(quán)系數(shù),為正常數(shù);
pij:第i個(gè)分揀口的第j個(gè)訂單,j=1,...,rei,...,rei+li;
habc1,habc2:分別表示與pab交叉的第c個(gè)出口的下限與上限的訂單編號(hào);
SNabcd:表示pab和pcd中包含所需相同ID貨柜的商品數(shù)量;
SSab:表示pab所需第a個(gè)分揀口的緩存架上貨柜的商品數(shù)量;
決策變量為:
優(yōu)化模型如下:
目標(biāo)函數(shù):
約束條件:
min(rei,Ordernum)≤(1-z)·Ordernum 公式(4)
上述約束中公式(2)、公式(3)表示N個(gè)訂單在在保持分配后每個(gè)分揀口數(shù)量相當(dāng)?shù)臈l件下將訂單分配給每個(gè)分揀口;公式(4)表示在啟動(dòng)模式時(shí),每個(gè)分揀口未分揀完訂單數(shù)量均為0;在連續(xù)工作模式時(shí),只有在某個(gè)分揀口待處理訂單數(shù)量小于Ordernum時(shí)才會(huì)加入新的訂單;
5.3:所述的問(wèn)題的模型的優(yōu)化目標(biāo)函數(shù)f是由兩部分組成,即同一分揀口的訂單之間的相似性和不同分揀口之間的訂單的相似性組成,f所表示的即為優(yōu)化目標(biāo)的適應(yīng)度值;
所述的同一分揀口的訂單之間的相似性定義如下:分配到同一個(gè)分揀口的訂單之間相似性越高則適應(yīng)值越高,同一分揀口的相似性具體如目標(biāo)函數(shù)中的部分描述,此時(shí)決策變量xabcd=1,即a=c,b≠d;其中Q1,Q2為權(quán)重系數(shù),而表示越相近的訂單間的相似性對(duì)適應(yīng)值的影響增大,同時(shí),相距較遠(yuǎn)的訂單間的相似性也仍具有一定的影響力,表示在啟動(dòng)模式下,還需將每個(gè)分揀口的前Ordernum個(gè)訂單與該分揀口的緩存架進(jìn)行比較;
所述的適應(yīng)值的計(jì)算中不同分揀口之間的訂單的相似性求取過(guò)程如下:分配到不同分揀口的訂單之間相似性越低則適應(yīng)值越高,這樣可以保證同一貨柜盡量不要被不同分揀口使用;假定每個(gè)商品處理的時(shí)間相當(dāng),則可將一個(gè)訂單的被分揀時(shí)間段轉(zhuǎn)化為其在訂單序列中的位置,以商品為單位,某訂單起始位置為訂單中第一個(gè)商品所在該分揀口所有訂單商品序列中的順序號(hào),而訂單終止位置為該訂單中最后一個(gè)商品所在該分揀口所有訂單序列中的順序號(hào);獲取其他分揀口的相同起點(diǎn)與終點(diǎn)位置間的所對(duì)應(yīng)的訂單,這些訂單被稱為與其交叉的訂單;將與第a個(gè)分揀口的第b個(gè)訂單交叉的第c個(gè)分揀口的訂單編號(hào)下限與上限定義為(habc1,habc2);每個(gè)訂單與其有交叉的訂單進(jìn)行比較,又因要考慮到機(jī)器人的搬運(yùn)時(shí)間,因此將對(duì)比的范圍擴(kuò)大Δ個(gè)訂單,即habc1=habc1-Δ,habc2=habc2+Δ,且habc1≥0,habc2≤lc;不同分揀口的相似性具體如中目標(biāo)函數(shù)中的部分描述,此時(shí)a≠c;當(dāng)不同分揀口間的訂單所需貨柜起沖突時(shí),也即兩個(gè)在不同分揀口的訂單會(huì)使用相同ID的貨柜時(shí),則采用一個(gè)懲罰函數(shù),P取一個(gè)很大的正數(shù),使其適應(yīng)值減低;
5.4采用進(jìn)化算法用于解決所述的訂單的排序優(yōu)化問(wèn)題,具體采用的進(jìn)化算法為基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法,算法具體如下:
在整個(gè)群體中,每一代的最優(yōu)個(gè)體為T(mén)eacher,每個(gè)個(gè)體通過(guò)學(xué)習(xí)更新自己;針對(duì)傳統(tǒng)教學(xué)算法容易早熟收斂陷入局部最優(yōu)的問(wèn)題,引入學(xué)習(xí)小組的概念;將學(xué)生分為多個(gè)學(xué)習(xí)小組,每個(gè)小組分別有個(gè)Leader,充當(dāng)教學(xué)算法中Teacher的角色;算法的流程為:
1)算法初始化;利用隨機(jī)和啟發(fā)式信息產(chǎn)生Np個(gè)學(xué)習(xí)小組,即子種群;每個(gè)小組即子種群含有Popsize個(gè)成員,即種群大小為Np*Popsize;初始化迭代次數(shù)Gen,小組交換成員個(gè)數(shù)Iv=1;
2)對(duì)每個(gè)學(xué)習(xí)小組成員進(jìn)行適應(yīng)值評(píng)估,選出每個(gè)學(xué)習(xí)小組的Leader;
3)每個(gè)學(xué)習(xí)小組獨(dú)立進(jìn)化,依次進(jìn)行教師教學(xué)階段、學(xué)生相互學(xué)習(xí)階段、學(xué)生自學(xué)習(xí)階段的學(xué)習(xí);
4)若每個(gè)學(xué)習(xí)小組連續(xù)五次迭代都沒(méi)得到更優(yōu)個(gè)體,則進(jìn)行學(xué)習(xí)小組間成員交換;
5)若達(dá)到算法終止條件,則算法結(jié)束;否則轉(zhuǎn)至5.1.2;
5.4.1所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中種群中成員的編碼方式為:在進(jìn)化算法中,每一個(gè)成員都對(duì)應(yīng)于該問(wèn)題的一個(gè)解;進(jìn)化的過(guò)程即為由初始解逐步迭代產(chǎn)生新的優(yōu)秀成員的過(guò)程;對(duì)于處理的N個(gè)訂單,每個(gè)解即學(xué)習(xí)小組成員由染色體的基因表示,每個(gè)基因即為訂單的編號(hào),染色體長(zhǎng)度為N,染色體基因的順序決定了訂單所分配的分揀口與被處理的順序;根據(jù)公式(2)、公式(3),可得到l1,l2,...,lSP,將訂單序列中前l(fā)1個(gè)訂單分配給分揀口1,接下來(lái)的l2個(gè)訂單分配給分揀口2,以此類(lèi)推;
5.4.2所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中種群初始化的過(guò)程為:確定初始條件時(shí),先通過(guò)對(duì)各商品所需頻次進(jìn)行統(tǒng)計(jì),利用頻次高到低的啟發(fā)式信息對(duì)種群中的某個(gè)成員進(jìn)行初始化,其他個(gè)體仍利用隨機(jī)產(chǎn)生方式產(chǎn)生;
5.4.3:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中學(xué)習(xí)小組成員交換的策略為:當(dāng)進(jìn)化連續(xù)迭代五次所有小組都沒(méi)有進(jìn)化得到更優(yōu)的成員的時(shí)候,進(jìn)行學(xué)習(xí)小組成員交換,每次交換Iv個(gè)成員,成員的選擇方式為輪盤(pán)賭選擇法,交換完成后Iv=Iv+1,且Iv大小不能超過(guò)Popsize/2;該改進(jìn)方式能很好的保證各種群的多樣性,避免早熟收斂;
5.4.4:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中教師教學(xué)階段為:每一代中最優(yōu)的個(gè)體作為教師,負(fù)責(zé)引領(lǐng)種群進(jìn)行進(jìn)化;用下式描述子種群和教師之間的差距:
Difference_Meani=ri(Mnew-TFMi) 公式(5)
其中,TF表示教學(xué)因子,TF=[1+round(0,1)],ri為[0,1]間的隨機(jī)數(shù);Mi為第i代的平均水平,Mnew表示期望的下一代的平均水平,一般取當(dāng)前種群的最優(yōu)個(gè)體;
在教師階段,每個(gè)學(xué)生根據(jù)Difference_Meansi按照下式進(jìn)行學(xué)習(xí):
Xnew,j=Xold,j+Difference_Meansi 公式(6)
其中Xnew,i,Xold,i表示更新前后的第i代的第j個(gè)個(gè)體;只有當(dāng)學(xué)生的水平有所提高的時(shí)候,即適應(yīng)值更優(yōu)時(shí),當(dāng)前的學(xué)習(xí)過(guò)程才會(huì)被接受;
5.4.5:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中學(xué)生相互學(xué)習(xí)階段為:學(xué)生相互學(xué)習(xí)階段的過(guò)程即是隨機(jī)選擇兩個(gè)學(xué)生進(jìn)行交叉操作,這個(gè)過(guò)程同樣只有當(dāng)學(xué)生水平有提高時(shí)才被接受;
5.4.6:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中學(xué)生自學(xué)習(xí)階段為:將學(xué)習(xí)次數(shù)定義在一個(gè)范圍[Smin,Smax],根據(jù)公式(7)計(jì)算獲得每個(gè)個(gè)體的學(xué)習(xí)次數(shù):
其中LA(i)=f(i)/max(f(i))表示第i個(gè)個(gè)體的學(xué)習(xí)能力,f(i)為第i個(gè)個(gè)體的適應(yīng)值;考慮到運(yùn)行的效率,取Smin=1,Smax=15,Smean=(Smin+Smax)/2;每個(gè)個(gè)體根據(jù)自學(xué)習(xí)算子進(jìn)行各自學(xué)習(xí)次數(shù)的學(xué)習(xí),從多次的學(xué)習(xí)中選擇最優(yōu)的那個(gè)方向進(jìn)行進(jìn)化,即用某個(gè)個(gè)體鄰域中的最優(yōu)個(gè)體替換當(dāng)前個(gè)體;
5.4.7:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中教師教學(xué)階段和學(xué)生相互學(xué)習(xí)階段采用的交叉算子為:為保證后代中的染色體不會(huì)產(chǎn)生基因的重疊與缺失,交叉算子采取基于位置的交叉算子;即在parent1中隨機(jī)選擇若干個(gè)位置的基因并按照其在parent1中的位置繼承給子代,并將parent2中未被parent1選中的基因按順序添加到子代的欠缺的基因中;
5.4.8:所述的基于學(xué)習(xí)小組的改進(jìn)教學(xué)算法中學(xué)生自學(xué)習(xí)階段采用的自學(xué)習(xí)算子為:自學(xué)習(xí)算子采用單點(diǎn)交叉算子、倒位算子與移位算子;所述的自學(xué)習(xí)算子中單點(diǎn)交叉算子為:隨機(jī)選取兩個(gè)基因位,交換其位置,單點(diǎn)交叉對(duì)于個(gè)體的改變較小;所述的自學(xué)習(xí)算子中倒位算子為:隨機(jī)選取兩個(gè)基因位,對(duì)兩個(gè)位置間的基因進(jìn)行字符串反轉(zhuǎn)操作;所述的自學(xué)習(xí)算子中移位算子為:隨機(jī)選取兩個(gè)基因位,對(duì)兩個(gè)位置間的基因進(jìn)行循環(huán)左移一位的操作。