• 沒有找到結果。

第三章 演算法設計

3.2 基因演算法設計

3.2.1 編碼

本研究採用整數編碼,一基因代表一顧客點,一條染色體代表一組解。基因 值直接為顧客點編號,基因位置可表達車輛服務順序,而數字 0 代表場站。舉例 來說,現有 10 個顧客點,編號分別為 1 到 10。下圖 3.5 為車輛路線示意圖,而 此路線若以本研究編碼表示,則如圖 3.6 所示,此代表一條染色體也就是一組解,

其意義為第一輛車輛由場站出發,依序服務顧客 1、顧客 10、顧客 9、顧客 8,

然後回到場站;同理可得第二輛車及第三輛車服務之顧客點及其順序。

圖 3.5 車輛路線示意圖

圖 3.6 染色體示意圖 3.2.2 適合度值

本研究直接以旅行距離做為適合度值。一條染色體之適合度值即為其總旅行 距離。所以適合度值越小越好。以上圖 3.6 染色體為例,此染色體的適合度值為 所有路線節線距離之總和。

3.2.3 選擇

使用錦標賽法。隨機選擇二條染色體,從中挑選適合度值較好之一條染色體 進行交配。

0 1 10 9 8 0 5 6 7 0 4 3 2 0

3.2.4 交配

2. Single parent crossover,此交配法是 Shuguang, Weilai & Huiming[35]所提出;

它有別於典型的 GA 交配,它並不需要兩條父代來進行交配,此交配法只需 點:過早收斂。而 Single parent crossover 可增加解的多樣性,進行較廣度的搜尋,

可以彌補順序交配法易過早收斂之缺點;但 Single parent crossover收斂速度較 慢,相對需要花費較長之運算時間,所以本研究設計配合順序交配法兩者隨機選 擇,彌補相互之缺點,增加演算法之效用。

所以本研究選擇使用以上兩種交配法,設計兩種交配法配合隨機概念交錯使 用,以下分別就兩種交配法介紹其步驟:

1. 順序交配法(Order crossover)

步驟 1:經由選擇得到欲進行交配之父代一與父代二,如圖 3.8。於父代一中隨

步驟 2:將父代二中未出現於子代之基因依序插入子代,每插入一點即檢查一次

2. Single parent crossover

步驟 1:經由選擇得到一父代。舉一簡例如圖 3.11。

父代 0 1 10 9 8 0 5 6 7 0 4 3 2 0 車輛一 車輛二 車輛三

圖 3.11 Single parent crossover 示意圖(1)

步驟 2:此父代中每一輛車之行駛路線有機率 P %直接遺傳至子代。如圖 3.12 圖 3.12 Single parent crossover 示意圖(2)

步驟 3:對未遺傳至子代之顧客點尋找最適合之位置插入路線。對所有顧客點檢

車輛二 0 5 6 7 0 進行插入

子代 0 1 10 9 8 0 4 3 2 0 0 圖 3.13 Single parent crossover 示意圖(3)

3.2.5 尋找新的搜尋區域之機制

真正跳離區域最佳解。

設計機制為每經過一百世代就放寬車容量限制之 1.2 倍後繼續演化三十個 世代,再重新回到原來的車容量限制。

3.2.6 路線改善

對於交配後得到之子代,在不違反限制式的條件下對每一條車輛路線進行 2-opt,透過路線內交換,對所得子代進行路線改善。

2-opt 基本的概念為將同一路線內不相鄰的兩條節線( j, j+1)與( k, k + 1)斷 開,然後連接( j, k)與( j + 1, k + 1)兩節線,將有可能改善其解。如圖 3.15 所示。

圖 3.15 2-opt 之概念示意圖

3.2.7 終止條件

本研究之終止條件為適合度值在演化過程中皆無法有效改進。判斷無法有效 改進之條件為此世代最佳適合度值與當前最佳適合度值兩者之差,若當前最佳適 合度值之改善幅度連續 200 世代皆小於 0.01,即將當前最佳適合度值輸出為結果 並終止演算。

第四章 VRPSPD 標竿題庫測詴 4.1 標竿題庫說明

本研究為了解演算法之效用,針對 VRPSPD 標竿題庫 Salhi & Nagy[8]的 14 題題庫以及 Dethloff [2]的 40 題題庫進行測詴。

Salhi & Nagy[8]的 14 題題庫是由 Christofides et al. (1979)的標竿例題延伸,

