姜良重,雷 航,李貞昊,錢偉中,施甘圖
1.電子科技大學(xué) 信息與軟件學(xué)院,成都 610054
2.宏圖智能物流股份有限公司,成都 610051
倉(cāng)庫(kù)貨位匹配作業(yè)在現(xiàn)代物流作業(yè)系統(tǒng)中占據(jù)重要的一環(huán),貨位匹配的結(jié)果會(huì)極大影響整個(gè)物流作業(yè)的效率和企業(yè)利益。不管是人工操作的倉(cāng)庫(kù)還是最近流行的自動(dòng)化立體倉(cāng)庫(kù),都需要一個(gè)合理、高效的貨位匹配規(guī)劃。
為了優(yōu)化貨位匹配結(jié)果,國(guó)內(nèi)外學(xué)者在貨位優(yōu)化方面開(kāi)展了大量的研究工作。
在優(yōu)化原則上,Hausman 等[1]提出基于周轉(zhuǎn)率和貨物種類的入庫(kù)貨位分配,取得了比隨機(jī)存儲(chǔ)更好的倉(cāng)庫(kù)管理效率。黨偉超等[2]提出考慮貨架穩(wěn)定性,該方案將貨架的穩(wěn)定性考慮到優(yōu)化策略中,降低了出入庫(kù)過(guò)程中貨架傾覆的風(fēng)險(xiǎn)。
對(duì)于貨位優(yōu)化求解算法方面,當(dāng)今學(xué)者大多使用啟發(fā)式算法,能夠在較短時(shí)間內(nèi),求解出一個(gè)令人滿意的貨位分配結(jié)果。Heragu 等[3]提出了使用啟發(fā)式算法來(lái)進(jìn)行貨位分配;馬永杰等[4]提出基于遺傳算法的自動(dòng)化倉(cāng)庫(kù)貨位匹配;俞雷霖等[5]提出基于混合禁忌搜索算法的貨位分配,該算法相比傳統(tǒng)的遺傳算法有著更好的結(jié)果表現(xiàn);陳月婷等[6]提出了改進(jìn)粒子群算法的立體倉(cāng)庫(kù)貨位分配優(yōu)化;張思建等[7]提出了基于模擬退火算法的AVS/RS 多批貨箱入庫(kù)貨位優(yōu)化;王廳長(zhǎng)等[8]提出了采用病毒協(xié)同進(jìn)化遺傳算法的自動(dòng)化倉(cāng)庫(kù)貨位優(yōu)化方案。
另外,一些學(xué)者針對(duì)某些特殊場(chǎng)景下的貨位分配也進(jìn)行了大量研究。寧浪等[9]針對(duì)JIT生產(chǎn)的零部件配送具有種類多、批次多、批量少、出入庫(kù)時(shí)間分散等特點(diǎn)進(jìn)行貨位優(yōu)化研究;侯忠等[10]針對(duì)汽車零配件倉(cāng)庫(kù)特點(diǎn),采用遺傳算法優(yōu)化貨位分配;王雨寧等[11]針對(duì)醫(yī)療器械倉(cāng)庫(kù)具有品類多,需要精準(zhǔn)存取等特點(diǎn),運(yùn)用EIQBC分類法、多目標(biāo)指派模型解決貨位分配問(wèn)題。
總之,由于貨位分配屬于組合優(yōu)化問(wèn)題,隨著庫(kù)位的增多,計(jì)算量指數(shù)級(jí)增加,因此國(guó)內(nèi)外學(xué)者大多采用啟發(fā)式算法來(lái)優(yōu)化貨位分配,本文對(duì)于出庫(kù)貨位優(yōu)化問(wèn)題出于計(jì)算量考慮同樣采用啟發(fā)式算法。對(duì)于優(yōu)化原則,當(dāng)前大多數(shù)學(xué)者研究貨位優(yōu)化問(wèn)題時(shí),主要考慮貨架的穩(wěn)定性、貨物的出入庫(kù)時(shí)間、貨物相關(guān)性等局限在倉(cāng)庫(kù)內(nèi)部的因素,暫未發(fā)現(xiàn)有學(xué)者考慮到倉(cāng)庫(kù)作業(yè)繁忙程度等倉(cāng)庫(kù)外部因素對(duì)貨位優(yōu)化的影響。在倉(cāng)庫(kù)繁忙時(shí),作業(yè)人員更愿意優(yōu)先考慮出庫(kù)效率,而在倉(cāng)庫(kù)作業(yè)不繁忙時(shí),作業(yè)人員為了降低貨物積壓導(dǎo)致價(jià)值下降風(fēng)險(xiǎn)更愿意出庫(kù)生產(chǎn)日期靠前的貨物,但大多數(shù)學(xué)者對(duì)于存放在倉(cāng)庫(kù)內(nèi)貨物的生產(chǎn)日期的考慮,只是簡(jiǎn)單地使用先進(jìn)先出原則,無(wú)法滿足作業(yè)人員要求。
本文基于以上發(fā)現(xiàn)的不足,首先設(shè)計(jì)貨物剩余價(jià)值率和出庫(kù)代價(jià)優(yōu)化模型,然后基于倉(cāng)庫(kù)作業(yè)的繁忙程度,研究倉(cāng)庫(kù)繁忙程度對(duì)貨物出庫(kù)代價(jià)和貨物剩余價(jià)值率之間的優(yōu)化權(quán)重取值的影響,提出了基于倉(cāng)庫(kù)繁忙率的自適應(yīng)優(yōu)化權(quán)重,并建立多目標(biāo)出庫(kù)貨位優(yōu)化模型,接下來(lái),使用基于自適應(yīng)算子,災(zāi)變算子和精英策略的改進(jìn)策略的遺傳算法對(duì)模型求解,并基于企業(yè)實(shí)際數(shù)據(jù)驗(yàn)證模型和算法的合理性,最后總結(jié)本文研究成果。
貨物剩值率是貨物的當(dāng)前實(shí)際價(jià)值與剛生產(chǎn)時(shí)價(jià)值的比值,影響貨物剩值率的因素主要有貨物是否有損壞,臨近保質(zhì)期程度等,由于貨物倉(cāng)儲(chǔ)中損壞概率小,故本文只考慮臨近保質(zhì)期程度對(duì)貨物剩值率的影響,并定義臨期率衡量貨物臨近保質(zhì)期程度。
貨物剛生產(chǎn)的一段時(shí)間內(nèi),價(jià)值變化不大,但到某臨界點(diǎn)后,價(jià)值會(huì)逐漸下降,并且下降速度會(huì)隨著時(shí)間推移而加快。因此,定義第i種貨物的第n批次的貨物的臨期率Rexpri(i,n)如式(1):
式(1)中,Psl(i,n)是第i種的第n批次的貨物的剩余保質(zhì)時(shí)長(zhǎng),Pl(i,n)是第i種貨物的第n批次的貨物的保質(zhì)時(shí)長(zhǎng)。
基于以上分析,第i種貨物的第n批次的貨物剩值率Rrv(i,n)如式(2):
為了在出庫(kù)過(guò)程中優(yōu)先出庫(kù)貨物剩值度低的貨物,第一個(gè)優(yōu)化目標(biāo)函數(shù)如式(3):
式(3)中,SorderSku是訂單貨物種類集合,SResult(i)是第i種貨物的貨位分配結(jié)果集,A(i,n)是第i種貨物的第n批次貨物的數(shù)量,AorderSum是訂單要求貨物數(shù)量總和。
貨物出庫(kù)代價(jià)是衡量某訂單需求貨物出庫(kù)時(shí)需消耗的總時(shí)間代價(jià)。本文暫只針對(duì)立體倉(cāng)庫(kù)研究,故定義編號(hào)為z的庫(kù)位,庫(kù)位中存放第i種貨物的托盤的出庫(kù)代價(jià)C(z,i)如式(4):
式(4)中,Dh(z)是編號(hào)z的庫(kù)位到門的最短路徑距離,Vfork是叉車速度,Nl(z)是編號(hào)z的庫(kù)位所在的層數(shù),Televator是升降機(jī)每升/降一層需要的時(shí)間。
根據(jù)上述分析,為了盡可能降低出庫(kù)代價(jià),故建立第二個(gè)目標(biāo)函數(shù)如式(5):
式(5)中,SorderSku是訂單貨物種類集合,Sresult是貨位分配結(jié)果集,N(z,i)是編號(hào)為z的庫(kù)位中含第i種貨物的托盤數(shù),C(z,i)是編號(hào)為z的庫(kù)位存放第i種貨物的托盤的出庫(kù)代價(jià)。
出庫(kù)貨位優(yōu)化目標(biāo)有貨物出庫(kù)代價(jià)和貨物剩值率,當(dāng)倉(cāng)庫(kù)繁忙時(shí),貨位優(yōu)化算法應(yīng)更傾向于優(yōu)化出庫(kù)代價(jià),提高作業(yè)效率,防止倉(cāng)庫(kù)擁擠;當(dāng)倉(cāng)庫(kù)作業(yè)空閑時(shí),貨位優(yōu)化算法應(yīng)更傾向于優(yōu)化貨物剩值率,將貨物剩值率低的貨物出庫(kù),降低貨物因存放過(guò)久而價(jià)值下降的風(fēng)險(xiǎn)。
基于以上分析,本文使用倉(cāng)庫(kù)繁忙度衡量倉(cāng)庫(kù)繁忙程度,并根據(jù)倉(cāng)庫(kù)繁忙度計(jì)算各優(yōu)化目標(biāo)的權(quán)重。
1.3.1 倉(cāng)庫(kù)繁忙度計(jì)算方法
倉(cāng)庫(kù)繁忙度是指開(kāi)始進(jìn)行貨位優(yōu)化的那一時(shí)刻的倉(cāng)庫(kù)繁忙度。倉(cāng)庫(kù)出庫(kù)操作主要靠叉車,叉車使用率高,則說(shuō)明當(dāng)前倉(cāng)庫(kù)作業(yè)繁忙。因此,采用叉車使用率來(lái)衡量倉(cāng)庫(kù)繁忙程度,但考慮在當(dāng)前出庫(kù)作業(yè)過(guò)程中仍可能有作業(yè)到達(dá),因此不能僅考慮某一時(shí)刻倉(cāng)庫(kù)叉車使用率。
基于以上分析,某一時(shí)刻倉(cāng)庫(kù)叉車使用率Rforkuse表述如式:
式(6)中,NcurFork是當(dāng)前倉(cāng)庫(kù)正在使用的叉車,NsumFork是倉(cāng)庫(kù)中總共擁有的叉車數(shù)量。
倉(cāng)庫(kù)繁忙度MwarehouseBusy表述如式(7):
式(7)中,λ是考慮到當(dāng)前出庫(kù)作業(yè)過(guò)程中倉(cāng)庫(kù)繁忙度增加而設(shè)置的預(yù)留量,設(shè)置為0.2。
1.3.2 傾向權(quán)重計(jì)算方法
本文選用線性轉(zhuǎn)換得到貨物剩值率優(yōu)化傾向權(quán)重w1和貨位出庫(kù)代價(jià)優(yōu)化傾向權(quán)重w2,表述如式(8):
由于任務(wù)總量、貨物種類等因素會(huì)導(dǎo)致f1和f2的值相差較大,f2根據(jù)定義不需要進(jìn)行歸一化,因此僅需對(duì)f1進(jìn)行歸一化處理。
貨物的出庫(kù)代價(jià)由于出庫(kù)庫(kù)位位置和數(shù)量的不確定性,在全局上無(wú)法進(jìn)行歸一化處理,因此本文根據(jù)遺傳算法特點(diǎn),在每一代種群內(nèi)對(duì)f1進(jìn)行歸一化處理。
基于以上分析,在某一代種群內(nèi),f1和f2歸一化后的fn1和fn2表述如式(9):
式(9)中,fmin1是當(dāng)代種群中f1的最小值,fmax1是這代種群中f1的最大值。γ是常量,防止分母為零,設(shè)置為0.000 1。
出庫(kù)貨位優(yōu)化模型需要滿足如下幾個(gè)約束:所選庫(kù)位的貨物數(shù)量和種類必須滿足訂單要求;所選庫(kù)位的貨物能夠被允許出庫(kù)。
基于以上分析,得到優(yōu)化目標(biāo)函數(shù)表述如式(10)和(11):
式(10)中,F(xiàn)out是優(yōu)化函數(shù)值,fn1是f1歸一化后的值,fn2是f2歸一化后的值。式(11)中,A(i,z)是編號(hào)為z的庫(kù)位上第i種貨物的數(shù)量,AorderSum(i)是訂單要求的第i種貨物的數(shù)量,F(xiàn)(i,z)是編號(hào)為z的庫(kù)位上第i種貨物能否出庫(kù)標(biāo)志。
出庫(kù)貨位優(yōu)化涉及出庫(kù)貨位選擇和貨位貨物出庫(kù)順序確定。因此參考文獻(xiàn)[12],將貨位優(yōu)化問(wèn)題分為兩層進(jìn)行優(yōu)化:(1)貨位選擇層:選擇哪些庫(kù)位上的貨物完成貨物出庫(kù);(2)貨位順序?qū)樱捍_定已選中的貨位貨物出庫(kù)順序。
貨位選擇層優(yōu)化問(wèn)題是組合優(yōu)化問(wèn)題,采用遺傳算法進(jìn)行求解。因已有研究成果表明精英策略[13]、自適應(yīng)交叉率[14]和變異率和災(zāi)變算子[15]明顯改善了傳統(tǒng)遺傳算法的缺點(diǎn),因此這里基于上述改進(jìn)策略并結(jié)合貨位優(yōu)化問(wèn)題特點(diǎn)設(shè)計(jì)貨位選擇層算法。
2.1.1 確定編碼方式
染色體采用二進(jìn)制編碼,染色體中每個(gè)基因表示一個(gè)庫(kù)位,1代表選用該庫(kù)位貨物,0代表不選用該庫(kù)位貨物,染色體長(zhǎng)度為貨物對(duì)應(yīng)庫(kù)位數(shù)總和,并使用輔助編碼表達(dá)每個(gè)基因所對(duì)應(yīng)的庫(kù)位、貨物類別、數(shù)量信息,染色體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 染色體結(jié)構(gòu)Fig.1 Chromosome structure
2.1.2 適應(yīng)度計(jì)算設(shè)計(jì)
因出庫(kù)貨位優(yōu)化是最小化目標(biāo)函數(shù)而適應(yīng)度是求最大值,需要轉(zhuǎn)換,因此,適應(yīng)度函數(shù)表述如式(12):
式(12)中,F(xiàn)adapt是適應(yīng)度值,Cmax是一個(gè)相對(duì)大的數(shù),F(xiàn)out是出庫(kù)貨位優(yōu)化目標(biāo)函數(shù),因Fout最大值為1,因此設(shè)Cmax=1。
2.1.3 選擇算子設(shè)計(jì)
先采用精英策略,將種群中適應(yīng)度最大的個(gè)體直接復(fù)制進(jìn)入下一代,對(duì)于剩余個(gè)體采用錦標(biāo)賽選擇法選擇,兩種策略結(jié)合既能不丟失最優(yōu)個(gè)體,又能保證適應(yīng)度較大個(gè)體的基因遺傳到下一代。
2.1.4 自適應(yīng)算子
自適應(yīng)算子能提高遺傳算法的收斂精度和收斂速度,本文自適應(yīng)算子參考文獻(xiàn)[16],如式(13):
式(13)中,k1、k2、k3和k4是常量,fmax是當(dāng)前種群中個(gè)體最大適應(yīng)度值,f′是要交叉的兩個(gè)個(gè)體中較大的適應(yīng)度值,favg是當(dāng)前種群平均適應(yīng)度值,f是要變異個(gè)體的適應(yīng)值,Pc是交叉概率,Pm是變異概率。
2.1.5 交叉算子設(shè)計(jì)
基于編碼特點(diǎn)和出庫(kù)貨位分配問(wèn)題特點(diǎn),交叉方式采用同類貨物基因段雙切點(diǎn)交叉。同類貨物基因段雙切點(diǎn)交叉操作過(guò)程如下:
步驟1在種群中,隨機(jī)選取父代個(gè)體PL1和父代個(gè)體PL2。
步驟2在PL1上隨機(jī)選取一段同類貨物基因段。
步驟3將PL1和PL2上相同位置的同類貨物基因段進(jìn)行互換。
這樣操作的優(yōu)點(diǎn)是兩染色體交叉后,子代染色體所表示的結(jié)果仍符合優(yōu)化目標(biāo)的約束。
2.1.6 變異算子設(shè)計(jì)
針對(duì)染色體編碼方式和出庫(kù)貨位分配問(wèn)題特點(diǎn),采用互換變異方式。首先,隨機(jī)在染色體上,選取一段同類貨物基因段,然后在該基因段上隨機(jī)選取一個(gè)值為1的基因和一個(gè)值為0的基因,最后將兩個(gè)基因值互換。
2.1.7 染色體修復(fù)策略
由于每個(gè)庫(kù)位的貨物數(shù)量不同,在進(jìn)行變異操作后,可能導(dǎo)致染色體無(wú)法滿足出庫(kù)貨位優(yōu)化目標(biāo)的約束,需要進(jìn)行染色體修復(fù),修復(fù)步驟如下:
步驟1首先,判斷經(jīng)過(guò)變異的第i種貨物對(duì)應(yīng)染色體基因段Gi所表達(dá)的貨物數(shù)量是大于、小于還是等于訂單中第i種貨物的數(shù)量。若小于轉(zhuǎn)步驟2,若大于轉(zhuǎn)步驟4,若等于轉(zhuǎn)步驟5。
步驟2變異后導(dǎo)致基因段Gi所表達(dá)的貨物數(shù)量小于訂單中第i種貨物的數(shù)量,需要增加出庫(kù)庫(kù)位,從未選擇的出庫(kù)庫(kù)位中隨機(jī)選擇一個(gè)庫(kù)位SnoSelect,將基因段Gi中對(duì)應(yīng)庫(kù)位SnoSelect的基因值變?yōu)?,轉(zhuǎn)到步驟3。
步驟3判斷基因段Gi所表達(dá)的貨物數(shù)量是否小于訂單中第i種貨物的數(shù)量,若大于轉(zhuǎn)步驟5,否則轉(zhuǎn)步驟2。
步驟4變異后導(dǎo)致基因段Gi所表達(dá)的貨物數(shù)量大于訂單中第i種貨物的數(shù)量,可能需要減少出庫(kù)庫(kù)位,將基因段Gi里基因值為1所對(duì)應(yīng)的庫(kù)位按照庫(kù)位存放第i種貨物的數(shù)量從小到大排序成S1,S2,…,然后依次按順序累加庫(kù)位Si存放第i種貨物的數(shù)量,若累加的貨物數(shù)量大于訂單中第i種貨物數(shù)量,則將庫(kù)位Si后面的庫(kù)位所對(duì)應(yīng)基因段Gi的基因值變?yōu)?,即不選擇后續(xù)庫(kù)位。轉(zhuǎn)步驟5。
步驟5結(jié)束染色體修復(fù)。
2.1.8 災(zāi)變算子設(shè)計(jì)
災(zāi)變算子的引入,模擬了自然界中生物滅絕現(xiàn)象,其主要作用是當(dāng)算法過(guò)早收斂時(shí),使其跳出局部搜索。災(zāi)變算子主要由災(zāi)變條件和災(zāi)變方式構(gòu)成,本文設(shè)計(jì)如下:
(1)災(zāi)變條件:首先設(shè)置一個(gè)災(zāi)變倒計(jì)時(shí)數(shù)C,每當(dāng)新一代個(gè)體中最好的個(gè)體的適應(yīng)度相比上一代沒(méi)有進(jìn)化,則C值減1;然后當(dāng)C=0,發(fā)生災(zāi)變,根據(jù)災(zāi)變方式重新生成種群。
(2)災(zāi)變方式:首先保留當(dāng)代最優(yōu)個(gè)體,然后隨機(jī)生成其他個(gè)體,最后將這些個(gè)體組成新一代種群。
貨位順序?qū)觾?yōu)化是基于貨位選擇層優(yōu)化結(jié)果進(jìn)行優(yōu)化,確定貨位上貨物出庫(kù)順序。
2.2.1 貨位順序?qū)訂?wèn)題描述
由于訂單要求貨物數(shù)量不一定恰好等于所選庫(kù)位上存放的貨物數(shù)量,導(dǎo)致最后一個(gè)出庫(kù)的庫(kù)位上貨物只有部分貨物出庫(kù),若隨機(jī)確定順序,可能導(dǎo)致出庫(kù)貨位優(yōu)化結(jié)果不佳,因此需要確定貨位出庫(kù)順序。
2.2.2 貨位順序?qū)觾?yōu)化算法設(shè)計(jì)
首先確定存放貨物需全部出庫(kù)的庫(kù)位,然后對(duì)剩余的每個(gè)庫(kù)位計(jì)算每個(gè)庫(kù)位的出庫(kù)優(yōu)化目標(biāo)值,最后根據(jù)每個(gè)庫(kù)位的出庫(kù)優(yōu)化目標(biāo)值從小到大依次選擇庫(kù)位?;谝陨纤枷?,設(shè)計(jì)如下步驟來(lái)求解貨位順序優(yōu)化問(wèn)題:
步驟1按照庫(kù)位上存放第i種貨物存放數(shù)量從大到小排序得庫(kù)位序列(S1,S2,…,Sn),依次累加庫(kù)位上第i種貨物的數(shù)量,直到總和滿足訂單中第i種貨物數(shù)量,剩余沒(méi)有被累加的庫(kù)位序列(Sm,Sm+1,…,Sn)為貨物全部出庫(kù)的庫(kù)位,庫(kù)位序列(S1,S2,…,Sm-1)則為需要比較的優(yōu)化目標(biāo)大小的庫(kù)位。轉(zhuǎn)到步驟2。
步驟2針對(duì)庫(kù)位序列(S1,S2,…,Sm-1),計(jì)算每個(gè)庫(kù)位的出庫(kù)優(yōu)化目標(biāo)值。轉(zhuǎn)到步驟3。
步驟3步驟2 中計(jì)算的庫(kù)位出庫(kù)優(yōu)化目標(biāo)值最大的庫(kù)位為最后出庫(kù)庫(kù)位,(Sm,Sm+1,...,Sn)庫(kù)位序列根據(jù)庫(kù)位存放第i種貨物的數(shù)量由小到大順序出庫(kù)。
出庫(kù)貨位優(yōu)化模型求解算法需要經(jīng)過(guò)貨位選擇層算法優(yōu)化和貨位順序?qū)铀惴▋?yōu)化,流程如圖2所示。
圖2 出庫(kù)貨位優(yōu)化模型求解算法流程圖Fig.2 Flowchart of algorithm for solving outbound storage location optimization model
本文使用Java 語(yǔ)言實(shí)現(xiàn)出庫(kù)貨位優(yōu)化算法并基于實(shí)際生產(chǎn)數(shù)據(jù)進(jìn)行算法驗(yàn)證。
參考遺傳算法常用參數(shù)設(shè)置,設(shè)置出庫(kù)貨位優(yōu)化算法參數(shù)如表1所示。
表1 出庫(kù)貨位優(yōu)化算法參數(shù)表Table 1 Parameter table of outbound storage location optimization algorithm
本文數(shù)據(jù)來(lái)源于宏圖智能物流股份有限公司的物流倉(cāng)庫(kù)數(shù)據(jù)庫(kù)中的貨物存儲(chǔ)數(shù)據(jù),數(shù)據(jù)格式見(jiàn)表2。
表2 庫(kù)存信息格式Table 2 Inventory information format
數(shù)據(jù)庫(kù)中信息含有8 165 個(gè)庫(kù)位信息,19 588 個(gè)不同貨物種類不同批次的貨物庫(kù)存信息,總庫(kù)存貨物數(shù)量為11 222 825件。
3.3.1 驗(yàn)證算法性能
本文基于自適應(yīng)算子、精英策略和災(zāi)變策略的改進(jìn)出庫(kù)貨位優(yōu)化算法(IOSAA)是對(duì)采用標(biāo)準(zhǔn)遺傳算法的傳統(tǒng)出庫(kù)貨位優(yōu)化算法(TOSAA)的改進(jìn),現(xiàn)基于實(shí)際訂單運(yùn)用IOSAA 和TOSAA 分別對(duì)貨物出庫(kù)貨位分配模型進(jìn)行求解,并比較目標(biāo)函數(shù)值的結(jié)果來(lái)驗(yàn)證IOSAA是否比TOSAA有更好的優(yōu)化結(jié)果。由于出庫(kù)代價(jià)無(wú)法在算法外部進(jìn)行歸一化,因此,將出庫(kù)代價(jià)傾向優(yōu)化權(quán)重設(shè)為1,比較兩者優(yōu)化出庫(kù)代價(jià)的結(jié)果,實(shí)驗(yàn)采用的訂單詳情如表3所示。
表3 測(cè)試實(shí)例中訂單詳情表Table 3 Order details table in test case
算法優(yōu)化過(guò)程對(duì)比結(jié)果如圖3所示。從圖3可以看出,TOSAA由于采用傳統(tǒng)遺傳算法作為主要優(yōu)化手段,導(dǎo)致無(wú)法保存每一代最優(yōu)結(jié)果,因此優(yōu)化過(guò)程不平穩(wěn),并且容易過(guò)早收斂,無(wú)法繼續(xù)優(yōu)化;而IOSAA由于采用了精英策略、自適應(yīng)算子和災(zāi)變算子改進(jìn)手段,可以彌補(bǔ)傳統(tǒng)遺傳算法的不足,優(yōu)化過(guò)程更平穩(wěn)、快速,并且可以避免過(guò)早收斂,盡可能到達(dá)到最優(yōu)值。
圖3 IOSAA和TOSAA優(yōu)化過(guò)程比較Fig.3 Comparison of IOSAA and TOSAA optimization process
下面采用了10個(gè)不同的企業(yè)實(shí)際出庫(kù)訂單再次對(duì)比IOSAA和TOSAA算法效果,出庫(kù)代價(jià)傾向優(yōu)化權(quán)重設(shè)為1,結(jié)果如圖4所示。
圖4 不同訂單下IOSAA和TOSAA出庫(kù)代價(jià)優(yōu)化結(jié)果對(duì)比Fig.4 Comparison of IOSAA and TOSAA outbound cost optimization results under different orders
從圖4 可以看出,IOSAA 的優(yōu)化結(jié)果明顯優(yōu)于TOSAA,在各個(gè)訂單中都表現(xiàn)穩(wěn)定,出庫(kù)代價(jià)最低,并且隨著訂單規(guī)模增加,出庫(kù)代價(jià)增大,差距也越明顯。
下面結(jié)合自適應(yīng)優(yōu)化權(quán)重,對(duì)比IOSAA和TOSAA,設(shè)置倉(cāng)庫(kù)繁忙度為0.6,出庫(kù)代價(jià)和剩值率結(jié)果如表4所示。
表4 基于自適應(yīng)優(yōu)化權(quán)重,IOSAA和TOSAA結(jié)果對(duì)比Table 4 Based on adaptive optimization weights,IOSAA and TOSAA results comparison
為了明顯看出兩者的差距,定義對(duì)比綜合值如式(14):
式(14)中,F(xiàn)compare1是算法1 的對(duì)比綜合值,F(xiàn)compare2是算法2的對(duì)比綜合值,fout1是算法1結(jié)果中的出庫(kù)代價(jià),fout2是算法2結(jié)果中的出庫(kù)代價(jià),frv1是算法1結(jié)果中的貨物剩值率,frv2是算法2結(jié)果中的貨物剩值率。
因此,表4 中IOSAA 和TOSAA 所對(duì)應(yīng)的對(duì)比綜合值,如表5所示。
表5 表4中IOSAA和TOSAA所對(duì)應(yīng)的對(duì)比綜合值Table 5 Value of comparison of IOSAA and TOSAA in Table 4
從表5 可以看出,IOSAA 的對(duì)比綜合值明顯小于TOSAA,優(yōu)化結(jié)果表現(xiàn)更優(yōu)。
由于貨物出庫(kù)過(guò)程中作業(yè)人員無(wú)法忍受算法耗費(fèi)過(guò)長(zhǎng)時(shí)間,因此接下來(lái)比較兩者運(yùn)行時(shí)間,通過(guò)運(yùn)行100次,TOSAA和IOSAA平均運(yùn)行時(shí)間對(duì)比如圖5所示。
圖5 IOSAA和TOSAA運(yùn)行時(shí)間對(duì)比Fig.5 IOSAA and TOSAA running time comparison
如圖5 所示,TOSAA 算法運(yùn)行速度要快于IOSAA算法,但是對(duì)于實(shí)際應(yīng)用來(lái)說(shuō),100多毫秒的延遲相比于優(yōu)化結(jié)果的提升幅度,是完全可以接受的。
基于上述分析,表明改進(jìn)后的出庫(kù)貨位優(yōu)化算法能夠有效解決出庫(kù)貨位優(yōu)化問(wèn)題,并且優(yōu)化結(jié)果相比使用標(biāo)準(zhǔn)遺傳算法的出庫(kù)貨位優(yōu)化算法有所提高。
3.3.2 驗(yàn)證自適應(yīng)優(yōu)化權(quán)重作用
為驗(yàn)證基于倉(cāng)庫(kù)繁忙度的自適應(yīng)優(yōu)化權(quán)重是否有效,本文首先選取同一個(gè)訂單,采用不同的倉(cāng)庫(kù)繁忙度,分別使用自適應(yīng)優(yōu)化權(quán)重和不適用優(yōu)化權(quán)重算法進(jìn)行對(duì)比,仿真結(jié)果如圖6所示。
圖6 同一訂單不同倉(cāng)庫(kù)繁忙度下,仿真對(duì)比結(jié)果Fig.6 Simulation comparison results under the same order with different warehouse busyness
接下來(lái)選取一系列訂單,采用同一個(gè)倉(cāng)庫(kù)繁忙度(這里設(shè)置倉(cāng)庫(kù)繁忙度為0.6),分別使用自適應(yīng)優(yōu)化權(quán)重和不適用優(yōu)化權(quán)重算法進(jìn)行對(duì)比,仿真結(jié)果如圖7所示。
圖7 不同訂單同一倉(cāng)庫(kù)繁忙度下,仿真對(duì)比結(jié)果Fig.7 Simulation comparison results under the same warehouse busyness for different orders
由圖6、圖7的結(jié)果可知,使用了自適應(yīng)優(yōu)化權(quán)重的出庫(kù)貨位優(yōu)化算法對(duì)于貨物剩值率的優(yōu)化優(yōu)于不使用自適應(yīng)優(yōu)化權(quán)重的算法,這是由于不使用自適應(yīng)優(yōu)化權(quán)重的算法只考慮優(yōu)化出庫(kù)代價(jià),這導(dǎo)致某些生產(chǎn)日期靠前的貨物無(wú)法出庫(kù),造成貨物積壓,給企業(yè)造成損失,而使用了自適應(yīng)優(yōu)化權(quán)重的出庫(kù)貨位優(yōu)化算法根據(jù)倉(cāng)庫(kù)繁忙度來(lái)調(diào)整優(yōu)化權(quán)重,并且在倉(cāng)庫(kù)繁忙時(shí),傾向于降低出庫(kù)代價(jià),提高出庫(kù)代價(jià);在倉(cāng)庫(kù)比較空閑時(shí),傾向于出庫(kù)貨物剩值率低的貨物。因此,基于倉(cāng)庫(kù)繁忙度的自適應(yīng)優(yōu)化權(quán)重可以有效幫助倉(cāng)庫(kù)降低生產(chǎn)日期靠前的貨物積壓風(fēng)險(xiǎn),同時(shí)可以在倉(cāng)庫(kù)繁忙時(shí)優(yōu)先考慮出庫(kù)效率。
本文研究了倉(cāng)庫(kù)出庫(kù)貨位優(yōu)化問(wèn)題,建立了以出庫(kù)代價(jià)和貨物剩值率為原則的出庫(kù)貨位優(yōu)化模型,并利用改進(jìn)遺傳算法結(jié)合基于倉(cāng)庫(kù)繁忙率的自適應(yīng)優(yōu)化權(quán)重對(duì)模型進(jìn)行求解,通過(guò)企業(yè)實(shí)際生產(chǎn)數(shù)據(jù)驗(yàn)證了模型和算法的可行性和合理性,對(duì)于出庫(kù)貨位優(yōu)化,采用精英策略、自適應(yīng)算子和災(zāi)變算子的遺傳算法的優(yōu)化結(jié)果優(yōu)于標(biāo)準(zhǔn)的遺傳算法,并且其收斂速度更快,能夠避免過(guò)早收斂;同時(shí)使用基于倉(cāng)庫(kù)繁忙率的自適應(yīng)優(yōu)化權(quán)重,能夠較好地避免貨物因在倉(cāng)庫(kù)內(nèi)存放過(guò)久而貨物價(jià)值降低的風(fēng)險(xiǎn)同時(shí)又能在倉(cāng)庫(kù)繁忙時(shí)優(yōu)先考慮出庫(kù)效率。
本文在研究中對(duì)于臨期率和貨物剩值率的設(shè)計(jì)過(guò)于主觀,并且沒(méi)有考慮到跨倉(cāng)庫(kù)出庫(kù)的情形。因此,在今后的研究中,需要進(jìn)一步研究,建立更加客觀的臨期率和貨物剩值率模型,并研究跨倉(cāng)庫(kù)出庫(kù)的場(chǎng)景下的出庫(kù)貨位優(yōu)化。