劉志碩,劉若思,陳哲
(北京交通大學 交通運輸學院,北京 100044)
隨著居民生活水平的提高,人們對瓜果蔬菜、禽蛋肉奶等生鮮產(chǎn)品的需求與日俱增。然而,冷鏈物流對環(huán)境和能源會產(chǎn)生更大的負面影響[1]。由于裝載貨物的特殊性,在運送途中必須提供低溫環(huán)境以維持貨品的質量,這無疑會消耗更多的能源和排放更多尾氣。有數(shù)據(jù)顯示,冷藏燃油車行駛過程中排放的尾氣大約是普通燃油貨車的1.3 倍。由此可見,隨著冷鏈物流市場規(guī)模的不斷擴大,其導致的環(huán)境污染和能源消耗問題也會愈演愈烈。
交通是溫室氣體排放的主要領域之一,隨著我國私家車保有量的不斷提升,大力發(fā)展“零碳排放”的電動汽車是降低交通碳排放的有力手段。電動汽車與燃油車相比,具有環(huán)境污染小的特點,將電動汽車應用于冷鏈物流領域承擔運輸和配送任務,對于緩解環(huán)境污染和降低化石能源消耗至關重要[2]。我國已經(jīng)有一些冷鏈物流企業(yè)開始嘗試采用電動冷藏車開展冷凍食品的末端配送。如何制定科學合理的配送方案來解決配送成本高、客戶服務水平低等難題對基于電動汽車的冷鏈物流配送業(yè)務來說顯得尤為重要。
本文將電動汽車的車輛路徑問題(Vehicle Routing Problem,VRP)與冷鏈物流加以結合,建立了數(shù)學模型,設計了一種混合蟻群(Hybrid Ant Colony Optimization,HACO)算法求解。
本文的主要工作為:1)場景創(chuàng)新,順應綠色物流的發(fā)展,著眼電動冷鏈車的路徑規(guī)劃問題,將電動汽車路徑優(yōu)化問題與冷鏈物流加以結合;2)模型創(chuàng)新,針對研究主體,建立了混合整數(shù)規(guī)劃模型,在目標函數(shù)中創(chuàng)新考慮了冷鏈電動汽車的制冷成本。設計混合蟻群算法進行求解并設計了適合社會充電站的轉移規(guī)則以及4 種局部優(yōu)化算子,通過實驗驗證了所提算法的性能。
1959 年Dantzig等[3]首次提出了車輛路徑問題(VRP),該問題是物流研究領域中一個具有十分重要理論和現(xiàn)實意義的問題。目前,國內外已對車輛路徑問題作了大量而深入的研究。求解性能較好的啟發(fā)式算法主要有模擬退火算法、遺傳算法、禁忌搜索(Tabu Search,TS)算法、粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法、大規(guī)模鄰域搜索算法等。
1996 年Dorigo等[4]提出了蟻群(Ant Colony Optimization,ACO)算法,蟻群算法是一種用來搜索優(yōu)化路線的幾率型算法。它的開發(fā)受到自然界中螞蟻智能行為的啟示,有關學者汲取螞蟻群體的多樣性和內部存在的正反饋機制,開創(chuàng)了具有搜索能力強、收斂速度快等特點的啟發(fā)式算法。蟻群算法在VRP 中得到了廣泛的應用。Reed等[5]在研究垃圾回收的車輛路徑問題中,提出使用蟻群算法來求解多隔艙的車輛路徑問題。Li等[6]設計了改進的蟻群算法來解決多車場、多目標的車輛路徑問題,提出了一種基于收益最大化,成本、時間和排放量最小化的多車場綠色車輛路徑問題,設計改進的蟻群算法對問題進行了有效求解。Guo等[7]設計了改進的混合蟻群算法,以最小化總里程為目標求解多車廂車輛路徑問題,并設計了基于加速搜索和先動策略的兩種變鄰域下降技術提高數(shù)據(jù)挖掘能力。Mutar等[8]提出一種改進的蟻群算法求解帶車輛能力約束的車輛路徑問題。
從冷鏈車輛路徑問題(Refrigerated Electric Vehicle Routing Problem,REVRP)來看,Osvald等[9]考慮到新鮮蔬菜易變質的特點,提出有時間窗和行程時間約束下的冷鏈車輛路徑問題,并設計了禁忌搜索算法求解。Amorim等[10]為解決葡萄牙食品分銷公司面臨的復雜的冷鏈車輛路徑問題,構建了多時間窗的異構車隊路徑規(guī)劃問題的模型,并使用自適應大鄰域搜索算法求解。Abdi等[11]考慮去送回收作業(yè)的生鮮產(chǎn)品VRP,以同時提貨和分貨提高供應鏈效率,以多產(chǎn)品多周期的形式實現(xiàn)總成本最小化和客戶服務最大化,提出了考慮環(huán)境因素和碳排放的車輛路徑問題并求解。Zulvia等[12]提出優(yōu)化運營成本、變質成本、碳排放和客戶滿意度的易腐產(chǎn)品車輛路徑問題,采用多目標梯度進化算法求解模型。Li等[13]建立綠色生鮮食品物流異質車隊車輛路徑問題模型,提出自適應模擬退火變異遺傳算法求解,同時降低了能源和燃料的消耗。
從電動汽車車輛路徑問題來看,Schneider等[14]針對時間窗約束下的電動汽車路徑問題,考慮了充電站的因素,構建了以總出行距離最短為優(yōu)化目標的數(shù)學模型,并提出一種將變鄰域搜索(Variable Neighborhood Search,VNS)算法與禁忌搜索啟發(fā)式算法相結合的混合啟發(fā)式算法。Goeke等[15]研究了傳統(tǒng)汽車和電動汽車的混合車隊下帶時間窗的路徑優(yōu)化問題。揭婉晨等[16]研究了帶有時間窗的電動汽車路徑問題,考慮多車型的問題設計,建立了混合整數(shù)規(guī)劃模型并以分支定價算法求解。Gatay等[17]研究了部分充電策略下的電動汽車路徑優(yōu)化問題。Zhang等[18]考慮電動汽車行駛途中需訪問充電站,以能耗最小為目標建立了數(shù)學模型,并提供了電動汽車能耗的綜合計算,提出基于蟻群算法的元啟發(fā)式算法進行求解。Macrina等[19]提出電動汽車和傳統(tǒng)內燃機汽車組成的混合車隊路線問題,考慮了電動汽車的充電時間窗口,設計一種迭代局部搜索啟發(fā)式算法解決問題。Keskin等[20]提出帶有軟時間窗的充電站排隊時間混合整數(shù)線性規(guī)劃模型,設計了結合自適應大鄰域搜索和混合整數(shù)線性規(guī)劃的數(shù)學方法進行求解。Karakati?[21]提出了一個兩層遺傳算法,求解帶時間窗的多車場車輛路徑問題,進一步縮小了理論與實際的差距。
從上述分析可以看出,對于冷鏈車輛路徑問題和電動汽車路徑問題都開展了許多研究。然而,盡管在冷鏈物流行業(yè)已經(jīng)有一些企業(yè)采用電動汽車配送冷凍食品等需要冷藏的商品,但尚沒有研究考慮將電動汽車應用于冷鏈物流配送優(yōu)化。究其原因,可能是電動汽車總體上來講仍是一個新事物,無論技術上還是應用上,還存在諸多不足或不便之處,在冷鏈物流行業(yè)應用還非常少,因而還沒有引起學者的足夠重視。本文將電動汽車與冷鏈物流配送相結合,考慮電動汽車能耗特點和社會充電站的充電需求,提出了基于電動汽車的冷鏈車輛路徑問題,建立了以配送總成本最小為優(yōu)化目標的數(shù)學模型,并設計了一種混合蟻群算法進行求解。
REVRP 可描述為:一個生鮮配送中心派出電動冷鏈車向V個超市配送同一溫區(qū)的生鮮商品。車輛從配送中心出發(fā)時完全處于滿電狀態(tài)。車輛的容量為C,續(xù)駛里程有限,中途可能需要充電,充電采用社會公共充電站,充電方式為快充,且一次充滿,已知配送區(qū)域里分布有F個充電站。在此問題中,假設車輛維持行駛狀態(tài)的電能消耗速度與行駛里程成正比,為h/km,車廂維持低溫環(huán)境所需的電能為l/h,要求制定最優(yōu)的配送方案以使得配送總成本最低。
基本假設:1)配送中心只有一個,所有車輛出發(fā)之前在配送中心充滿電,中途只能充電一次,且一次充滿;2)每輛車只允許配送一趟;3)各配送點的需求量已知,且不超過車輛的容量;4)每個配送點只由一輛車配送一次;5)配送貨物類型單一;6)配送車輛車型單一;7)配送中心和各配送點無時間窗要求;8)配送點和充電站的位置不變;9)配送車輛勻速行駛;10)充電速度恒定;11)為提供車輛動力所消耗的電能與運輸里程成正比;12)制冷所消耗的電能與制冷的時間成正比。
為便于模型的建立,設定相關的集合、參數(shù)和決策變量,如表1~2 所示。
表1 集合和參數(shù)設置Tab.1 Setting of sets and parameters
2.2.1 目標函數(shù)
REVRP 以配送總成本最小為目標函數(shù),由固定成本Z1和可變成本構成,其中可變成本包含運輸成本Z2和制冷成本Z3。
1)固定成本。
為完成配送任務,企業(yè)需要投入資金來維持整個配送流程的運行,包括車輛購置、支付員工工資、管理運營等。這些資金被分配到每輛配送車輛上,則固定成本如下:
2)運輸成本。
由于采用電動冷鏈車進行配送,維持車輛動力所消耗的電能構成配送過程中的運輸成本,其費用在車輛行駛時產(chǎn)生,用公式表示為:
3)制冷成本。
為保證商品的質量,需提供對應的低溫環(huán)境,在這種條件下,電動冷鏈車通過制冷裝備以消耗電能方式給車廂創(chuàng)造合適的溫度,會產(chǎn)生制冷的費用,其費用在行駛途中(不包括車輛完成配送任務回到配送中心的這段路途)、卸貨期間和充電期間產(chǎn)生,用公式表示為:
2.2.2 數(shù)學模型
根據(jù)以上定義,將目標函數(shù)與所有相關約束組合即構成了所研究問題的數(shù)學模型,如下所示:
其中:式(4)為目標函數(shù),表示總配送成本最??;式(5)表示車輛給配送點配送后必須離開該配送點;式(6)表示車輛走的是一個閉合回路;式(7)表示每個配送點只允許一輛車訪問一次;式(8)表示每輛車所訪問配送點的總需求量不超過車輛的最大容量;式(9)表示每輛車在配送過程中最多充一次電;式(10)表示如果車輛需要充電,在充電站的充電量;式(11)表示車輛從配送中心或充電站出發(fā)能訪問任意一個配送點并返回配送中心;式(12)表示車輛到達任意節(jié)點的裝載量為非負值,該節(jié)點的裝載量取決于在上一節(jié)點的裝載量和客戶的需求量;式(13)表示車輛在開始配送任務之前的裝載量不超過車輛的最大容量;式(14)表示車輛從配送點出發(fā)有足夠電量到達其他配送點或充電站;式(15)表示車輛訪問配送點后有足夠電量回到配送中心;式(16)表示車輛從配送中心或充電站出發(fā)有足夠電量到達配送點;式(17)表示車輛在充電站充完電后有足夠電量回到配送中心。
REVRP 的數(shù)學模型為線性規(guī)劃模型,屬于NP-hard 問題。當節(jié)點的規(guī)模比較小時,可以采用分支定界法、列生成法等精確方法求解;當節(jié)點的規(guī)模比較大時,解空間呈指數(shù)級增長,須采用近似方法、元啟發(fā)式方法求解。求解算法主要分為鄰域搜索、群體搜索兩大類[22]。鄰域搜索類有禁忌搜索算法、變鄰域搜索算法、自適應大規(guī)模鄰域搜索(Adaptive Large Neighborhood Search,ALNS)算法;群體搜索類有蟻群算法、粒子群優(yōu)化算法。本文將蟻群算法和局部鄰域搜索算法相結合,構造了一個混合蟻群算法求解REVRP。
蟻群算法[4]的基本流程如圖1 所示。
轉移規(guī)則是蟻群(ACO)算法的關鍵法則之一,它決定著螞蟻以何種方式選擇下一節(jié)點,是螞蟻在路徑構造過程中不可或缺的計算準則。在本文研究的問題中,考慮將信息素濃度、節(jié)約值、兩節(jié)點間的路徑距離及車輛的容量利用率作為衡量轉移概率的關鍵性指標,用公式表示如下:
其中:ξij表示節(jié)點j對節(jié)點i的吸引值;ηij表示節(jié)點i到節(jié)點j距離的倒數(shù);τij表示節(jié)點i與節(jié)點j之間的信息素濃度;μij表示節(jié)點i與節(jié)點j之間的節(jié)約值;πij表示車輛容量的利用情況,即從節(jié)點i訪問節(jié)點j后車輛的容量利用率;α、β、γ、δ為相關系數(shù)。
定義allowedk為備選節(jié)點j的集合,從節(jié)點i轉移至集合allowedk中節(jié)點j的概率為:
在確定轉移規(guī)則后,采用輪盤賭的方法從allowedk中選擇備選節(jié)點j,以此確定路徑的排列方案,最終得到可行的路徑規(guī)劃方案。
此外,為了提高搜索效率,縮小螞蟻轉移時的范圍,減少無用的轉移搜索,對allowedk里面的候選點數(shù)量進行限制,即Bell等[23]提出的小窗口策略。具體地,將allowedk里的候選點數(shù)量上限設置為客戶總量的1,n一般可取值2、3、4。
在REVRP里,節(jié)點分為三種類型,即配送中心、客戶、充電站。因此,螞蟻轉移時存在多種情形,不同類型的節(jié)點i可以選擇轉移的節(jié)點j的類型不盡相同。分別闡述如下:
1)當螞蟻位于配送中心。
將尚未配送并且同時滿足容量約束、電能約束的客戶,放入可行集合allowedk。
電能約束采用look ahead strategy[24],用于確保螞蟻去了節(jié)點j后,還有足夠的電量返回配送中心N+1,或者到達離j點最近的充電站f*。電能約束條件如下:
然后使用轉移規(guī)則,計算allowedk中各個節(jié)點的概率Pij,并按概率從中隨機選擇一個節(jié)點j。離開j點時的剩余電量為:
2)當螞蟻位于客戶。
根據(jù)容量約束、電能約束的不同情形,螞蟻可以選擇去下一個客戶、充電站或者配送中心。電能約束為:
①如果allowedk≠?,則按轉移規(guī)則轉移到下一個客戶j或者返回配送中心N+1。若選擇轉移至客戶j,則(tij+sj)×l-dij×h。若選擇返回配送中心,則返回配送中心N+1,由于車輛在返回配送中心途中,車廂中的貨物已全部配送完,不再需要制冷。如果還有客戶未配送,則將螞蟻k移至節(jié)點0,再模擬另一臺車輛,重新出發(fā)配送。
②如果若存在客戶j滿足容量約束,但不滿足電能約束,且≥×h+×l,則將螞蟻直接轉移到離i點最近的充電站f*,充電直至充滿。充電時長為:
③若上述兩種情形均不能滿足,則螞蟻只能返回配送中心。
3)當螞蟻位于充電站。
螞蟻可以選擇去下一個客戶或者配送中心。電能約束為:
如果沒有可行的客戶,則必須返回配送中心。否則按轉移規(guī)則轉移到下一個客戶j或者返回配送中心N+1,若選擇轉移至客戶j,則與第1)步一樣更新剩余電量。
算法1 HACS 算法的路徑構造過程。
蟻群算法的信息素更新策略分為局部更新策略和全局更新策略,本文僅采用全局更新策略[25-26],即在所有節(jié)點間設定初始信息素濃度,當螞蟻構造好一個完整的路徑后,需要對路徑中的信息素進行更新。具體地,采用全局更新策略[25],僅對每次迭代的若干個最好解以及迄今為止的最好解施放信息素。
此外,為了避免蟻群算法的停滯現(xiàn)象,提高算法的全局搜索能力,對路徑上的信息素濃度設置固定的范圍,即MIN-MAX 策略[26-27]。
局部優(yōu)化策略被廣泛證明能夠很好地改善蟻群算法的搜索性能。大部分用于局部優(yōu)化的鄰域算子源于λ-opt[28],特別是最常用的2-opt[29-30]。本文借鑒前人所設計的鄰域算子,針對REVRP 的特點,先將各個回路里的充電站去掉。在不考慮電量的條件下,執(zhí)行Balseiro等[31]提出的鄰域算子,分為單回路交換和多回路交換兩類算子。其中單回路交換算子包括Relocate(記為LS1)、Exchange(記為LS2)兩種算子;多回路交換算子包括Relocate(記為LS3)、Exchange(記為LS4)兩種算子。需要強調的是,在各個算子中,每次執(zhí)行操作后還需要判斷是否需要插入充電站,在滿足電量約束和時間窗約束的前提下以目標值大小確定充電站插入的最佳位置。充電站的插入采用Best Station Insertion 算法[32]。
用于測試算法性能的算例來源于文獻[14],該算例集由文獻[33]中的基準算例集改編而來。本文針對REVRP 的特點,對文獻[14]中的算例集進行改造,制作出滿足要求的算例集。實驗環(huán)境為Windows 10 操作系統(tǒng),CPU 為Intel Core i7-8550U,頻率為3.4 GHz,內存為16 GB,使用Dev-C++版本編程軟件。
所設計的算例集按節(jié)點數(shù)目分為大規(guī)模和小規(guī)模兩個子集。其中,節(jié)點規(guī)模小的算例有18個,包含5 個客戶、10個客戶、15 個客戶的算例有6 個。每種數(shù)量規(guī)模的算例按照節(jié)點的分布類型再分為C 類、R 類、RC 類三類,其中C 類表示節(jié)點的分布形態(tài)為集群式分布,R 類表示節(jié)點的分布形態(tài)為隨機分布,而RC 類則結合C 類分布和R 類分布的特征,每種類型的算例各4 個。節(jié)點規(guī)模大的算例有6個,每個算例包含100 個客戶節(jié)點、20 個充電站節(jié)點,節(jié)點的分布同樣有C類、R 類、RC 三類。每種類型的算例按照分布類型下算例節(jié)點坐標區(qū)分各2 個。每個算例的信息包括配送中心、客戶、充電站等節(jié)點坐標、客戶需求、車輛的額定載重量、額定電量、充電速率。電動汽車的性能參數(shù)以及ACO 算法的參數(shù),如表2~3 所示。
表2 決策變量設置Tab.2 Setting of decision variables
表2 電動汽車的性能參數(shù)Tab.2 Electric vehicle performance parameters
表3 ACO算法的參數(shù)Tab.3 ACO algorithm parameters
對小規(guī)模算例,分別采用CPLEX(WebSphere ILOG CPLEX)12.6.1 和ACO 算法求解。CPLEX 是一款用于線性規(guī)劃、混合整數(shù)規(guī)劃和二次規(guī)劃的高性能數(shù)學規(guī)劃求解器,它使用精確求解算法,在時間足夠的條件下,CPLEX 可以求解出數(shù)學模型的最優(yōu)解;但它的缺點是在大規(guī)模運算時,求解時間過長甚至無法計算。因此,本文將ACO 算法與CPLEX 計算出的最優(yōu)解進行對比,以驗證ACO 算法的可行性。實驗結果如表4 所示,其中:Z表示路徑方案的配送總成本;t表示各方法的程序運行時間。
表4 小規(guī)模算例實驗結果Tab.4 Experimental results of small-scale examples
小規(guī)模算例實驗結果表明,ACO 算法取得了和CPLEX相當?shù)木_解,能夠有效解決客戶節(jié)點數(shù)少的REVRP。在5客戶、10 客戶和15 客戶的算例中,由于客戶節(jié)點數(shù)少,使用ACO 算法可以找到精確解。從實驗結果中可以看到:CPLEX能夠在預先設置的7 200 s 內得到各個算例的最優(yōu)解,平均用時94.7 s;而ACO 算法能夠快速搜索到它們的最優(yōu)解,平均運算時間只需要0.36 s,可節(jié)省99.6%的運算時間,可見ACO 算法大幅度縮短了運算時間。
針對大規(guī)模算例,分別采用帶有4 種鄰域算子的混合蟻群算法進行求解。HACO-I 表示ACO+LS1 策略,HACO-II 表示ACO+LS2 策略,HACO-III 表示ACO+LS3 策略,HACO-IV表示ACO+LS4 策略,HACO-V 表示ACO+所有鄰域算子。每個算例各運行10次,分別記錄每次運行所找到的最佳路徑方案、目標值(best)以及發(fā)現(xiàn)最好解的時間t;并針對每個算例,計算出各個算法與ACO 之間的偏差(ΔZ),如表5 所示。
從表5 可以看出,5 種策略得到的目標值均優(yōu)于ACO 算法;除R201 算例外,其他算例的最好解總是由HACO-V 得到。運行時間方面,ACO 算法的平均用時21.7 s。ACO 與單獨鄰域算子組合的算法中,HACO-I 的用時最少,平均用時為71.5 s,是ACO 算法的3.3 倍;HACO-III 的平均用時為130.0 s,是ACO 算法的6 倍;HACO-V 綜合運用了4 種鄰域算子,因此用時最高,平均用時高達252.0 s,是ACO 算法的11.7 倍。這是因為4 種鄰域算子均是對ACO 算法產(chǎn)生的可行解進行改進,因此混合蟻群算法的平均運行時間要高于ACO 算法的程序平均運行時間。
為了解不同類算例的整體情況,在表5 結果的基礎上進行進一步計算,計算結果如圖2 所示。由圖2(a)可以看出,節(jié)點的分布形式影響了路徑方案的構成,C 類算例(集群式分布)的路徑方案中車輛單次配送能夠訪問更多的客戶,導致了C 類算例的平均目標值小于R 類和RC 類算例。由圖2(b)可以看出,C 類算例的程序運算速度也更快??梢?,節(jié)點的集群式分布可以降低成本和程序的運算時間。
表5 大規(guī)模算例實驗結果Tab.5 Experimental results of large-scale examples
圖3 中可以看出每組算例中兩個不同算例之間的目標值存在較大的差異,如C101 和C201、R101 和R201、RC101 和RC201,這是由于C201、R201、RC201 算例對應車型的電池容量分別比C101、R101、RC101 的高,車輛在一次配送任務中訪問的客戶節(jié)點較多,車輛裝載率較高,使用車輛數(shù)較少,其配送成本也隨之減小??梢婋姵厝萘繉ε渌统杀居绊戄^大,相同條件下電池容量越大,配送成本越小。
由表5 可知,5 種策略對ACO 算法都起到了一定的改進作用,求取每種策略下所有算例的目標值改進率的平均值,如圖4 所示。相較于蟻群算法得到的路徑方案,4 種鄰域算子都能在此基礎上對解進行改進,其中ACO 與單獨鄰域算子組合的策略中,HACO-III 對于所有算例的目標值平均改進率最大,為2.81%;HACO-IV 的目標值平均改進率最小,為0.99%;綜合運用了4 種鄰域算子的HACO-V 的性能最好,最好解的改進率達到4.45%。
綜合分析表5 和圖4 可知,在所有6 個算例中,有5 個算例的最好解來自HACO-V,僅R201 的最好解來自HACO-III,但HACO-III 的平均目標值為1 093.1元,不如HACO-V 的1 087.1 元;從平均值來看,HACO-V 求解所有算例的平均值均是最小的。
如圖5 所示,對于不同的節(jié)點分布形式,不同策略的改進效果不盡相同。HACO-I 和HACO-III 對R 類節(jié)點分布形式改進效果更明顯,其余均對RC 類改進效果更為明顯。可見節(jié)點分布形式也會影響算法的改進效果,算法對于隨機分布和隨機、集群混合式節(jié)點分布形式改進效果更好,對集群式節(jié)點分布改進效果稍差。
本文研究了基于電動汽車的冷鏈物流策略路徑問題。在此基礎上,構建了面向社會充電站的REVRP 的數(shù)學模型,設計了一種混合蟻群算法解決該問題,并制定了基準算例集。實驗結果表明,所設計的混合蟻群算法能夠有效求解小規(guī)模和大規(guī)模節(jié)點的REVRP。當節(jié)點數(shù)量比較少時,針對所有算例,蟻群算法均能找到與CPLEX 一樣的最好解;當節(jié)點規(guī)模較大時,蟻群算法與不同局部優(yōu)化算子組合后各自找到的最好解存在明顯差異,意味著在求解大規(guī)模節(jié)點的REVRP中,不同算子所帶來的算法性能有優(yōu)劣之分。其中,算子LS3 效果最佳,而算子LS4 效果最差,而將所有4 種算子同時使用時的性能最佳。