• 沒有找到結果。

第三章 模式建立

3.6 求解 VRPPC 可行解

( )

( 5

. 0 (3.21)

1 1





 − ≤ ∀∈

=

∑ ∑

+

otherwise

I i s

s if

t

i t i i

t i t

t

 

Σ|sit)|為顧客點之涵蓋誤差總值,表示所有顧客並非涵蓋一次之指標。為滿足次梯

度法逐步修正步幅機制,本研究針對修正之次梯度法檢驗上述指標,若第 t 次顧客點涵 蓋誤差總值小於等於前一次之誤差總值,表示 αt值之步幅適合,因此希望步幅縮短讓顧 客點之涵蓋誤差總值更小,通常之方式是將原有步幅減半。而不使用|| sit)||2之原因為 平方值過大,容易造成偏誤。

但隨著解題空間之路線增加, cr(λ)<0 之路線數量也隨之上升,使得顧客點的涵蓋 次數過多而造成調整拉氏乘數步幅過於劇烈。Caprara et al. (1999)針對此問題做出以下 修正:

1. 將 cr(λ)<0 之路線依照 cr(λ)值由大到小排序形成子集合 R’。

2. 計算 cr(λ)<0 之路線所包含的顧客點種類:I(R’)。

3. 依序檢視 R’內之路線,若該路線不會改變 I(R’),則將該路線刪除。

4. 最後剩餘子集合 R’取代 R 並套入式(28),重新計算顧客點涵蓋次數。

經過上述修正,可大幅減少 cr(λ)<0 之路線數量,並找出主要影響拉氏乘數方向之 路線。而不從 cr(λ)值最負的路線開始檢驗,是避免陷入區域搜尋。

起始拉氏乘數0i 以顧客點離場站之距離,如此設定較為簡單化。調整拉氏乘數需經 過 T 次疊代,將疊代完成後之拉氏乘數,再進行 VRPPC 可行解求解。而其中 T 為有限 個數,因為 αt值經過持續疊代後,步幅逐漸縮短至無法改善。在調整拉氏乘數過程當中,

因為一次遞迴所增加路線不多,拉氏乘數經過疊代不需花費過多次數便可趨於穩定。正 因為部分解題之關係,本研究調整拉氏乘數目的在於給予下次增加路線集合的機制,以 及尋找適合之路線,因此關心於拉氏乘數方向變動,而不太致力於求解拉氏乘數最適化。

3.6 求解 VRPPC 可行解

因選擇放鬆涵蓋限制式進行求解,在以部份路線解題空間限制之下,有可能產生某 些顧客點未被涵蓋於路線解集合中,所幸有委外運輸可供選擇,可將未涵蓋點交由委外 運輸滿足,不會有不可行解產生。但面對目標最小成本,理想為將拉氏放鬆重覆涵蓋解 修正為涵蓋每個顧客各只有一次的集合分割解(SPP)。修正程序的設計上必須注意,一 方面希望使目標總成本在增加最少的情況下完成,卻又不宜太過複雜,以免大幅增加運 算的負荷。

修正程序分成兩個步驟,首先處理自有車隊可行解,將自有車隊路線集合中移除重 覆涵蓋需求點;接著判斷顧客點是否交由委外運輸,使所有需求點在整個解集合中至多 只被涵蓋一次。最終產生的集合分割解必為一可行解。

3.6.1 自有車隊路線之啟發式解法

Caprara et al. (1999) 以拉氏鬆弛模式求解鐵路排班之 SCP 問題,發展出貪婪啟發式 解法 (Greedy Heuristic),獲得不錯之成果。本研究認為可將該作法對於 VRPPC 轉換為 SCP 之模式進行求解。Umetani et al. (2007)也認為在目前處理 SCP 中,該啟發式解法屬 於有效率,並且求解品質不錯之演算法,故本研究參考並修正其解法,以求解自有車隊 之集合分割解。

啟發式解法主要利用拉氏乘數給予路線之分數權重,選取最佳分數之路線,再將分 數重算以選取其他路線,直到滿足停止條件為止。這方式對於排班等 SCP 問題頗具成 效,但 VRP 之顧客點有地理上之相對位置,先選取之路線會影響之後路線選取。本研 究利用角度掃描(Sweep)之觀念,希望以較為平均的方式,將車輛路線分配至顧客所在 區域,解決顧客並非均勻分布問題。

本研究考量角度之參數與示意圖如下:

