第三章 研究方法
3.3 演算法設計
2.3 小節已針對基因演算法中各流程進行說明與圖解,在此列出以基因演算法求解 PDPTW 問題須特別考量之處,並逐一討論如下:
1. 評估函數(Fitness Function)
本研究之評估函數為計算總車輛之總旅行距離。若違反時間窗之限制,則以懲罰函 數(Penalty Function)之概念來表示。針對此類型違反時間窗限制之解,將其評估函數 值變大,使其在演化過程中淘汰,進而使最佳化結果滿足限制條件。
本研究求解PDPTW 問題,其時窗限制乃為軟時窗,針對太早或太晚滿足需求點皆 給予一定之懲罰成本。評估函數之目的在於最小化所有車輛之總旅行距離,以及造成客 戶不便(違反時窗限制時)懲罰成本。
2. 編碼原則(Coding)
本研究採用整數(Integer)編碼,其架構為一染色體代表一組解,即一染色體表示 多車之提送貨繞行路徑,一基因代表單一提(送)貨點。假若目前有N 台服務車輛,為 每一車輛都先預留M 個點之繞行路徑,故染色體之長度為N×M,如圖3.2 所示。
圖3.2 染色體長度示意 3. 產生起始解(Initial Population)
由於PDPTW 問題須滿足優先限制(Precedence Constraints)與聯結限制(Coupling Constraints),意即同一訂單的提貨任務須優先於送貨任務執行,且每筆訂單的提貨與送 貨任務均由同一輛車執行。故在取決起始解時,就需考慮以上前提限制。
(4) 重複以上步驟直至每車皆服務一組提送貨點,則每台車之機率皆恢復至 N
1 ,
此循環過程會結束於每一對提送貨點都分派至其服務車輛。
(5) 當每一對提送貨點都分派至其服務車輛,即產生一組起始解,重複上述步驟,
因P 值為介於 0 到 1 之隨機亂數,故可產生多組起始解。
舉一簡例而言,現今有四對提送貨點以及三輛台服務車輛 A、B、C。當第一對提 送貨點進行分派時,三車之服務機率皆為
3
1。假若其隨機亂數為 0.2,則第一對提送貨
點交由A 車進行服務,如圖 3.4 所示。
圖3.4 起始解簡例(a)
此時,A 車之服務機率降為 0,B、C 兩車之服務機率提高為 2
1。假若其隨機亂數
為0.7,則第二對提送貨點交由 C 車進行服務,如圖 3.5 所示。
R= 0.7
圖3.5 起始解簡例(b)
此時,C 車之服務機率降為 0,B 車之服務機率提高為 1,如圖 3.6 所示。
圖3.6 起始解簡例(c)
因三輛車皆服務過一對提送貨點,故三車之服務機率恢復至 3
1以重新接受分派。假
若其隨機亂數為0.1,則第四對提送貨點交由 A 車進行服務,如圖 3.7 所示。
3
化簡為最簡整數比,進而採用輪盤法(Roulette Wheel Selection)選擇欲進行 交配之兩條染色體Parent1 和 Parent2。 值成為一條新染色體Child1。同理,Parent2 保留交配點前段之基因值,配上 Parent1 交配點後段之基因值成為一條新染色體 Child2。(3) 承上,又可將其交配點分成以下兩種情況來討論,如圖3.8 中所示。交配點落 在區塊內之虛線,亦或是區塊與區塊之實線。在本研究中,一輛車代表一區 塊;實線代表車輛與車輛間之間格;虛線代表單輛車中載運需求點之間格。
A. 若交配點落在區塊內之虛線,如圖 3.8 所示:
圖3.8 交配示意(a)
a. 檢視其區塊內,交配點後若出現與交配點前重複之基因,將後方重 複之基因刪除。以圖3.9 為例,子代染色體 2 之交配區塊車 A 中,
其交配點後出現與交配點前重複之基因 2P,將交配點後方 2P 之刪 除。
圖3.9 交配示意(b)
b. 再行檢視其區塊內,交配點前是否皆含成對之提送貨點。若有落單
之提點,在優先限制(Precedence Constraints)與聯結限制(Coupling Constraints)之前提下,找出於其提點後且在同車範圍內,符合容量 限制且為最佳評估函數值之所在,加上該落單提點之對應送點。若 有不只一落單提點,則依序補上其對應之送點。以圖3.10 為例,子 代染色體1 之交配區塊車 A 中,檢驗交配點前是否皆含成對提送貨 點,發現落單提點1 P,故在提點 1 P 之後且在車 A 範圍內,找出最 佳位置安插相對應送點1D。
圖3.10 交配示意(c)
c. 子代染色體中,在交配點後若出現與交配點前重複之基因,將後方 重複之基因刪除。以圖3.11 為例,子代染色體 1 在交配點後方出現 與交配點前重複之提送貨點1P、1D、3P 以及 3D,將其刪除。
圖3.11 交配示意(d)
d. 檢視交配點後,是否皆含成對之提送貨點。若有落單之送點,在優 先限制(Precedence Constraints)與聯結限制(Coupling Constraints)
之前提下,找出於其送點前且在同車範圍內,符合容量限制且為最 佳評估函數值之所在,加上該落單送點之對應提點。若尋無適當地
點,則將此送點於該車刪除,重新檢視所有車輛,將其對應提點插 入符合容量限制且為最佳評估函數值之所在。再者,因優先限制與 聯結限制之前提下,找出於其提點後且在同車範圍內,符合容量限 制且為最佳評估函數值之所在,加上該提點之對應送點。若有不只 一落單送點,則依序補上其對應之提點。以圖3.12 為例,檢驗子代 染色體1 之交配點後是否皆含成對提送貨點,發現落單送點 2D,故 在送點2D 之前且在車 A 範圍內,找出最佳位置安插相對應提點 2P。
圖3.12 交配示意(e)
e. 再行檢視子代染色體其基因值是否出現所有提送貨點,若有缺漏未 服務之成對提送貨點,先將其提點在所有車中找出符合容量限制且 為最佳評估函數值之所在,加上該提點;再將其送點依優先限制
(Precedence Constraints)與聯結限制(Coupling Constraints)之前 提下,找出於其提點後且在同車範圍內,符合容量限制且為最佳評 估函數值之所在,加上該送點。以圖 3.12 為例,檢驗子代染色體 1 是否出現所有提送,發現缺漏未服務之成對提送貨點 4P 及 4D。在 車A 及車 B 中找尋最佳位置安插提點 4P,並在 4P 之後且在同車範 圍內,安置相對應送點4D。
圖3.13 交配示意(f)
(Precedence Constraints)與聯結限制(Coupling Constraints)之前 提下,找出於其提點後且在同車範圍內,符合容量限制且為最佳評
7. 終止條件(Termination)
本研究之終止條件為評估函數值在演化過程中皆無法有效改進。判斷無法有效改進 的條件為此世代最佳評估函數值與當前最佳評估函數值(Incumbent Solution)兩者之 差,對於當前最佳評估函數值之改善幅度若連續100 世代皆小於 0.01,即將目前世代輸
出產生結果並終止演算,否則繼續進行交配、突變與適合度計算等程序。