第三章 接駁公車路線設計方法與模式構建
3.4 路線設計演算法
本研究接駁公車路線設計模式應用啟發式演算法於求解所有可行候選路線解,經 求解所有可行候選路線後,應用基因演算法求解最適候選路線組合解,首先說明模式 之假設。
一、模式假設與限制
本研究建立之模式分為產生候選路線與產生候選路線組合兩部分,模式在求解時 相關假設與限制如下:
(一) 起始站牌假設與限制:本研究假設並限制各候選路線由同一站牌為路線出發點,
該站牌可以是場站、鄉公所等可做為發車地點場所,例如:期望以橫山火車站 為發車場所,即設立站牌並以該站牌做為起點,產生該起點所有可行候選路 線。
(二) 候選路線行駛時間限制:本研究於產生候選路線時會給予行駛時間限制,計算 方式以每小時行駛 30 公里(每 0.5 公里行駛 1 分鐘)為基準,並以預設站點最遠 之兩點行駛時間做為模式求解候選路線時之時間限制,例如:設計地區預設站 點中最遠距離 10 公里,將 10 公里除以 0.5 得出 20 分鐘行駛時間限制,若因
最遠之兩站牌點行駛時間仍無法抵達,表示該路線效率過低。
(三) 每車公里成本:求解時需要輸入每車公里成本以計算基因演算法中適應值,本 研究於實例應用採用概估中巴價格每車公里成本 35 元,因需求人數與道路寬 度考量,若使用一般大型巴士可參考臺北市聯運公車運價調整案(2011)每車公 里成本 53.23 元。
二、候選路線產生演算法
候選路線產生步驟,經基本資料建置完成並以其為輸入資料,求解候選路線,如 圖 17 所示,詳細說明將於此小節進行說明如下:
輸入資料 開始產生起始解路線
站牌組合路線 抓路線並排序站牌
判斷各路線行駛時間 限制與過站不停 是
否 保留可行路線解 刪除
判斷i值是否達停止條件 是
否
輸出所有可行路線
GAs 基本資料建置
圖 17 候選路線產生演算法流程圖
31
(一) 基本資料建置:本研究於研究假設中提及,假設模式中需求站點資料為已知,
並透過地理資訊系統求解下列模式所需輸入之基本資料,詳細步驟已於 3.1 節 說明,並建置成 txt 檔案以利讀取:
1. 各預設站點間距離矩陣資料。
2. 各預設站點步行 500 公尺門牌涵蓋數。
3. 各預設站點間之最短路徑過站矩陣。
4. 各預設站點之分數矩陣。
(二) 資料輸入:模式求解候選路線解與路線組合,由使用者輸入起始預設站點編號,
主要為控制路線皆由同一場站出發如模式假設中提及;每車公里成本為計算基 因演算法中的適應值,依使用車體不同輸入不同之成本值;路線行駛時間限制 主要為限制候選路線長度,避免站牌組合產生過長不可行路線解。
(三) 站牌組合路線:本研究產生候選路線以站牌組合路線,演算流程如圖 18 所示,
詳細說明如下:在進行首次站牌組合路線,抓取起始站牌編號,將未使用站牌 依序編號大小排序,執行次數由 i 控制如:i=2 時,組合兩個站牌成一條路線,
i=3 時,組合三個站牌成一條路線,以此類推,停止條件為預設站點總數-1;
在圖 18 流程中,假設共 8 個站牌並以編號 8 站牌為起始站牌,抓取起始站牌 8,將未使用站牌進行排序,起始 i=2 且僅有站牌 8,因此共產生 7 條候選路線,
如表 5 所示:
表 5 站牌組合 i=2 範例說明
候選路線 合理解
路線無過站不停 無超過行駛時間
8→1
8→2
8→3
8→4
8→5
8→6
8→7
透過邏輯判斷刪除不合理解,僅路線 8→1 與 8→7 同時滿足兩限制條件,
並以此兩條路線做為下一次站牌組合路線之起始解,以類似基因母代之概念,
然當 i 值未達停止條件預設站點總數-1 時,抓取所有可行解中第一條路線進行 連接路線,同樣將未使用站牌依序編號大小排序,開始組合站牌,第一條所有 可能路線產生完畢後抓取第二條,直至最後一條完成為止,共產生 12 條路線,
如表 6 所示:
表 6 站牌組合 i=3 範例說明
候選路線
合理解
候選路線
合理解 路 線 過
站不停
超 過 行 駛時間
路 線 過 站不停
超 過 行 駛時間
第一條 可行解 8→1
8→1→2
第二條 可行解 8→7
8→7→1
8→1→3 8→7→2
8→1→4 8→7→3
8→1→5 8→7→4
8→1→6 8→7→5
8→1→7 8→7→6
最後由下一步驟將不可行解如:超過行駛時間建置與過站不停解進行刪除,
7 條候選路線共留下 4 條,以此方式繼續迴圈達停止條件為止,流程說明示意 圖如圖 18。
33 起始站牌:8
抓取第一條 並排序:
8 1234567
所有可行解:
81 82
… 87
刪除不合 理解後剩下:
81 87
抓取前一次解:
81 87
抓取第k條 並排序:
81 234567 87 123456
...
所有可行解:
812 813
… 817 ...
871 872
… 判斷是否為最 876
後一條
判斷是否為最 後一條
i值是否達停 止條件 是
否
否
是 刪除不合理解
812 871 872 876 否
停止
圖 18 候選路線演算流程說明範例圖
(四) 保留可行路線:經上述流程演算後,每一次執行留下之合理解依序記錄下來,
最後輸出供基因演算法為輸入資料,並讀取候選路線數以做為設定基因值數 目。
(五) 判斷 i 值:判斷 i 值是否達到停止條件,i 由 2 開始,若未達停止條件預設站點 總數-1 繼續執行,直至 i=預設站點總數-1 為止。
(六) 輸出所有可行路線:經啟發式演算法求解出合理候選路線解,並同時輸出每一 條候選路線之分數、涵蓋家戶數、路線距離與適應值,輸出所有可行路線解於 模式視窗中以供使用者檢視各候選路線基本資料。
(七) GAs:經求解出所有合理之候選路線後,執行基因演算法求解最適路線解組合,
並依設定交配與突變方式演算,直至停止條件為止,詳細演算流程將說明如 后。
三、路線設計演算法
本研究於路線設計以多條候選路線進行組合,以求最佳路線組合,然進行路線組 合求解時,若候選路線數愈多,所有可能性愈多,例如:假設共有 N 條候選路線,
則所有解共有 種組合,所以求解資料量隨 N 大小遞增,且 求解時間費時,若共有 15 條候選路線,則會有 32767 種組合解,如下圖 19 所示,
因此本研究於邏輯驗證引用吳東怡(2013)新豐鄉案例產生之路線資料,作為驗證資料 進行驗證。
圖 19 路線組合解數示意圖
因此,本研究應用基因演算法(Genetic Algorithms,GA)求解候選路線組合,基因 演算法最早是由 John Holland 於 1960 年所提出,以「物競天擇」及「適者生存、不 適者淘汰」之定律,選擇優良基因、交配與突變之過程,藉由模擬自然界生態物種不 斷的競爭,由適合生存者所繁衍出更優良的下一世代演化過程,來達到求解問題的方 法。本小節將說明本研究於基因演算法時的編碼方式、適應值的計算方式、交配和突 變方式與演算流程,流程如圖 20 所示,詳細說明如下:
0 5000 10000 15000 20000 25000 30000 35000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
35 設定染色體 每條產生起始解數量基因值
GAs
產生起始解
隨機抓取一條染色體進行突變 交配
判斷是否交換 否
是
計算適應值
判斷是否達停止條件 否
是 停止
輸出最 適組合
解
隨機抓取兩條染色體進行交換,並比 較是否優於原染色體
判斷是否停止交換 執行所有染色體數量/2
的次數
突變
判斷是否突變 排序、選擇射飛鏢
否
是
否 是
圖 20 基因演算法流程圖
(一) 設定染色體:本研究參考林昇甫與徐永吉(2009)提及,母體大小關係著演算法 的全域搜尋能力,因此於染色體數目為 100,並採用 0-1 整數編碼,每一條染 色體基因值個數為候選路線總數,例如:假設產生 30 條候選路線,則每一條 染色體有 30 個基因值,每一基因值即代表一條候選路線,當基因值為 1,即
代表該候選路線解被選取,否則為 0。
(二) 產生起始解:起始解使用隨機產生,共產生 100 條的染色體做為母體。
(三) 計算適應值:應用地理資訊系統計算每一預設站點 500 公尺所涵蓋門牌數量並 扣除現有大眾運輸系統所服務之門牌數,該所涵蓋才確實為實際服務門牌數量,
並透過使用者輸入基本資料每車公里成本計算該路線組合營運成本,並且在計 算路線組合所服務之門牌數時,若已被某條路線所服務之預設站點其涵蓋門牌 數不重複計算,但重複計算該行駛距離,以此來降低演算過程不可行解存活機 率,計算式如式(1)所示。
服務門牌數 被既有路線服務門牌數
每車公里成本 路線總距離 其中,
該路線每單位成本所能服務門牌數。
該路線所能服務之門牌數。
該路線營運成本。
每一預設站點有各自的分數,同樣計算該路線組合總分時,已被某條路線 所服務之預設站點分數不重複計算,適應值計算如下式(2)所示:
適應值 分數 (四) 停止條件:在滿足成本限制下並依求解案例之可行解路線數量大小不同而使迭 代次數有所差異,如:在實例測試時橫山範例共有 35 條可行解路線,其停止 條件為迭代 1000 次。
(五) 排序、複製:於步驟三計算每條染色體適應值後,於此步驟計算累積適合度比 值,並依序排序由小至大,並依累積適合度比值同時排序路線組合、適應值、
OP 分數、家戶數與距離。本研究複製方式採用輪盤式複製策略,輪盤式複製 是透過適應值判斷各染色體的優劣,以決定染色體被保留至下一世代的機率大 小,適應值愈高之染色體被保留的機率愈大如圖 21 中 ,反之,適應值愈小 之染色體被淘汰的機率也較大如圖 21 中 ,示意圖如圖 21 所示,此外,本
37
研究因母體數量較大為確保每一代中最適的染色體能夠被保留下來,因此,皆 會於第一次複製時,強制複製排序後適應值最高之染色體。
圖 21 輪盤法示意圖
(六) 交配:透過交配讓染色體之間交互基因值,使新染色體有機會產生優於母代路 線組合有更高的適合度,使其不斷的演化,而其判斷是否進行交配,依照給定 的交配率,產生隨機值若達到交配門檻即進行交配,本研究交配率設定為 0.9 並採用雙點交配方式如圖 22 所示,隨機產生兩個交配點,兩交配點所包含之 範圍交換其中所有位置的基因值,如圖 22 所示,101 與 010 交配後變成 010 與 101,本研究採用 0-1 整數編碼亦是為了避免重複挑選路線與編碼和解碼繁 瑣過程。
1 1 1 1
1 0 0 0 0
0 0 0 1
1 1 0 1 0
1 0 0 1
1 0 0 1 0
0 1 1 1
1 1 0 0 0
圖 22 雙點交配示意圖
(七) 突變:基因演算法在求解過程中,為避免染色體在交配與複製過程中,發生過 早的收斂落入於局部最佳解,而使用突變方式,來跳脫局部最佳解以取得全域 最佳解。突變與交配同樣有突變率,本研究突變率設定為 0.3,經過排序過程 後選取排序為前十位之染色體進行突變,因排序第一位染色體為該世代最差解,