ψi :顧客點 i 相對於場站座標的角度。

f(u):角度與累積顧客點數之對應函數,先將ψi由小到大排序,f(u)可從 0 到 u 角度 中,得到所累積顧客點數目,示意圖為圖 1。f -1為其反函數,得知數目帶入 函數得對應之角度。

φk :第 k 輛車期望的質心角度

θk :第 k 輛車所服務之路線,其顧客點相對於場站座標的質心角度,假設顧客質 量皆為 1

圖 3.3 選取路線角度示意圖

圖 3.3 橫坐標為徑度,超過 2π 表示已繞過場站一圈,f(u)表示將角度帶入,可得知 有多少顧客點小於該角度。先挑選 cr(λ)最負之路線作為起始路線,以決定質心角度 θ1。 對應之累積顧客點數表示已處理這些顧客點。之後將剩餘顧客點平均分配給剩餘車輛,

因此將顧客點總數 n 扣除已處理顧客點 f(θ1),在除上分配數目,所得為下一輛車預期可 以處理顧客點之數目。將該數目加上 f(θ1),以 f-1反推回所對應的角度,即為下一條路 線預期的質心角度 φ2。利用ψi與 φ2作比較,若ψi離 φ2越遠,則其顧客點所對應之拉 氏乘數則越小,藉此可獲得位於該區域之路線。但選定之路線其質心角度與當時期望可 能不同,因此需要重算質心角度 θ2,再依據上述方式選定剩餘路線。

因此本研究修訂 Caprara et al. (1999)之啟發式解法,加入角度之考量,以求解 VRPPC 可行解,整體之求解步驟如下:

S:選定自有車隊路線集合

I*:未被選定之顧客點集合,不包含委外運輸之顧客點 0

250

0 3.14159 6.28318

m f n (1)

θ φ π

2π 2πθ

)

f(u)

ρr:結合未被選定顧客點之拉氏成本

3.6.2 處理顧客點委外運輸

顧客點經由委外運輸服務成本通常大於交由自有車隊運送,以下提出委外運輸交換 法,考量委外運輸顧客點能否在車容量滿足的條件之下,嘗試交由自有車隊運送;或是 自有車隊運送顧客點,是否可交由委外運輸服務,以降低成本。

[step 1]暫不考慮車容量限制之下,將委外運輸顧客點根據相鄰之自有車隊路線,依 照插入自有車隊所得之改善成本,由大到小排序。

[step 2]針對委外運輸顧客點,插入自有車隊之改善成本最大之位置,若滿足車容量 限制之下,則插入委外運輸顧客點,將委外運輸顧客點集合剃除成功插入之顧客點。

[step 3]若插入時車容量超過,計算該路線中,顧客點交由委外運輸所需增加之成本 由小到大排序。將該條路線顧客點依序交由委外運輸,直到欲插入之委外運輸顧客點在 滿足車容量限制為止。

[step 4]判斷步驟 3.是否改善成本,如果有則將委外運輸顧客點成功插入,將委外運 輸顧客點集合剃除成功插入之顧客點,並將該條路線之顧客點以另一集合(剔除之顧客 點集合)儲存之;若沒有則不做改變。

[step 5]重覆步驟 2.,直到委外運輸顧客點集合全部嘗試。

[step 6]將所剔除之顧客點集合,嘗試塞入自有車隊,依照委外運輸成本由大到小排 序,找尋可插入之路線適當位置,在滿足車容量限制之下,成功塞入後於顧客點集合剃 除之。

[step 7]將剔除之顧客點集合之顧客點加至委外運輸顧客點集合。新的可行解若與解 題空間中之路線相異,將相異路線加入解題空間中。

由於自有車隊啟發式解法未考慮委外運輸情況,因此需要此機制考量委外運輸情 況。本研究交換法類似 Greedy 之觀念,以較簡便之方式處理委外運輸情況。步驟 1.不 需考量全部自有車隊路線,以加快求解速度;步驟 4.並非單純交換法,而是有一對多之 觀念;步驟 6.為考慮自有車隊經過上述交換,車容量尚未滿載而再度處理。

如此原有的自有車隊可行解再度修正,最終所產生的集合分割解必為一可行解,並 以此解作為此問題的上限值(UB),此值為一有效的上限值。假設比目前最佳 SPP 解之 總路線成本低則取代為新上限值,並紀錄該次選取之路線組合作為目前遞迴最佳解。

相關文件