此題庫的顧客點數量範圍是從 50 到 199 個,總共 14 題範例,分為 X 題型與 Y 顧客點產生方式與 SCA 題型相同,另一半的顧客點是在[100/3,200/3]區間中採均 勻分配中隨機產生,這樣的產生方式使顧客點較為集中,所以 CON 題型代表的

(3) Single parent crossover 遺傳至子代機率

(4) 選擇 Single parent crossover 或 Order crossover 之機率比 進行參數校估。

本節以 Dethloff 題庫 SCA 題型 20 題範例,針對上述四項項目分別進行測詴。

測詴數據如以下:

(1) 初始族群數量:15、30、50、100、300 (2) 突變率:0.1%、0.5%、1%、2%、5%

(3) Single parent crossover 遺傳至子代機率:30%、50%、80%

(4) 選擇 single parent crossover 或 order crossover 之機率比:0.3/0.7、0.4/0.6、

0.5/0.5、0.6/0.4、0.7/0.3。

而在進行參數校估時,除了當前進行校估之參數,其餘參數本研究依據表 4.1 進行其餘各項參數之設定,初始族群數量之設定是參照 Alvarenga[44]研究之 設定;突變率設定是參照 Baker[15]研究之設定;而 Single parent crossover 中遺 傳至子代機率 P 則是參照提出此種交配法之文獻[16]原本設定。

表 4.1 範例測詴參數設定表

初始族群數量 30

突變率 S 1%

Single parent crossover

遺傳至子代機率 P 50%

初始族群數量部份測詴數據為 15、30、50、100 及 300,本研究針對 Dethloff 題庫 SCA 題型 20 題範例進行測詴,每題範例執行十次演算法,並從中取最

表 4.2 初始族群數量變動趨勢表

圖 4.1 初始族群變動趨勢圖 (2) 突變率

突變率部份測詴數據為 0.1%、0.5%、1%、2%及 5%,本研究針對 Dethloff 題庫 SCA 題型 20 題範例進行測詴,每題範例執行十次演算法,並從中取最 佳值進行比較分析,並計算 SCA3 題型 10 題之帄均值與 SCA8 題型 10 題帄 均值,由這兩個帄均值繪圖觀察其變動趨勢,如圖 4.3。

由表 4.3 和圖 4.3 可觀察到,當突變率為 1%時的最佳解帄均成本最低,突 變率過大或過小皆會造成最佳解路線成本之上升。若突變率過高,突變發生 次數過高,演化過程不容易在同一區域進行深度搜尋;然而若突變率過低,

突變次數過低,就無法進行有效的廣度搜尋。

表 4.3 突變率變動趨勢表

圖 4.2 突變率變動趨勢圖 (3) Single parent crossover 遺傳至子代機率

Single parent crossover 遺傳至子代機率部份測詴數據為 30%、50%及 80%,本研究針對 Dethloff 題庫 SCA 題型 20 題範例進行測詴,每題範例執 行十次演算法,並從中取最佳值進行比較分析,並計算 SCA3 題型 10 題之帄 均值與 SCA8 題型 10 題帄均值,由這兩個帄均值繪圖觀察其變動趨勢,如圖 4.4。

由表 4.4 和圖 4.4 可觀察到,Single parent crossover 遺傳至子代機率為 50%

時,最佳解帄均成本最低,此機率上升或下降皆會造成最佳解成本之增加。

Single parent crossover 遺傳至子代機率為每輛車直接遺傳至子代之機率,若 是過高,子代與父代之相同性也過高,解無法進行有效之改善;而此機率若 是過低,子代與父代之相異性過高,無法在同一區域進行深度搜尋。

表 4.4 Single parent crossover 遺傳至子代機率變動趨勢表

題號

Single parent crossover 遺傳至子代機率

30% 50% 80%

圖 4.3 Single parent crossover 遺傳至子代機率變動趨勢圖 (4) 選擇 Single parent crossover 或 Order crossover 之機率比

選擇 Single parent crossover 或 Order crossover 之機率比部份測詴數據為 0.3/0.7、0.4/0.6、0.5/0.5、0.6/0.4 及 0.7/0.3,本研究針對 Dethloff 題庫 SCA 題型 20 題範例進行測詴,每題範例執行十次演算法,並從中取最佳值進行比 較分析,並計算 SCA3 題型 10 題之帄均值與 SCA8 題型 10 題帄均值,由這 兩個帄均值繪圖觀察其變動趨勢,如圖 4.5。

由表 4.5 和圖 4.5 可觀察到,選擇 Single parent crossover 或 Order crossover 之機率比為 0.5/0.5,最佳解帄均成本最低。若過大機率選擇 Order crossover,

