亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進(jìn)變鄰域搜索的多隔室車輛路徑優(yōu)化算法

        2022-10-11 08:33:44姚冠新范雪茹張冬梅
        關(guān)鍵詞:優(yōu)化設(shè)計

        姚冠新,范雪茹,張冬梅

        (1.江蘇大學(xué) 管理學(xué)院,江蘇 鎮(zhèn)江 212013;2.揚(yáng)州大學(xué) 江蘇現(xiàn)代物流研究基地,江蘇 揚(yáng)州 225009)

        1 問題的提出

        隨著人們生活品質(zhì)的提高,多品種、小批量、定制化的產(chǎn)品需求逐漸增加,越來越多的物流企業(yè)和配送中心采用多隔室車輛(Multi-Compartment Vehicles, MCVs)代替單隔室車輛(Single-Compartment Vehicles, SCVs)來實現(xiàn)不同種類(或特性)產(chǎn)品的聯(lián)合交付[1],既降低了配送總成本[1-2],又滿足了消費(fèi)者需求。SCVs的整個車廂是一個獨立的空間[3],僅能運(yùn)輸一種特性的產(chǎn)品,如冷凍產(chǎn)品;MCVs的車廂被分割成多個相對獨立的空間[3],能夠裝載并共同運(yùn)輸不同種類的、不相容的、具有嚴(yán)格分裝要求的產(chǎn)品[4-5],如冷藏和冷凍產(chǎn)品。多隔室車輛路徑優(yōu)化問題(Multi-Compartment Vehicle Routing Problem, MCVRP)是具有容量限制的車輛路徑優(yōu)化問題(Capacitated Vehicle Routing Problem, CVRP)的擴(kuò)展。CVRP即SCVs從配送中心出發(fā),為需求節(jié)點配送一種特性產(chǎn)品,當(dāng)所裝載產(chǎn)品配送完畢后返回配送中心,其中每個節(jié)點僅能被訪問一次,最終實現(xiàn)配送距離最短或配送成本最低[6];MCVRP則是采用MCVs,設(shè)計運(yùn)輸線路以滿足一組節(jié)點對多種特性產(chǎn)品的需求[4],產(chǎn)品需裝載在同一車輛的不同隔室內(nèi)進(jìn)行共同運(yùn)輸[2,7],從配送中心出發(fā)依次抵達(dá)需求節(jié)點進(jìn)行配送,配送完畢后返回配送中心,最小化配送距離或配送成本。以1個配送中心和3個需求節(jié)點片段為例,在總負(fù)載上限和節(jié)點總需求相同、車輛類型和產(chǎn)品細(xì)分需求不同、任意整車和隔室不超載且分裝要求嚴(yán)格的前提下,一輛SCV即可滿足CVRP中節(jié)點ai-1、ai、ai+1的配送需求(如圖1a),但卻需要兩輛MCVs才能滿足MCVRP中節(jié)點bj-1、bj、bj+1的配送需求(如圖1b)。由此可見,CVRP和MCVRP存在差異性,且由于條件嚴(yán)苛,MCVs的路徑規(guī)劃變得更加困難。

        實際生產(chǎn)和生活中MCVs的應(yīng)用逐漸增加。零售商的雜貨分銷中[1,5],不同產(chǎn)品需儲存在不同溫度環(huán)境下運(yùn)送[1];廢物和垃圾收集中[8-9],不同顏色的玻璃、不同種類的垃圾需被嚴(yán)格分裝在不同的隔室內(nèi)進(jìn)行聯(lián)合運(yùn)輸;橄欖油收集[10]、成品油配送[4]、奶制品收集[11]、燃料分配或補(bǔ)給[11-12]、冷鏈配送[11,13]、動物飼料及牲畜集配[14]均會用到MCVs,其應(yīng)用廣泛且前景良好。此外,基于MCVs應(yīng)用背景的MCVRP的理論研究熱度也逐漸提升。近年來,關(guān)于MCVRP的相關(guān)研究主要集中在以下3方面:①基于不同情境的MCVRP模型創(chuàng)新和擴(kuò)展,豐富了相關(guān)研究理論體系,如基于MCVRP的車輛選擇[5]、多車庫的MCVRP[11]、帶時間窗的MCVRP[13]等;②求解MCVRP的元啟發(fā)式算法的創(chuàng)新設(shè)計及改進(jìn),降低了配送距離(成本),提供了有效的路徑規(guī)劃手段,如混合蟻群算法[2]、改進(jìn)粒子群算法[3]等;③具有實際約束的MCVRP的案例研究,為生產(chǎn)、生活實踐提供了科學(xué)的理論依據(jù),如不同型號的成品油配送、分類垃圾收集等(如表1)。

        表1 多隔室車輛路徑優(yōu)化相關(guān)問題及算法設(shè)計

        續(xù)表1

        續(xù)表1

        綜合來看,MCVRP優(yōu)化研究以及相應(yīng)的算法創(chuàng)新設(shè)計兼具理論價值和實際意義。然而,MCVRP中多種特性產(chǎn)品不能混裝的特質(zhì)以及相應(yīng)隔室的增加、隔室容量的限制造成了研究的差異性及困難性,且MCVRP的平均解決方案質(zhì)量不如CVRP[6]。因此,為優(yōu)化MCVRP解決方案,本文基于變鄰域搜索算法(Variable Neighborhood Search, VNS)框架,針對MCVRP的特點設(shè)計了一種改進(jìn)變鄰域搜索算法(Improved Variable Neighborhood Search, IVNS)。首先,設(shè)計多起點尋優(yōu)機(jī)制,采用掃描法構(gòu)造歷次迭代的初始解,增加解的多樣性;其次,細(xì)分主程序下子程序1和子程序2,子程序1中設(shè)計Shaking過程,以實現(xiàn)小范圍解空間的探索,子程序2中設(shè)計全局?jǐn)_動過程,以實現(xiàn)大范圍解空間的探索,并設(shè)計一種還原及再分配策略處理不可行解,探尋解空間中的不可行區(qū)域;再次,結(jié)合使用貪婪算法和多種混合算子來設(shè)計Local Search過程,以實現(xiàn)局部搜索和優(yōu)化,提升求解質(zhì)量和計算效率;然后,應(yīng)用最大迭代次數(shù)停止準(zhǔn)則結(jié)束主循環(huán)并保留最優(yōu)解;最后,采用改編算例進(jìn)行實驗及結(jié)果對比分析,驗證了IVNS算法的有效性、優(yōu)越性及收斂性。

        2 問題描述及模型構(gòu)建

        2.1 問題描述

        多隔室車輛路徑優(yōu)化問題(MCVRP)可以描述為一個配送中心服務(wù)于多個需求節(jié)點,每個需求節(jié)點具有不同種類產(chǎn)品需求,任意一類產(chǎn)品需求不可拆分配送,不同種類產(chǎn)品需嚴(yán)格分裝、聯(lián)合配送交付,且僅接受一次車輛訪問;需采用車型相同的、每個隔室的容量固定不變、具有容量限制的多隔室車輛進(jìn)行配送,其中每個隔室僅能裝載一種產(chǎn)品,每輛車負(fù)責(zé)線路中所有需求節(jié)點對某種產(chǎn)品的需求已知且不超過對應(yīng)隔室的負(fù)載上限、對某種產(chǎn)品的需求總量不超過對應(yīng)隔室的負(fù)載上限、對所有種類產(chǎn)品的需求總量不超過整車的負(fù)載上限;配送中心的庫存最大容量、多隔室車輛的臺數(shù)均能夠滿足所覆蓋需求節(jié)點的所有種類產(chǎn)品需求;多隔室車輛從配送中心出發(fā),沿規(guī)劃路徑配送完畢后,返回配送中心,最終實現(xiàn)總的配送距離最小化。

        (1)相關(guān)符號G=(N,E),N={0}∪N′={0,1,2,…,n}。其中:G表示配送系統(tǒng);N表示物流節(jié)點集合;{0}表示配送中心;N′表示需求節(jié)點集合;E={(i,j)|i,j∈N},E表示無向邊集合,i,j表示物流節(jié)點,i,j∈N。dij表示物流節(jié)點i到j(luò)的距離,其中dij=dji,即兩節(jié)點往返距離相同。V={1,2,3,…,k},V表示多隔室車輛集合,k表示多隔室車輛,k∈V。M={1,2,3,…,m},M表示車輛隔室集合。P={1,2,3,…,p},P表示產(chǎn)品種類集合,其中m=p,即產(chǎn)品種類數(shù)與隔室數(shù)量相同。Qp表示某隔室所能夠負(fù)載對應(yīng)種類產(chǎn)品p的最大載重量,Qmax表示多隔室車輛的總的最大載重量。qjp表示需求節(jié)點j對產(chǎn)品p的需求量。

        2.2 模型構(gòu)建

        MCVRP的數(shù)學(xué)模型如下:

        (1)

        s.t.

        (2)

        (3)

        (4)

        ?k∈V,?p∈P;

        (5)

        ?k∈V,?p∈P,i≠j;

        (6)

        ?j∈N,?k∈V,?p∈P,i≠j。

        (7)

        其中:式(1)為目標(biāo)函數(shù),表示最小化多隔室車輛總配送距離;式(2)表示一個需求節(jié)點只接受一輛多隔室車的服務(wù)且僅能被訪問一次;式(3)表示路徑具有連續(xù)性;式(4)表示多隔室車輛配送過程中的任意種類產(chǎn)品需求之和不超過對應(yīng)的隔室負(fù)載上限;式(5)表示任意需求節(jié)點的任意種類產(chǎn)品需求量不超過相應(yīng)隔室的負(fù)載上限;式(6)表示多隔室車輛返回配送中心時,某種產(chǎn)品的荷載量等于該多隔室車輛本次配送路線中各需求節(jié)點的該種產(chǎn)品的需求量之和;式(7)表示配送車輛在任意節(jié)點的某種產(chǎn)品的荷載量滿足在該點需求量的遞推關(guān)系。

        3 算法設(shè)計

        VNS算法是MLADENOVIC等[29]和HANSEN等[30]提出的一種優(yōu)化算法,被廣泛用于解決組合優(yōu)化問題,其基本思想是在搜索過程中系統(tǒng)地改變鄰域結(jié)構(gòu)集以拓展搜索范圍,通過局部搜索流程以獲得局部最優(yōu)解,再基于此局部最優(yōu)解重復(fù)上述過程獲得另一個局部最優(yōu)解,如此不斷迭代最終獲得收斂,達(dá)到優(yōu)化目的[21,31-32]。VNS算法的基本環(huán)節(jié)包括初始解構(gòu)造、Shaking過程、Local Search過程及停止準(zhǔn)則,具有環(huán)節(jié)少、參數(shù)少、易于操作和改進(jìn)等優(yōu)勢。為了在合適的求解時間內(nèi)獲得MCVRP的高質(zhì)量解決方案,本文基于VNS算法,針對MCVRP的特點,提出改進(jìn)變鄰域搜索算法(IVNS),具體流程如圖2所示。下面將詳細(xì)介紹IVNS算法的初始解構(gòu)造、Shaking過程、全局?jǐn)_動過程、還原及再分配策略、Local Search過程及停止準(zhǔn)則等重要組成部分。

        3.1 初始解構(gòu)造

        VNS算法是基于單個解向量展開的尋優(yōu)過程[31],即從單點出發(fā)進(jìn)行尋優(yōu),遍歷所有鄰域結(jié)構(gòu)后保留最優(yōu)解,求解的時效性較好,但是解的多樣性較差。鑒于此,設(shè)計一種多起點尋優(yōu)機(jī)制[8],采用經(jīng)典的掃描法構(gòu)造每次迭代過程的初始解,基于MCVRP不同種類產(chǎn)品需求以及不同隔室的負(fù)載上限進(jìn)行容量及路徑可行性判定,具體步驟如下:

        步驟1坐標(biāo)系轉(zhuǎn)換。將配送中心{0}和所有需求節(jié)點{1,2,3,…,n}所在的笛卡爾坐標(biāo)系轉(zhuǎn)換成以配送中心為極點、以任選1個需求節(jié)點和配送中心的連線為極軸的極坐標(biāo)系,其他需求節(jié)點基于極軸轉(zhuǎn)換為極坐標(biāo)角度。

        步驟2將需求節(jié)點分組。最小角度的需求節(jié)點作為起始點,按照逆時針方向,將需求節(jié)點逐一納入組Group1中,直到該組中所有需求節(jié)點的某特性產(chǎn)品的需求總量超過該隔室負(fù)載上限,然后以本組最后1個需求節(jié)點作為下一組起始點建立新組Group2,繼續(xù)掃描剩余需求節(jié)點并逐一添加到新組內(nèi)。

        步驟3重復(fù)步驟2,直至所有需求節(jié)點都被分組為止。此時,任意一組內(nèi)所有需求節(jié)點的任意種類產(chǎn)品的需求總量未超過當(dāng)前隔室的負(fù)載上限,且組內(nèi)所有需求節(jié)點的所有種類產(chǎn)品需求總量未超過多隔室車輛整車負(fù)載上限;

        步驟4形成初始解。分別將各組內(nèi)的第1個需求節(jié)點、最后1個需求節(jié)點與配送中心連接,組內(nèi)的第i個點與第i+1個點連接(i=1,…,j-1,其中j為當(dāng)前組內(nèi)需求節(jié)點總數(shù)),每組各形成一條子路徑,所有子路徑共同構(gòu)成初始解。

        以1個配送中心和10個需求節(jié)點為例,初始解構(gòu)造流程如圖3所示。需注意,IVNS算法中可能出現(xiàn)較少點構(gòu)成的子路徑或較少條子路徑構(gòu)成的解,甚至出現(xiàn)極端情況,如1個點構(gòu)成的子路徑或1條子路徑構(gòu)成的解。若某段程序中需具備2個及以上需求節(jié)點構(gòu)成的子路徑或2條及以上子路徑構(gòu)成的解才能繼續(xù)執(zhí)行時,通過設(shè)計并執(zhí)行特定程序來重新選擇子路徑或跳出循環(huán),確保算法運(yùn)行暢通。

        3.2 Shaking過程

        Shaking過程即系統(tǒng)地改變鄰域結(jié)構(gòu)集以拓展當(dāng)前解的搜索范圍,避免陷入局部最優(yōu)解,從而獲得更優(yōu)解。鑒于此,基于MCVRP的子路徑形式初始解設(shè)計子程序1中的Shaking過程,從子路徑轉(zhuǎn)換的角度構(gòu)造鄰域結(jié)構(gòu)集合,小范圍擴(kuò)展當(dāng)前解搜索空間,具體步驟如下:

        步驟1定義鄰域結(jié)構(gòu)集合Nk(k=1,…,kmax),其中kmax=9,即設(shè)計了9個鄰域結(jié)構(gòu)。

        步驟2選取鄰域結(jié)構(gòu)。按照預(yù)先設(shè)定順序,選取鄰域結(jié)構(gòu)集合中的一個鄰域結(jié)構(gòu)Nk。

        步驟3選取兩條子路徑。確定當(dāng)前解s包含的子路徑的數(shù)量m,先選取當(dāng)前解s的一條隨機(jī)子路徑Subpathi,其中i=1,2,…,m,若i不等于m,則再選取子路徑Subpathi+1;若i等于m,則再選取子路徑Subpath1。

        步驟4獲得兩條(或一條)新子路徑。根據(jù)Nk的定義,采用當(dāng)前定義下的特定算子對所選擇的兩條子路徑進(jìn)行節(jié)點以及節(jié)點的不同種類產(chǎn)品需求轉(zhuǎn)換操作,獲得兩條新子路徑,若因節(jié)點變化導(dǎo)致僅剩一條子路徑,則刪除空子路徑以不影響后續(xù)算法執(zhí)行。

        步驟5形成新解。通過保留當(dāng)前解s的大部分特征,改變小部分特征,形成新解s′,加快算法收斂速度[32]。

        單一的鄰域結(jié)構(gòu)可能造成當(dāng)前解的較大波動[21],而多個鄰域結(jié)構(gòu)可廣泛探索解空間[8],進(jìn)而提高算法的求解效率和穩(wěn)定性[32]。因此,基于插入、交換、2-opt*等經(jīng)典算子來設(shè)計鄰域結(jié)構(gòu)集合,并按照固定順序逐一實現(xiàn)鄰域拓展動作。

        首先,基于插入算子設(shè)計鄰域結(jié)構(gòu)N1~N4:1-插入、2-插入、3-插入、4-插入,即分別基于1~4個(連續(xù))節(jié)點的插入動作。插入算子(如圖4)的基本原理即指定兩條子路徑SubpathK(k1,…,ki-1,ki,ki+1,…,km)和SubpathT(t1,…,tj-1,tj,tj+1,…,tn),提取SubpathK中ki插入到SubpathT中tj的后置位,形成兩條新的子路徑newSubpathK(k1,…,ki-1,ki+1,…,km)和newSubpathT(t1,…,tj-1,tj,ki,tj+1,…,tn),然后判斷是否demandQ(newSubpathK)≤vehiclecompartmentcapacityQ且demandQ(newSubpathT)≤vehiclecompartmentcapacityQ(Q=1,2,…,q,q為MCVs隔室的數(shù)量),即判斷每個隔室的負(fù)載是否合規(guī),若否,則重新進(jìn)行選擇;若是,則進(jìn)一步判斷是否distance(newSubpathK)+distance(newSubpathT)

        其次,基于交換算子設(shè)計鄰域結(jié)構(gòu)N5~N8:1-交換、2-交換、3-交換、4-交換,即分別基于1~4個(連續(xù))節(jié)點的交換動作。交換算子的基本原理即指定兩條子路徑,提取并交換SubpathK中的ki和SubpathT中的tj,形成兩條新的子路徑newSubpathK(k1,…,ki-1,tj,ki+1,…,km)和newSubpathT(t1,…,tj-1,ki,tj+1,…,tn),之后的判斷、選擇動作也需要結(jié)合還原及再分配策略并進(jìn)行每個隔室的負(fù)載判斷和每條子路徑的可行性判斷。此外,引入Cross-Exchange和iCross-Exchange兩種算子,假設(shè)交換SubpathK中的(ki-1,ki,ki+1)與SubpathT中的(tj-1,tj,tj+1),Cross-Exchange算子(如圖5a)即將兩個連續(xù)點片段分別在對方子路徑中進(jìn)行正向放置,形成newSubpathK(k1,…,ki-2,tj-1,tj,tj+1,ki+2,…,km)和newSubpathT(t1,…,ti-2,ki-1,ki,ki+1,ti+2,…,tn);iCross-Exchange算子(如圖5b)即將兩個連續(xù)點片段在對方子路徑中進(jìn)行反向放置,形成newSubpathK(k1,…,ki-2,tj+1,tj,tj-1,ki+2,…,km)和newSubpathT(t1,…,ti-2,ki+1,ki,ki-1,ti+2,…,tn)。因此,出于對連續(xù)點片段的方向性以及解的可行性考慮[21],設(shè)置基準(zhǔn)概率P=0.8,隨機(jī)生成0-1的隨機(jī)數(shù)p,當(dāng)pP時,應(yīng)用iCross-Exchange算子。

        最后,基于2-opt*算子設(shè)計鄰域結(jié)構(gòu)N9:2-opt*。2-opt*算子的基本原理即指定兩條子路徑,分別截斷任意連續(xù)兩點間線路(ki-1,ki)和(tj,tj+1),獲得SubpathK1(k1,…,ki-1)、SubpathK2(ki,ki+1,…,km)、SubpathT1(t1,…,tj-1,tj)以及SubpathT2(tj+1,…,tn)4個片段,將兩條子路徑的片段重新連接形成兩種組合情形:情形1是newSubpathK(k1,…,ki-1,tj+1,…,tn)(K1和T2)和newSubpathT(t1,…,tj-1,tj,ki,ki+1,…,km)(K2和T1)(如圖6a);情形2是SubpathK(k1,…,ki-1,tj,tj-1,…,t1)(K1和T1)和newSubpathT(km,…,ki+1,ki,tj+1,…,tn)(K2和T2)(如圖6b),之后的判斷、選擇動作也需要結(jié)合還原及再分配策略并進(jìn)行每個隔室的負(fù)載判斷和每條子路徑的可行性判斷。此外,可設(shè)計一定概率獲得不同組合情形以增加解的多樣性,因此,設(shè)置基準(zhǔn)概率T=0.5,隨機(jī)生成0~1的隨機(jī)數(shù)t,當(dāng)tT時,采用情形2。

        3.3 全局?jǐn)_動過程

        上述Shaking過程是基于子路徑展開的小范圍解空間的探索,為了進(jìn)一步擴(kuò)大解空間的搜索范圍,通過有效的鄰域變換保證多樣化的探索,并最終實現(xiàn)全局的優(yōu)化[20],借鑒擾動方法設(shè)計思想[8],基于總路徑形式解設(shè)計子程序2中的全局?jǐn)_動過程,從總路徑轉(zhuǎn)換的角度構(gòu)造鄰域結(jié)構(gòu)集合,大范圍擴(kuò)展當(dāng)前解搜索空間。具體地,任選總路徑形式當(dāng)前解的兩點執(zhí)行置換、轉(zhuǎn)置、插入動作:置換即將原總路徑Rout(r1,…,ri-1,ri,ri+1,…,rj-1,rj,rj+1,…,rn)中的ri和rj交換,獲得新的總路徑newRout(r1,…,ri-1,rj,ri+1,…,rj-1,ri,rj+1,…,rn);轉(zhuǎn)置即將ri和rj節(jié)點及之間節(jié)點順序顛倒,獲得新的總路徑newRout(r1,…,ri-1,rj,rj-1,…,ri+1,ri,rj+1,…,rn);插入即將ri插入到rj的后置位,獲得新的總路徑newRout(r1,…,ri-1,ri+1,…,rj-1,rj,ri,rj+1,…,rn)。需要注意的是,全局?jǐn)_動過程也要結(jié)合還原及再分配策略進(jìn)行之后的判斷和選擇,而且,MCVs每個隔室的負(fù)載判斷及每條子路徑的可行性判斷均不可或缺,具體步驟如下:

        步驟1輸入當(dāng)前解w的總路徑形式解x,設(shè)置最大循環(huán)次數(shù)Maxl=9,i=0。

        步驟2令i=i+1,結(jié)合判斷、選擇動作重復(fù)以下步驟,直至i>Maxl。

        步驟3從x中任選兩點xi和xj,產(chǎn)生1~3的偽隨機(jī)整數(shù)m,進(jìn)行以下操作以形成新排列順序,記為x′。

        (1)當(dāng)m=1時,對xi和xj兩節(jié)點執(zhí)行置換操作(如圖7a);

        (2)當(dāng)m=2時,對xi和xj兩節(jié)點及之間執(zhí)行轉(zhuǎn)置操作(如圖7b);

        (3)當(dāng)m=3時,對xi和xj兩節(jié)點執(zhí)行插入操作(如圖7c)。

        步驟4將x′的子路徑形式解記為w′,實現(xiàn)了解空間較大范圍拓展搜索。

        3.4 還原及再分配策略

        一般算法設(shè)計中,相應(yīng)動作的執(zhí)行以新解負(fù)載合規(guī)、配送距離變小為前提[6],導(dǎo)致部分解被過于嚴(yán)苛的約束條件剔除,此時可采用一些特殊的策略和機(jī)制保留并處理不可行解以探索解空間中的不可行區(qū)域[6,8,21,23],從而對解空間進(jìn)行更大范圍的探索,增加解的多樣性的同時,提升獲得更優(yōu)解的可能性[26]。IVNS算法中,經(jīng)過Shaking過程和全局?jǐn)_動過程可能獲得不可行新解,即子路徑中某種產(chǎn)品總需求超過當(dāng)前隔室的負(fù)載上限(隔室超載)或所有產(chǎn)品的總需求超過MCVs整車的負(fù)載上限(整車超載),實際運(yùn)輸中不可行。因此,設(shè)計一種還原策略和再分配策略,保留并處理不可行解,將其還原成總路徑形式解并再度分配成子路徑形式的可行新解。

        還原策略的具體步驟如下:

        步驟1輸入子路徑形式的不可行當(dāng)前解r,計算其子路徑的數(shù)量o,即為分組數(shù)量o。

        步驟2對第1組到第o組執(zhí)行以下操作:去掉節(jié)點與節(jié)點、節(jié)點與配送中心之間的所有路徑,并保存所有分組內(nèi)的未去掉路徑之前的節(jié)點順序,即獲得總路徑形式的解y(如圖8a)。

        再分配策略的具體步驟如下:

        步驟1基于總路徑形式的當(dāng)前解y,從第1組的第1個需求節(jié)點開始按照原順序進(jìn)行重新分組,假設(shè)分成j組,任意組內(nèi)的負(fù)載判斷均合規(guī),隔室和整車均未超載。

        步驟2第1組到第j組重新形成子路徑,形成子路徑形式的可行新解r′(如圖8b)。

        此外,由于Shaking過程和全局?jǐn)_動過程基于的MCVRP解形式不同,還原及再分配策略在子程序1和2中的順序也不同:子程序1中,基于子路徑形式解執(zhí)行Shaking過程,隨后采用還原策略和再分配策略,最后進(jìn)行局部搜索和優(yōu)化(如圖9a);子程序2中,先執(zhí)行還原策略獲得總路徑形式解,為全局?jǐn)_動過程做準(zhǔn)備,隨后執(zhí)行再分配策略,最后進(jìn)行局部搜索和優(yōu)化(如圖9b)??梢姡€原及再分配策略的使用使得不止兩條子路徑上的節(jié)點數(shù)量、順序、總需求等發(fā)生變化。

        3.5 Local Search過程

        Local Search過程即通過局部搜索流程求得局部最優(yōu)解,決定著最終的求解質(zhì)量和計算效率[32]。為了對子程序1和子程序2產(chǎn)生的鄰域解進(jìn)行局部搜索以獲得優(yōu)化,借鑒文獻(xiàn)[6,17-18]的思想,設(shè)計基于子路徑內(nèi)和子路徑間搜索優(yōu)化機(jī)制的Local Search過程。

        基于經(jīng)典2-opt算子和貪婪算法設(shè)計子路徑內(nèi)搜索優(yōu)化機(jī)制。2-opt算子(如圖10)即針對當(dāng)前子路徑SubpathK(k1,…,ki-1,ki,ki+1,…,kj-1,kj,kj+1,…,km),選擇兩個需求節(jié)點ki和kj,將兩需求節(jié)點及之間節(jié)點順序顛倒,獲得新子路徑newSubpathK(k1,…,ki-1,kj,kj-1,…,ki+1,ki,kj+1,…,km);貪婪算法即針對當(dāng)前子路徑,每次只選擇距離當(dāng)前節(jié)點最近的節(jié)點作為下一個配送節(jié)點,直至遍歷當(dāng)前子路徑中所有節(jié)點。需注意,兩者均是基于子路徑內(nèi)部節(jié)點的動作,每個隔室及整車負(fù)載均未變化,僅需要判斷是否distance(newSubpathK)

        基于2-opt*、插入、交換等經(jīng)典算子(基本原理見3.2節(jié))設(shè)計子路徑間搜索優(yōu)化機(jī)制。需注意,算例分析及實際應(yīng)用中,互為近鄰的子路徑更容易產(chǎn)生無效交叉部分,消除部分交叉能夠減少配送距離,而任意選擇兩條子路徑進(jìn)行優(yōu)化時,獲得較優(yōu)解的概率較小,且會大幅增加計算時間。因此,擴(kuò)展文獻(xiàn)[6,22]的思想,以加快搜索速度、減少計算量為目的,設(shè)計一種子路徑近鄰優(yōu)先選取原則,即先后選取相鄰和相隔子路徑進(jìn)行局部搜索,相鄰子路徑即Subpathi和Subpathi+1(如圖11a),相隔子路徑即Subpathi和Subpathi+2(如圖11b)。此外,還采用best改進(jìn)策略來實現(xiàn)求解質(zhì)量和運(yùn)行時間的最佳平衡[33],即遍歷并計算當(dāng)前解的所有鄰居解并保留最優(yōu)解。特別地,子路徑間搜索優(yōu)化機(jī)制伴隨著節(jié)點及節(jié)點需求轉(zhuǎn)換,因此,MCVs的每個隔室都要重新進(jìn)行負(fù)載判斷。

        據(jù)此,設(shè)計Local Search過程包含兩個組成部分:①基于2-opt算子、貪婪算法交替使用的子路徑內(nèi)搜索優(yōu)化機(jī)制;②基于近鄰優(yōu)先選取原則的、多種混合算子的子路徑間搜索優(yōu)化機(jī)制。其中,子路徑間搜索優(yōu)化機(jī)制包含相鄰子路徑2-opt*、相隔子路徑2-opt*、相鄰子路徑1-插入、相隔子路徑1-插入、相鄰子路徑1-交換、相隔子路徑1-交換6個搜索流程。需注意,IVNS算法部分過程基于相同的經(jīng)典算子原理,但是都進(jìn)行了一定程度的結(jié)合創(chuàng)新和改進(jìn)設(shè)計,因而具有差異性。

        3.6 停止準(zhǔn)則

        與IVNS算法主程序的多起點尋優(yōu)機(jī)制相對應(yīng),采用最大迭代次數(shù)停止準(zhǔn)則,迭代一定次數(shù)后結(jié)束循環(huán),在歷次迭代的較優(yōu)解中保留最優(yōu)解。其中,子程序1停止準(zhǔn)則即遍歷Shaking過程的9種鄰域結(jié)構(gòu)后,結(jié)束循環(huán)并保留最優(yōu)解;子程序2停止準(zhǔn)則即對全局?jǐn)_動過程循環(huán)9次后,結(jié)束循環(huán)并保留最優(yōu)解。

        4 算例分析

        MCVRP缺乏國際標(biāo)準(zhǔn)算例,本文基于REED等[9]的改編辦法對14個CVRP國際標(biāo)準(zhǔn)算例(http://neo.lcc.uma.es/vrp/vrp-instances/capacitated-vrp-instances/)進(jìn)行改編,獲得28個MCVRP算例。具體改編辦法:①坐標(biāo):配送中心和需求節(jié)點的坐標(biāo)不變;②車輛:原單隔室車輛容量按照3∶1的比例拆分成兩個隔室容量;③節(jié)點需求:當(dāng)需求節(jié)點的位置,x,y∈(0,35)時,其需求量按照3∶1的比例分割成兩種特性產(chǎn)品需求量,其他需求節(jié)點的需求量按照2∶1的比例(S2改編方式)或4∶1的比例(S3改編方式)分割成兩種特性產(chǎn)品的需求量。本文采用MATLAB R2016a進(jìn)行計算,運(yùn)行環(huán)境是Windows10專業(yè)版、Intel(R)Core(TM)i5-4210H CPU @ 2.90 GHz處理器、4 G內(nèi)存、64位操作系統(tǒng)。通過改編算例的實驗以及結(jié)果對比,分析并驗證算法的有效性、優(yōu)越性及收斂性。

        4.1 算法的有效性分析

        基于vrpnc2-S2算例,在其他程序不變的情況下,僅測試當(dāng)前動作對結(jié)果的影響,每個變換下均運(yùn)行5次、迭代500次,獲得最好解、最差解、平均解及標(biāo)準(zhǔn)方差,所有表格中加粗?jǐn)?shù)據(jù)為對比之下的最優(yōu)解;此外,由于最好解、最差解、平均解等指標(biāo)能夠反映算法的尋優(yōu)能力,極差(最差解—最好解)、標(biāo)準(zhǔn)方差、極差百分比(極差/最好解)等指標(biāo)能夠反映算法的求解穩(wěn)定性[34],故再計算極差和極差百分比來繪制尋優(yōu)能力和求解穩(wěn)定性統(tǒng)計分析圖并進(jìn)行統(tǒng)計學(xué)分析。

        4.1.1 初始解策略的有效性

        分別采用貪婪算法、隨機(jī)策略、掃描算法產(chǎn)生初始解。結(jié)果顯示,基于掃描法的IVNS的最好解、最差解、平均解均最小,隨機(jī)策略次之,貪婪算法最大。相對于貪婪算法和隨機(jī)策略,基于掃描算法的IVNS的平均解分別減少了10.902 8和7.482 2,減少百分比分別是1.23%和0.85%?;趻呙杷惴ǖ腎VNS的結(jié)果標(biāo)準(zhǔn)方差最小,求解穩(wěn)定性最好(如表2)。此外,觀察不同構(gòu)造策略的初始解和最好解的折線圖(其中:G為貪婪算法,R為隨機(jī)策略,S為掃描算法;I為初始解,O為最好解),5次運(yùn)行中隨機(jī)策略的初始解的波動最大,極差達(dá)到84.351 4,掃描法的初始解的波動最小,極差僅有22.824 7,說明掃描法能夠更穩(wěn)定地獲得更優(yōu)初始解(如圖12)??梢?,以掃描法構(gòu)造初始解的IVNS算法更有效。

        表2 不同初始解構(gòu)造策略對結(jié)果的影響

        4.1.2 Shaking過程算子的有效性

        Shaking過程中依次疊加使用插入、交換、2-opt*算子。結(jié)果顯示,相比于未采用任何算子,基于插入、交換、2-opt*算子的平均解減少了8.895 4,減少百分比為1.01%,結(jié)果質(zhì)量更好,標(biāo)準(zhǔn)方差減少了0.90,求解穩(wěn)定性更強(qiáng)。其中插入算子對解質(zhì)量的提升最大,平均解減少值為6.566 5,為總減少值的73.82%(如表3)。此外,觀察Shaking過程不同算子設(shè)計的尋優(yōu)能力和穩(wěn)定性相關(guān)指標(biāo)的變化趨勢,最好解、最差解及平均解均逐漸降低,而極差、標(biāo)準(zhǔn)方差和極差百分比變化有波動,但整體呈下降趨勢,說明所設(shè)計Shaking過程算子的尋優(yōu)能力更強(qiáng)、穩(wěn)定性更高(如圖13a和圖13b)。可見,Shaking過程使用插入、交換、2-opt*算子使IVNS算法更有效。

        表3 Shaking過程算子對結(jié)果的影響

        4.1.3 全局?jǐn)_動過程的有效性

        在Shaking過程后增加全局?jǐn)_動過程。結(jié)果顯示,相比于僅有Shaking過程,結(jié)合了全局?jǐn)_動過程的IVNS算法減小了最好解、最差解、平均解,略增加了標(biāo)準(zhǔn)方差。其中,平均解減少了0.525 4,提升了求解質(zhì)量,跳出了局部最優(yōu),標(biāo)準(zhǔn)方差增加了0.36,降低了穩(wěn)定性(如表4)。此外,觀察全局?jǐn)_動過程的尋優(yōu)能力和求解穩(wěn)定性的相關(guān)指標(biāo)變化趨勢,最好解、最差解、平均解均呈下降趨勢,但是極差、標(biāo)準(zhǔn)方差、極差百分比均呈上升趨勢,說明全局?jǐn)_動過程的設(shè)計使得IVNS算法的尋優(yōu)能力變強(qiáng),雖然導(dǎo)致求解穩(wěn)定性變差,但與全局?jǐn)_動過程的大范圍解空間探索的設(shè)計初衷吻合(如圖13c和圖13d)??梢?,全局?jǐn)_動過程的設(shè)計和應(yīng)用使得IVNS算法更有效。

        表4 全局?jǐn)_動過程對結(jié)果的影響

        4.1.4 Local Search過程優(yōu)化機(jī)制及算子的有效性

        Local Search過程中依次疊加使用子路徑內(nèi)和子路徑間搜索優(yōu)化機(jī)制。結(jié)果顯示,子路徑內(nèi)及子路徑間搜索優(yōu)化機(jī)制均有效降低了最好解、最差解、平均解及標(biāo)準(zhǔn)方差,兩者導(dǎo)致平均解分別減少了250.775 6和47.143 5,減少百分比分別是21.37%和4.02%,標(biāo)準(zhǔn)方差減少了19.41和1.27,提升了求解質(zhì)量及穩(wěn)定性(如表5)。此外,觀察不同搜索優(yōu)化機(jī)制的尋優(yōu)能力及求解穩(wěn)定性相關(guān)指標(biāo)變化趨勢,最好解、最差解、平均解以及極差、標(biāo)準(zhǔn)方差、極差百分比均呈較大幅度下降趨勢,說明所設(shè)計搜索優(yōu)化機(jī)制的尋優(yōu)能力和求解穩(wěn)定性均實現(xiàn)較大幅度提升(如圖14a和圖14b)??梢?,Local Search過程中子路徑內(nèi)及子路徑間搜索優(yōu)化機(jī)制的設(shè)計提升了IVNS算法的有效性。

        表5 Local Search過程子路徑內(nèi)及子路徑間搜索優(yōu)化機(jī)制對結(jié)果的影響

        進(jìn)一步地,子路徑間搜索優(yōu)化機(jī)制中依次疊加使用2-opt*、插入、交換算子。結(jié)果顯示,2-opt*、插入、交換算子導(dǎo)致平均解分別減少了33.990 8、7.391 8及5.760 9,優(yōu)化效果2-opt*最大,插入算子次之,交換算子最小(如表6)。此外,觀察子路徑間搜索優(yōu)化機(jī)制中不同算子設(shè)計的尋優(yōu)能力和求解穩(wěn)定性相關(guān)指標(biāo)變化趨勢,最好解、最差解、平均解均呈下降趨勢,且最好解和最差解的差距始終較小,而極差、極差百分比呈“先上升、后下降”趨勢,但整體上極差、極差百分比和標(biāo)準(zhǔn)方差是下降的,說明所設(shè)計的子路徑間搜索優(yōu)化機(jī)制中的算子尋優(yōu)能力和求解穩(wěn)定性均加強(qiáng)(如圖14c和圖14d)??梢姡琇ocal Search過程中子路徑間搜索優(yōu)化機(jī)制2-opt*、插入、交換算子的采用使得IVNS算法更有效。

        表6 Local Search過程子路徑間搜索優(yōu)化機(jī)制中算子對結(jié)果的影響

        4.2 與已有文獻(xiàn)結(jié)果對比

        4.2.1 配送路徑規(guī)劃合理性比較

        梳理現(xiàn)有MCVRP研究文獻(xiàn),REED等[9]和陳久梅等[3]的研究中繪制了vrpnc1-S2和vrpnc1-S3算例的結(jié)果網(wǎng)絡(luò)結(jié)構(gòu)圖(配送路徑規(guī)劃圖),其中REED、陳久梅以及本文的最好結(jié)果如表7所示,相應(yīng)算例目前最好的,以及本文最好結(jié)果的網(wǎng)絡(luò)結(jié)構(gòu)如圖15~圖18所示。相比于IPSO結(jié)果,IVNS算法所獲得的vrpnc1-S2、vrpnc1-S3算例的最好解分別減少了1.494 2和1.729 2,減少百分比分別為0.27%和0.31%,結(jié)果質(zhì)量有所提升,且IVNS算法所獲得的網(wǎng)絡(luò)結(jié)構(gòu)圖減少了無效交叉路徑,降低了配送距離,均優(yōu)于ACO和IPSO求解結(jié)果。

        表7 與已有文獻(xiàn)的總配送距離的比較

        4.2.2 求解穩(wěn)定性比較

        梳理相關(guān)文獻(xiàn),陳久梅等[3]的研究中展示了多次運(yùn)行結(jié)果的最好解、最差解、平均值、標(biāo)準(zhǔn)方差等具體數(shù)據(jù),結(jié)果新鮮、全面且優(yōu)質(zhì),故將本文結(jié)果與之進(jìn)行求解穩(wěn)定性的比較。陳久梅等[3]采用IPSO,運(yùn)行10次,迭代次數(shù)1 000次。對比結(jié)果顯示,在有限但不相同的運(yùn)行、迭代次數(shù)內(nèi),IVNS算法能夠用更少的運(yùn)行次數(shù)和迭代次數(shù)獲得質(zhì)量和穩(wěn)定性更高的結(jié)果,獲得的最好解、最差解、平均解和標(biāo)準(zhǔn)方差均優(yōu)于IPSO算法。平均解最大差距是272.944 4,減少百分比最大為17.83%,標(biāo)準(zhǔn)方差最大差距是38.71(如表8)。此外,從兩個算法的不同算例的平均解和標(biāo)準(zhǔn)方差對比中可以看出(其中:AveS為平均解,StaD為標(biāo)準(zhǔn)方差),IVNS算法的平均解和標(biāo)準(zhǔn)方差始終低于IPSO算法,且IVNS算法的標(biāo)準(zhǔn)方差的波動幅度更小,說明所設(shè)計的IVNS算法的求解質(zhì)量和穩(wěn)定性更高(如圖19a和圖19b)。

        表8 與IPSO算法的求解穩(wěn)定性比較

        4.2.3 求解優(yōu)越性比較

        梳理現(xiàn)有相關(guān)文獻(xiàn),REED[9]、ABDULKADER[2]、KAABACHI[26]、陳久梅[3]等獲得了目前最優(yōu)解,將IVNS算法的求解結(jié)果與之對比分析發(fā)現(xiàn),IVNS算法更新了28個算例中的23個目前最優(yōu)解,優(yōu)化值最高達(dá)到175.126 3,縮小了其余5個結(jié)果與目前最優(yōu)解的差距,差距百分比僅在0.05%~8.98%之間,已經(jīng)趨近目前最優(yōu)解。進(jìn)一步對比28個最好解的平均值,其中HABC算法的結(jié)果平均值為1 038.62,為歷史最優(yōu),IVNS算法的結(jié)果平均值為980.225 6,相對于前者減少58.394 4,優(yōu)化百分比為5.62%(如表9)。此外,觀察不同算法的不同算例的歷史最優(yōu)解對比和IVNS算法相對于歷史最優(yōu)解的優(yōu)化程度(其中:O為最優(yōu)解),僅有vrpnc1-S2、vrpnc1-S3、vrpnc5-S2、vrpnc6-S3、vrpnc12-S3算例未實現(xiàn)優(yōu)化,其中vrpnc1-S3和vrpnc6-S3算例的未優(yōu)化程度較大,為-8.98%和-8.76%,而優(yōu)化算例中vrpnc13-S2的優(yōu)化程度最大,為13.68%,且所有算例整體的優(yōu)化程度為正,即整體上實現(xiàn)了優(yōu)化效果,說明IVNS算法的求解質(zhì)量更高(如圖20所示,其中HVANS和HABC算法的vrpnc14-S3算例缺失數(shù)據(jù)按照HAC算法結(jié)果填充)??梢姡鄬τ谝勋@得歷史較優(yōu)解的IPSO、ACS、HAC、HVANS、HABC等算法,IVNS算法具有優(yōu)越性。

        表9 與歷史最優(yōu)解的求解質(zhì)量比較

        續(xù)表9

        4.3 算法收斂性分析

        以vrpnc2-S2算例為基準(zhǔn),采用其5次運(yùn)行的迭代結(jié)果來展示所設(shè)計IVNS算法的收斂性(如圖21)。結(jié)果顯示,隨著迭代次數(shù)的增加,求解結(jié)果逐漸收斂,并且在求解該較大規(guī)模算例的情況下,算法并不會過早或過晚收斂,收斂性較好。

        5 結(jié)束語

        本文通過設(shè)計針對MCVRP的IVNS算法并展開算例分析,驗證了IVNS算法的有效性、優(yōu)越性和收斂性。首先,采用掃描法產(chǎn)生初始解使得結(jié)果質(zhì)量更優(yōu);運(yùn)用插入、交換、2-opt*算子設(shè)計Shaking過程,在Shaking過程之后進(jìn)行全局?jǐn)_動,設(shè)計子路徑內(nèi)和子路徑間搜索優(yōu)化機(jī)制以實現(xiàn)Local Search過程,以及運(yùn)用2-opt*、插入、交換算子設(shè)計子路徑間搜索優(yōu)化機(jī)制,均提高了IVNS算法的有效性。其次,IVNS算法具有優(yōu)越性,能夠更合理地規(guī)劃網(wǎng)絡(luò)結(jié)構(gòu)、更穩(wěn)定地獲得高質(zhì)量解,且更新了23個(28個算例)目前最優(yōu)解、縮小了其余5個結(jié)果與目前最優(yōu)解的差距。最后,IVNS算法的收斂性較好,不會過早、過晚收斂。由于篇幅限制,本文未將所設(shè)計IVNS算法用于實際MCVRP案例研究中,未來的研究應(yīng)針對實際的MCVRP進(jìn)行深入探討,為實際應(yīng)用提供科學(xué)指導(dǎo)。

        猜你喜歡
        優(yōu)化設(shè)計
        超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
        民用建筑防煙排煙設(shè)計優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        何為設(shè)計的守護(hù)之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        瞞天過?!律O(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        国产精品久久中文字幕第一页| 777国产偷窥盗摄精品品在线| 精品日韩欧美一区二区在线播放| 欧美在线日韩| 亚洲一区二区三区一站| 午夜国产视频一区二区三区| 中文人妻熟妇乱又伦精品| 在线中文字幕有码中文| 淫欲一区二区中文字幕| 日本一区二区视频高清| 男女高潮免费观看无遮挡| 在线看亚洲十八禁网站| 日本精品人妻在线观看| 精品国产三级a在线观看不卡| 欧美日韩精品久久久免费观看| 日韩精品大片在线观看| 久久久婷婷综合亚洲av| 老熟女老女人国产老太| av无码人妻中文字幕| 国产精品高潮无码毛片| 亚洲综合中文一区二区| 亚洲最大成人网站| 朝鲜女子内射杂交bbw| 国产成人亚洲欧美三区综合| 亚洲精品国产综合久久| aa片在线观看视频在线播放| 熟妇人妻AV中文字幕老熟妇| 人妻一区二区三区免费看| 亚洲最近中文字幕在线| 日本亚洲系列中文字幕| 国产乱码卡二卡三卡老狼| 精品无码久久久久久久动漫| 日本久久精品在线播放| 国产黄污网站在线观看| 日本爽快片18禁免费看| 日产精品一区二区三区| 亚洲av乱码国产精品观| 国产成人精品午夜视频| 亚洲熟妇在线视频观看| 国产亚洲精品免费专线视频| 久久精品国产亚洲av香蕉|