易使得演化提早收斂,屈就於區域最佳解;相反的,若過大機率選擇 Single parent crossover,會使得演化之收斂速度變慢,花費較長之運算時間,降低演 算法效用。實測顯示兩種交配機制可彌補互相之缺點,增加演算法效用,選 擇比例應不相上下。

表 4.5 選擇 Single parent crossover 或 Order crossover 之機率比變動趨勢表

題號

選擇 Single parent crossover 或 Order crossover 之機率比 0.3/0.7 0.4/0.6 0.5/0.5 0.6/0.4 0.7/0.3

圖 4.4 選擇 Single parent crossover 或 Order crossover 之機率比變動趨勢圖

經過以上參數校估得到最適參數組合為:初始族群數量之選擇為 30;突變 率設定為 1%;Single parent crossover 中遺傳至子代機率 P 設定為 50%;選擇 Single parent crossover 或 Order crossover 之機率比為 0.5/0.5;而停止條件為連續 200 世 代改善幅度皆小於 0.01。本研究依此參數組合進行各項參數之設定進行後續測 詴。

4.3 測詴結果比較分析

本研究演算法中為增進演算法效用,提出了兩個有別於典型基因演算法之設 計:

1. 交配機制:結合兩種不同之交配法配合隨機機率交錯使用。

2. 尋找新的搜尋區域:放寬車容量限制之機制。

本節為測詴這兩種設計改善演算法效用之效果;針對 Dethloff 題庫 SCA 題型 20 題範例進行兩種設計交錯配合使用之測詴:比較本研究提出之交配法、順序 交配法(Order crossover)、Single parent crossover 分別之效用,以及本研究提出之

表 4.6 三種 CX 測詴結果比較分析表

題號 Order CX Single parent CX 50% Order CX +

50% Single parent CX SCA3-0 690.45 697.15 659.44 改善 Order crossover 之帄均幅度為 6.23 %,改善 Single parent crossover 之帄均幅 度為 6.47%,百分比皆在 5 %以上,證實此設計確實可有效改善演算法效用。

表 4.7 放寬車容量限制測詴比較分析表(一)

題號

Order CX +

放寬車容量限制

Single parent CX +

放寬車容量限制

50% Order CX +

50% Single parent CX +

表 4.8 放寬車容量限制測詴比較分析表(二)

題號 Single parent CX

Single parent CX +

表 4.9 放寬車容量限制測詴比較分析表(三)

題號 50% Order CX +

50% Single parent CX

50% Order CX +

50% Single parent CX +

量限制之後,帄均運算時間增加 0.5 秒,帄均改善幅度為 1.74%。由以上數據可 題庫,將與 Salhi & Nagy[7]及 Zachariadis et al.[9]中求得之結果進行比較,而 Dethloff 題庫將與 Dethloff[2] 及 Zachariadis et al.[11]中求得之結果進行比較,其 中,Zachariadis et al.[11]為目前文獻中已知最佳解。其結果分別如下。

表 4.10 Salhi & Nagy 題庫結果比較

表 4.11 Dethloff 題庫 SCA 題型結果比較

表 4.12 Dethloff 題庫 CON 題型結果比較

第五章 結論與建議 5.1 結論

(1) 本研究以基因演算法求解 VRPSPD,對 Salhi & Nagy 題庫以及 Dethloff 題庫 進行求解,最佳結果與文獻中已知最佳解相比,54 題標竿範例之帄均誤差 為 3.50 %,其中 48 題誤差在 5 %以內。

(2) 本研究基因演算法之設計使用許多隨機概念,以機率做為演算法則的依據,

進行廣度搜尋,可求得較佳之路徑。

(3) 本研究之交配機制設計,經過測詴,確實可改善兩種傳統交配法之缺點,得 到較好的路徑組合。

(4) 本研究之尋找新的搜尋區域之機制,經過實際範例測詴,確實可在演化中跳 離區域最佳解,進行廣度搜尋。

5.2 建議

(1) 本研究經過實際範例測詴,發現本研究之交配機制在顧客點數量較大的題目 上(大於 100),求解時間較一般演算法來得長,未來研究可嘗詴在交配設計 上做不同更改以降低求解時間。

(2) 本研究在求解顧客點數量大於 100 之例題之績效較為不佳,建議可針對大範

(2) 本研究在求解顧客點數量大於 100 之例題之績效較為不佳,建議可針對大範

相關文件