• 沒有找到結果。

應用平行螞蟻演算法求解捷運列車班表問題之研究

N/A
N/A
Protected

Academic year: 2022

Share "應用平行螞蟻演算法求解捷運列車班表問題之研究"

Copied!
91
0
0

加載中.... (立即查看全文)

全文

(1)
(2)
(3)
(4)
(5)

應用平行螞蟻演算法求解捷運列車班表問題之研究

學生:黃任由 指導教授:蘇昭銘博士

摘 要

捷運系統具有運量大、快速、便捷與安全的營運特性,使其在交通繁雜 的都會區中扮演著不可或缺的角色。在捷運系統之營運作業中,如何有效產 製一份符合列車運行規定與需求變化之班表,一直為營運機構所重視之課 題。列車班表的產製係指在既有的營運路線、軌道設施、廠站配置及控制系 統等環境下,運用既定車隊規模排定符合運量需求與相關安全規定之列車時 刻表,以做為設定列車自動控制(Automatic Train Control;ATC)及相關車輛、

人員排班作業之基礎,所以班表設計之良窳對於捷運系統行車安全與營運效 率之影響甚鉅。大眾捷運系統列車班表的產製複雜性,致使一般將班表的產 製區分為基礎(標準)班表產製及衝突調整兩階段,以往研究多著重於班表之 衝突調整,而基礎班表產製的品質亦會直接影響衝突調整之品質。鐵路排班 問題亦屬於NP-Hard 問題,求解時間會隨著問題規模愈大而成指數成長,若 以數學規劃方法處理大規模列車排班問題時,往往無法在可接受時間內獲得 近似最佳解。蟻群最佳化方法(Ant Colony Optimization, ACO)是模仿自然界螞 蟻覓食的現象所被提出之巨集啟發式演算法,近年來已被運用在各種組合最 佳化問題上,並且皆獲得不錯求解結果。本研究乃以蟻群最佳化方法為基礎,

並且利用蟻群最佳化方法易於平行處理之特性,結合平行處理技術,將捷運 系統運行路線與相關場站結合時間概念轉換成網路型態,並考量尖離峰列車 班次銜接、衝突調整以及不同機廠之收發車平衡等特性,構建一個整合基礎 班表產製及衝突調整兩個階段之班表產製演算法。本研究在平行處理的環境 下,以台北捷運淡水-新店線之資料進行測試,發現本研究所構建之平行蟻 群求解演算法,能縮短蟻群演算法之搜尋速度,並且有效改善捷運列車班表 產製效率,並且獲得品質良好之列車運行班表,將有助於捷運系統營運效率 的提升。

關鍵詞:蟻群最佳化方法、列車排班、大眾捷運系統、平行處理

(6)

誌 謝

仲夏的夜晚窗外微風徐徐,在桌燈的輝映下,筆記型電腦裡正上演著大 學與研究所生活的點點滴滴,我望著畫面出神,彷彿隨著照片的切換,回到 當時喜怒哀樂的情境中…,回首在中華大學的六年,有許多人事物值得我去 感謝與珍惜。

首先感謝我的家人,尤其是父母親在精神與經濟上的強力支持,讓我能 夠更專心致力在學業上,當我遇到困難挫折時,家裡總是會給我繼續努力的 力量,感激之情實非筆墨能以形容。

除了家人,我想指導教授蘇昭銘博士是我最想感謝的人吧!從大學時期 起承蒙指導教授耐心、悉心的指導,無論在課業或是生活上均給予最大的支 持,甚至在颱風天陪我們這些不孝研究生一起熬夜趕文章,其謙沖且嚴謹的 待人處事與治學態度亦是學生學習的典範。能在這位亦師亦友的恩師帶領下 學習與成長,我想我算是非常幸運的吧!

本篇論文的完成,感謝張學孔博士、顏上堯博士以及王晉元博士等口試 委員於百忙之中撥空指導,提供諸多寶貴意見,使得本論文得以更加完善,

在此一併致謝。

大學與研究所期間亦感謝桃太郎家族第一代的啟源、小基、小兔,還有 琮平、志鴻、子駿、小松與雅芳等學長姊,阿瀧、小珮、怡君、阿良等學弟 妹,以及其他族繁不及備載的同窗好友在學業上的照顧與生活上的關懷,求 學路上很高興能夠有你們的相伴。

最後感謝一路陪我走來的佳珮,感謝你對我在情緒低落與不穩時的鼓勵 與照顧,也感謝你能分享我所有的喜怒哀樂,很幸運地讓我能在人生的路上 遇見你。

六年來唯一沒變的就是新竹的風,他看著我的成長、茁壯,也記錄著我 求學生活的點點痕跡,希望他能將這份幸運帶給曾經關心、照顧我的師長、

朋友以及家人。

黃任由 謹識於中華科管所 中華民國95 年 8 月 15 日

(7)

目 錄

摘 要... i

誌 謝... ii

目 錄... iii

圖目錄... v

表目錄... vii

第一章 緒論... 1

1.1 研究背景與動機... 1

1.2 研究目的與內容... 2

1.3 研究範圍... 2

1.4 研究方法... 2

1.5 研究流程... 3

1.6 論文章節... 5

第二章 文獻回顧... 6

2.1 捷運列車班表產製現況分析... 6

2.1.1 列車排班作業特性... 6

2.1.2 班表產製作業... 8

2.1.3 小結... 12

2.2 軌道列車排班回顧... 13

2.2.1 數學規劃法... 13

2.2.2 啟發式演算法... 14

2.2.3 模擬分析法... 15

2.3 螞蟻演算法回顧... 18

2.3.1 螞蟻演算法之介紹... 19

2.3.2 螞蟻演算法之特性... 24

2.4 平行計算... 26

2.4.1 平行電腦... 26

2.4.2 個人電腦叢集(PC Cluster)... 29

2.4.3 平行計算程式語言-MPI... 30

2.5 綜合討論... 32

第三章 模式構建與求解演算法... 34

(8)

3.1.1 列車排程模式基本假設... 34

3.1.2 列車排程時空網路圖... 34

3.1.3 數學定式... 38

3.2 求解演算法構想與流程... 44

3.3 列車班表建構演算法... 48

3.3.1 螞蟻演算法之轉換規則... 48

3.3.2 收發車策略... 49

3.3.3 班表建構與評估... 53

3.3.4 費洛蒙更新機制... 54

3.4 平行處理與貪婪法應用... 56

3.4.1 平行螞蟻演算法(PACO)... 57

3.4.2 貪婪平行螞蟻演算法(GPACO)... 60

3.5 參數分析... 61

3.5.1 迭代次數(G)測試 ... 61

3.5.2 費洛蒙濃度指數(α)測試 ... 62

3.5.3 班距與法定班距差指數(β)測試 ... 63

3.5.4 衝突數指數(γ)測試 ... 64

3.5.5 費洛蒙揮發參數(ρ)測試 ... 65

3.5.6 轉換模式參數(q0)測試... 66

第四章 實例研究... 68

4.1 實例測試對象與範圍... 68

4.2 實例測試... 72

4.3 測試結果與分析... 74

第五章 結論與建議... 77

5.1 結論... 77

5.2 建議... 77

參考文獻... 79

(9)

圖目錄

圖1.1 研究流程圖... 4

圖2.1 各類型橫渡線示意圖... 7

圖2.2 基礎班表產製流程... 10

圖2.3 基礎班表之列車運行時空圖(部分) ...11

圖2.4 列車運行衝突調整示意圖... 12

圖2.5 在現實世界裡螞蟻的行為模式。... 20

圖2.6 螞蟻演算法應用在 TSP 之流程圖... 21

圖2.7 共用記憶體平行電腦系統... 27

圖2.8 分散記憶體平行電腦系統... 28

圖2.9 叢集式處理系統... 29

圖3.1 列車排程時空路網圖... 36

圖3.2 路線合併點列車開通時間設計示意圖... 41

圖3.3 折返站列車開通時間設計示意圖... 42

圖3.4 列車折返準備時間設計示意圖-情境一... 42

圖3.5 列車折返準備時間設計示意圖-情境二... 43

圖3.6 列車折返準備時間設計示意圖-情境三... 43

圖3.7 列車折返準備時間設計示意圖-情境四... 43

圖3.8 列車折返準備時間設計示意圖-情境五... 44

圖3.9 演算法構想示意圖... 45

圖3.10 班表求解演算法產製列車班表流程圖... 47

圖3.11 發車流程圖... 51

圖3.12 收車流程圖... 52

圖3.13 班表建構流程圖... 54

圖3.14 費洛蒙更新流程圖... 56

圖3.15 主僕式平行架構圖... 57

圖3.16 平行螞蟻演算法流程圖... 59

圖3.17 貪婪演算法產製起始解流程圖... 60

圖3.18 迭代次數求解過程示意圖... 62

圖3.19 PACO 費洛蒙濃度指數求解表現圖 ... 62

圖3.20 GPACO 費洛蒙濃度指數求解表現圖... 63

圖3.21 PACO 班距與法定班距差指數求解表現圖 ... 63

圖3.22 GPACO 班距與法定班距差指數求解表現圖... 64

圖3.23 PACO 衝突數指數求解表現圖 ... 64

(10)

圖3.24 GPACO 衝突數指數求解表現圖... 65

圖3.25 PACO 費洛蒙揮發參數求解表現圖 ... 65

圖3.26 GPACO 費洛蒙揮發參數求解表現圖... 66

圖3.27 PACO 轉換模式參數求解表現圖 ... 66

圖3.28 GPACO 轉換模式參數求解表現圖... 67

圖4.1 實例研究範圍(虛線內)示意圖 ... 70

圖4.2 台北捷運系統淡水-新店線路線結構圖 ... 71

圖4.3 台北捷運系統淡水-新店線列車營運時空網路示意圖... 71

圖4.4 GPACO-4 產製之淡水-新店線列車運行圖(部分)... 75

圖4.5 GPACO-4 演算法之班距與理想班距比較圖 ... 75

(11)

表目錄

表2.1 鐵路列車排班重要文獻彙整表... 16

表2.1 鐵路列車排班重要文獻彙整表(續) ... 17

表2.1 鐵路列車排班重要文獻彙整表(續) ... 18

表2.2 NT 環境下的 MPI 軟體 ... 31

表2.3 常用之 MPI 副程式... 31

表3.1 PACO 與 GPACO 演算法使用方法比較 ... 45

表3.2 PACO 與 GPACO 演算法最適參數表 ... 67

表4.1 台北捷運高運量系統路線簡介... 68

表4.2 台北捷運系統淡水-新店線服務概況... 69

表4.3 平行電腦相關軟硬體環境... 72

表4.4 測試方案彙整表... 73

表4.5 測試方案結果彙整表... 74

表4.5 班表評估指標比較表... 76

(12)

第一章 緒論

1.1 研究背景與動機

大眾捷運系統亦屬於區域鐵路系統為現代主要之大眾運輸工具,具有載 運量大、專用路權、班次密集、安全性高等之特性,其主要目的在提供民眾 安全、舒適與便捷之運輸服務,因此在交通繁忙的都會區中扮演著不可或缺 的角色。為了充分發揮捷運系統的功能,各捷運系統均有一套特定及完整的 營運計畫及列車運行班表,提供設定列車自動控制(Automatic Train Control;

ATC)之基礎,使得民眾能在無安全及時間擔憂下搭乘捷運系統。然而捷運系 統排班作業是大眾捷運系統營運計畫主要工作之ㄧ,係指在現有軌道設施、

控制方式與場站配置等環境限制下,運用既有車隊規模,排定符合運量需求 與相關安全規定之班表【14】,因此其設計之良窳對於捷運系統行車安全與營 運效率之影響甚鉅。

以旅客的觀點而言,維持捷運系統班距的穩定、較短的行車時間以及較 短的班距是旅客所希望的,但是相對於營運者而言,卻希望能在提供足夠服 務的前提下,降低列車數的使用、減少司機員的需求…等營運方式以節省成 本,因此兩者的期望是相互衝突的,而捷運列車排班主要目的即在於將捷運 系統的資源做最有效之利用,以發揮最大之運輸效率。然而,若列車排班安 排不當,造成列車運行時發生衝突就必須停等以避免列車追撞或對撞,容易 使列車發生延滯的情形,而延長旅客的旅行時間,降低整個系統服務水準,

所以謹慎詳細的列車排班作業對於捷運系統之營運是十分重要的。

由於列車的購置成本高昂,因此必須在有限的列車數量下,依據尖、離 峰時間之交通需求量進行列車之運用調配,但同時卻也增加了列車排班之困 難度。一般在進行捷運系統列車排班作業時,最主要的問題即在於列車班次 的銜接以及列車衝突的排解,然而在處理單一班次銜接或排解衝突問題時,

同時亦會影響其他班次的運行,可能造成新的衝突問題或是發車班距的不穩 定,進而影響整個列車運行時刻表的品質,因此在列車排班過程中存在著許 多取捨的問題,捷運列車排班問題在本質上乃屬於組合最佳化之問題。若沒 有一套適當的規則或模式可依循,排班作業將變的十分困難且費時費力,因 此如何利用有效且快速的方法進行捷運列車排班,擬定捷運列車的運行時刻 表,實有深入研究之必要。

(13)

1.2 研究目的與內容

本研究欲採用螞蟻演算法(Ant Algorithm)的精神發展一套捷運系統列車 排班演算法,期能藉由螞蟻演算法處理組合問題並且容易平行處理之優勢,

快速產製品質良好的列車運行時刻表,以減少排班人員的負擔。本研究主要 研究內容歸納如下:

一、透過訪談了解捷運系統列車排班作業之內容與作業流程,並彙整捷運系 統列車排班作業之考慮項目,以做為捷運列車排班演算法之基礎。

二、運用螞蟻演算法設計一套有效率的捷運系統列車排班求解演算法。

三、建構平行螞蟻演算法,進行多機平行計算。

四、以台北捷運系統淡水-新店線為實例測試的對象,透過本研究之演算法 產製出列車運行時刻表,並且經由參數分析找出較合適之參數值,以做 為產製班表之參考。

1.3 研究範圍

本研究之範圍如下:

一、以單一路線、多機廠為研究範圍,探討捷運系統列車排班作業與運行時 刻表之製作。對於多路線共軌之問題,暫不列入本研究範圍。

二、假設各車站站間運行時間、軌道設施、列車數、列車營運方式及相關環 境設定值已知之下進行。因此,本研究不考慮不同停靠站之營運模式,

亦不考量需求條件下,排定符合法令限制下之列車班表。

三、捷運系統列車在實際營運運行時均採取動態式閉塞系統,來避免捷運列 車追撞問題,但本研究在捷運列車營運排班中,將不針對實際之捷運號 誌系統進行處理,而是針對法定班距或列車間最小時間間距,做為列車 排班及列車跟車之依據。

1.4 研究方法

本研究所探討之捷運系統列車排班問題主要在處理列車在運行過程中,

所產生的班次銜接以及班次衝突排解等組合最佳化問題,近年來,螞蟻演算 法已經被運用各種組合最佳化問題上,螞蟻演算法顧名思義即是模仿現實世 界的螞蟻利用群體合作尋找食物的行為設計出用來處理組合最佳化問題的演

(14)

算法,目前已經成功應用在許多組合問題的求解,例如:旅行推銷員問題(TSP)

【18、19】、二次指派問題(QAP)【20】、車輛途程問題(VRP)【4】等。有鑑 於此,本研究擬採用螞蟻演算法為基礎,結合平行計算程式語言,發展一套 合適於捷運列車排班之求解演算法-平行螞蟻演算法,期望能在短時間之內 產製品質良好之列車運行時刻表,以提升捷運系統之營運效率。

1.5 研究流程

本研究之研究流程如圖1 所示,茲將流程圖之內容說明如下:

一、問題界定:首先確立研究目的,並針對捷運系統整體營運排班架構進行 初步之探討,進而界定捷運系統列車排班問題範圍,並根據研究動機與 目的將問題做ㄧ完整描述,以作為後續研究指導方針。

二、現況資料蒐集:訪談台北捷運公司之列車排班相關人員,蒐集排班、軌 道佈設、號誌系統…等相關資料,並了解高運量捷運系統列車排班作業 流程與詳細步驟,以作為後續演算法建構之重要依據。

三、文獻回顧:蒐集國內外軌道運輸領域(鐵路、捷運系統)之列車排班相關 文獻,並且針對其研究問題特性與研究方法加以彙整與評析。另外也針 對螞蟻演算法與平行處理進行相關文獻回顧,並彙整分析做為後續演算 法設計之基礎。

四、求解演算法設計:以螞蟻演算法為基礎,並考量列車排班特性,著手設 計適合捷運列車排班問題之演算法,以應用於實務問題之求解。

五、演算法平行化:將列車排班演算法與平行化程式整合,並構建平行處理 環境,以加速演算法求解速度。

六、實例測試:將上述所構建之模式與演算法,以台北捷運系統淡水-新店 線為測試對象,並詳細分析測試結果。

七、最後提出本研究之結論建議。

(15)

圖1.1 研究流程圖 問題界定

文獻回顧 現況資料蒐集與

分析

求解演算法設計

實例測試

結果分析

結論與建議 符合預期結果

與預期結果偏差 演算法修正

問題檢討 演算法平行化

(16)

1.6 論文章節

依據研究流程與內容,本論文可分為下列五章:

第一章為緒論。

第二章為文獻回顧:首先對捷運列車排班現況進行分析工作,並針對軌 道列車排班、螞蟻演算法與平行處理等三部份文獻,進行回顧以及評析工作。

第三章為平行蟻群演算法之建立:首先說明螞蟻演算法應用於捷運列車 的概念,並且考量捷運列車排班之特性,以螞蟻演算法為基礎進行求解演算 法之建構,之後再將演算法平行化,做為產製列車運行班表之演算模式,並 且進行演算法之參數分析,以瞭解參數對演算法之影響。

第四章為實例研究:以台北捷運系統淡水-新店線做為測試對象,進行實 際列車時刻表的產製,以確認本研究所建立之模式的有效性。

第五章為結論與建議。

(17)

第二章 文獻回顧

本研究主要係對捷運列車班表產製工作進行研究,因此首先必須了解班 表產製現況,並且針對鐵路列車排班方法進行文獻回顧。此外,本研究主要 研究方法係螞蟻演算法,因此對螞蟻演算法進行相關文獻回顧,並且基於螞 蟻演算法易於平行的特性,亦對平行方法進行介紹。本章首先在 2.1 節將介 紹捷運列車班表產製現況與流程,在 2.2 節的部份將針對軌道運輸排班領域 進行國內外文獻回顧,在 2.3 節進行螞蟻演算法相關文獻之回顧,介紹重要 觀念以及其應用,在 2.4 節介紹平行處理所需要之軟硬體環境,並介紹其觀 念與效能分析方法,在本章的最後提出綜合檢討。

2.1 捷運列車班表產製現況分析

在進行捷運列車排班工作之前,本研究首先透過訪談與資料蒐集方式繳 解捷運列車班表產製現況,以下對列車排班作業特性進行分析,再進行班表 產製作業介紹。

2.1.1 列車排班作業特性

列車排班作業所必須注意的要素包括硬體設施的營運路線概況,以及軟 體要素的列車運行計畫、軌道開通時間與需注意的排班重要原則,分別介紹 如下:

一、營運路線概況:營運路線概況主要係列車運行時必要之硬體設施,包括 車站位置、機廠位置與容量以及營運主線與機廠支線的佈設,分別說明 如下:

(一) 車站位置:必須考慮路線上之終端站(亦稱折返站,如:淡水站或新 店站)以及中間站(如:中山站)之位置及順序關係。

(二) 機廠位置與容量:機廠係提供列車存放之處,負責收車與發車之列 車調度,由於各機廠軌道數為固定,因此所能夠提供之駐車容量亦 無法變動,所以在尖離峰發收列車時,各機廠所收車的數量加上原 本停放在機廠列車數不能超過機廠容量。機廠所在位置亦會影響列 車收發車方式以及軌道容量。

(三) 軌道佈設:除了列車一般所行駛之正線外,為了提供列車在終點站 折返、機場支線之收發車、異常事故之緊急運轉安排、故障列車停

(18)

靠待援及工程維修等需要,在正線間另設有橫渡線(如圖 2.1 所示),

以容許列車由一軌道轉至另一軌道,此處亦是列車運行時常發生衝 突的地方。

(a) 袋型橫渡線(Pocket Track)

(b) 雙交叉形橫渡線(Double Cross-over)

(c) 單交叉形橫渡線(Single Cross-Over) 圖2.1 各類型橫渡線示意圖

二、列車運行計畫:列車運行計畫主要係決定列車營運的方式,其中包括服 務的型態,每日首末班車時間、各時段之發車班距、列車運行時間與停 靠站時間以及列車數等。

(一) 服務型態:可分為平常日、假日、特殊日。

(二) 系統首/末班列車時間:捷運系統列車每日首班車發車時間(06:00)與 末班車發車之時間(24:00)。

(三) 列車發車之班距:列車所發車的班距必須符合運行計畫所規定的尖 峰與離峰時段之班距。

(四) 站間行駛時間:此一數值之求算需考慮列車行車功能位階、站間距 離、坡度、曲線與速限區域等因素,通常為一固定值,但是若發生 延誤情形時,在考慮安全班距的狀況下,可允許列車進行趕點。

(五) 列車停靠站時間:指列車進站停靠月台後,供旅客上、下列車至重 新啟動之時間間隔。此時間值需考慮各站之旅客實際進出量與旅客 使用捷運之熟悉度。在進行排班作業時,在考慮安全班距的狀況下,

亦可將停靠站時間作彈性調整。

(六) 終端站折返時間:各列車於折返站之停留時間必須滿足列車司機換 邊發車之時間,並讓旅客有足夠的時間上下車,一般最少為三分半

(19)

突,因此通常會需較長時間。

(七) 列車數:在進行排班的時候必須考量可用之列車數,目前提供淡水

-新店線之列車數為18 列,並且基於系統穩定度以及維修保養排班 所需,備有額外一輛之列車。

三、開通時間(clearance time):係指號誌開通與轉轍器鎖定定位所需時間,依 車站位置可分為月台最小開通時間與號誌最小開通時間兩種類型。在實 務排班上希望列車能夠運轉順暢,不會因為等候開通時間而停車,一般 可分為下列兩種:

(一) 月台最小開通時間:係指在一般車站(非號誌連鎖區與終端站),同 一月台允許連續兩班列車停靠之最小開通時間。

(二) 號誌最小開通時間:係指在號誌連鎖區內(如終端站或機廠支線與主 線合併點)之轉轍器與橫渡線需要轉換,所需要之最小開通時間。

四、排班原則:此排班原則主要係參考實務作業與營運限制,重要原則為滿 足可用列車數、滿足各時段列車班距、符合路線上的號誌開通時間、考 量機廠與終端站月台之容量、在時段轉換期間的班距使其平穩變化,分 別說明如下:

(一) 滿足可用列車數量:所使用的列車數不能超過捷運公司所準備的營 運列車數量。

(二) 滿足列車運行計畫之服務班距:盡可能的將發車班距依運行計畫中 尖離峰時段之班距規定發車。

(三) 符合號誌系統所允許之列車班距:當離峰時段轉換至尖峰時段時,

機廠必須加車支援,列車由機廠發車進入主線時,在合併點可能發 生列車衝突而造成需有ㄧ車停等的狀況。另外,在終端站列車進出 無法滿足號誌最小開通時間,因此亦可能發生衝突而發生停等情 形,以上狀況在排班時均須考慮。

(四) 終端站月台容量:列車進入終端站之前必須考慮是否有空餘之月台 可供停靠,若沒有可供停靠之月台就必須停等,待有列車離開終端 站時才能駛入。因此在進行排班時,必須考慮列車在終端站之折返 時間以及其銜接班次,以確保有足夠的月台容量以供列車停靠。

(五) 使尖離峰在轉換時段之班距平順:尖離峰時段轉換時,盡可能保持 班距變化之平滑,以免班距變化太大讓旅客感受太突兀。

2.1.2 班表產製作業

(20)

由於產製班表所需考慮因素之複雜性,因此目前軌道運輸系統之班表產 製大都區分為基礎班表產製與衝突檢核調整兩階段,以台北捷運公司為例,

目前在進行列車排班作業時,是依據列車運行計畫以自行開發之軟體產製基 本列車運行時刻表,並且判斷列車時刻表中發生衝突之列車編號與位置,之 後再利用人工作業的方式逐步排解衝突。詳細內容說明如下:

一、基礎班表產製作業(Standard timetable production)

基礎班表產製階段:該階段主要係依據列車運行計畫中所規定之首/

末班車發車時刻、站間運行時間、停靠時間、終端站列車折返時間、尖 離峰時段之起迄時間、尖離峰班距以及目前捷運公司所擁有車隊規模所 排定之班表,其產製流程如圖2.2 所示。圖 2.3 為基礎班表之列車運行時 空圖,橫軸代表時間,縱軸代表車站位置,兩條虛線內代表尖峰時段,

其班距較密,虛線外則代表班距較疏的離峰時段,可以發現基礎班表內 存在著許多衝突點(圓圈處),代表此處發生不滿足號誌開通時間之列車 衝突,此部分則由下一階段進行衝突調整工作。

二、衝突檢核與調整作業(Conflicts monitoring and resolving)

衝突檢核與調整階段:依據各軌道運輸特性及號誌管制原則,判斷 基礎班表中產生列車衝突之位置與類型,並透過列車速度的調整或到離 站時間的改變調整衝突。根據訪談與蘇昭銘等人【15】的討論,檢核標 準如下:

(一) 需限制列車班距必須符合列車運行計畫所規定的範圍。

(二) 需限制折返站滯留時間需滿足列車司機換邊發車所需時間。

(三) 需使相鄰列車於折返站符合號誌最小開通時間。

(四) 需使相鄰列車於一般車站符合月台最小開通時間。

(五) 需滿足從機廠增車或收車時,列車交織進入或穿越主線所需之號誌 最小開通時間,以保持機廠班次與主線班次之安全班距。

(六) 需限制各列車在兩終端站之行駛時間。

(21)

決定各端點站首班次 發車時刻

依班距排出其他班次 之發車時刻

是否從機廠收/發車 推算出班次由機 廠收/發車之時刻

算出i端點站發車列車到 達端點站i+1之時刻

決定列車於端點站之折返 時間,使該列車能銜接該 端點站發車時刻

是否進入尖離峰班距轉

換時間 調整列車班距

決定其端點站加/

減班次之時點 否

是否到達營運結束時間

推算各列車回到各機廠時刻

結束基礎班表產製作業

是 否

圖2.2 基礎班表產製流程 資料來源:【15】

(22)

圖2.3 基礎班表之列車運行時空圖(部分)

在基礎班表上已將相關列車排班於環境上無法即時改變因素,如列車 數、機廠數、機廠容量等納入考量,但並未考量列車從機廠增車或減車與主 線上列車所產生之衝突,以及在終端站列車到離所產生的衝突,因此衝突調 整階段之目的為調整基礎班表產製階段所產生的衝突,使其成為一可行班 表。由於捷運系統運行時,均已設定其行車功能位階,造成站間之行駛時間 固定,故無法調整列車運行曲線之斜率,由此其衝突的調整僅能透過列車折 返滯留時間的增減,利用「延後」或「提早」列車到達或離開折返站時間的 方式【8、15】,促成列車在時空圖上往左、右方向平移,以避開各項衝突的 發生,並符合各項捷運法規的規定,如圖2.4 所示。

(23)

圖2.4 列車運行衝突調整示意圖 資料來源:【14】

2.1.3 小結

爲了能夠滿足龐大的運量需求,以淡水-新店線為例,在每天的營運時 間內每個終端站必須提供大約120 個班次來服務運量需求,因此兩端必須安 排大約240 個班次以服務旅客需求,在安排班次的過程中亦必須考量列車數 目的限制、班距的限制與號誌的管制…等眾多考量,因此列車排班問題並非 是ㄧ項容易的工作。

然而,目前台北捷運公司在進行捷運列車排班時是採用半自動的方式,

先利用電腦自動產出基礎班表,之後最困難的衝突排解卻是利用人工手動的 方式逐步進行列車調整,因此當每次需要配合政策或是考量維修等必需重新 進行列車排班工作時,都必須花費排班人員很多的時間並增加排班人員的負 擔。此外,以人工的方式進行班表的產製往往僅能產出一個可行的班表,對 於班表的品質並無法有效的掌控,在尖離峰班距轉換的時段,常常會發生班 距不穩定的情況,甚至有列車在入站前停等的情形,因此如何找到一套有效 率的排班方法並且兼顧班表品質為本研究之重點。

(24)

2.2 軌道列車排班回顧

目前國內外對於列車排班之相關研究甚多,其中由於軌道系統亦可區分 為「城際鐵路系統」與「捷運系統」兩大類,乃因城際鐵路系統與捷運系統 之列車排班基本上存在著許多不同點。在營運車種方面,ㄧ般而言城際鐵路 系統所提供之車種較多、停靠站方式亦較為複雜,故其衝突型態大多數是因 車種營運特性差異所產生;而捷運系統之車輛特性與停靠站方式較為ㄧ致,

但因其軌道佈設較為單純,故其衝突大多為車輛自機場併入主線或是端點站 折返所產生,故兩者不具備共通性。由於產製列車班表的複雜性,以往針對 列車排班之研究以及實務上進行排班作業時,大都將班表的產製區分為基礎 (標準)班表產製及衝突調整等兩個階段,而以往之研究多著重於班表之衝突 調整,依處理方法可分為數學規劃法、啟發式演算法以及模擬分析法,茲就 重要相關文獻整理如表一,依研究方法將相關文獻整理如下:

2.2.1 數學規劃法

此研究方法是以數學規劃技術,將問題特性與影響因素以數學模式的方 式呈現,並透過相關軟體進行求解,追求目標式之最大化或最小化。此方法 之優點在於所求解出來之品質最好,但由於列車排班問題乃屬於NP-Hard 問 題,問題求解難度亦隨著其規模擴大而更難以求解,因此此方法之缺點亦是 最耗費時間與人力成本。

Petersen et al.【23】對於電腦輔助列車派遣提出ㄧ完整架構,並針對單 軌鐵路列車派遣提出ㄧ數學定式,以總行駛時間最小為目標式,以線性規劃 的方式決定超車與錯車的位置,並且決定哪些列車必須行駛側線(siding)以避 開衝突。

Higgins et al.【20】構建非線性混合整數規畫模式,針對單線區間,依據 列車因交會、待避所造成的延滯,評估列車時刻表之可靠度。目標式是使列 車總延滯時間和列車營運成本為最小。其中考量以下限制:

一、後車抵達車站之時間須為前車抵達車站之時間再加上安全間距(safety headway)。

二、後車之發車時間須為前車之發車時間再加上安全間距。

三、列車須符合預定停靠站排點的要求。

四、列車在各區段須符合其速限的規定。

(25)

一般而言,營運者常常是採用停等或待避之方式來解決列車之衝突,然 此舉卻會導致列車延滯的情形產生,而無謂的增加營運成本。該模式即是在 解決時刻表之衝突問題後,藉由計算其延滯和成本,來評估時刻表的可靠度。

然而該研究僅能從時刻表之中找出最佳者,並無法自行排定最佳的時刻表。

李治綱等人【2】使用數學規劃法構建可用於排除列車衝突的排點模式,

該模式分別就單線、複線、雙單線進行考量,並且將不同的站間路段、站內 軌道設置列入限制式中以解決列車衝突。。目標式是使所有列車離開各停靠 站產生的總延滯最小,並且考量以下限制:

一、列車符合預定停靠站排點的要求。

二、各列車到達車站的時間需大於前一車站的離開時間加上兩車站間的最小 運行時間。

三、各列車在車站的停等時間應小於在停靠站的到達與離開時間 四、列車之運行必須在時空圖上保持其連續性。

五、確定兩車間距為最小,且側邊軌道並沒有被佔用,以方便後車可以順利 超越前車。

六、在車站內的列車數不得大於站內的軌道數。

蘇昭銘等人【15】考量捷運系統多機廠與多路線之列車運行特性建構數 學模式,目標式是將最終班表與原始班表之到達時間差距最小化,模式中考 量以下限制:

一、尖離峰之發車班距限制。

二、折返站滯留時間限制。

三、相鄰兩車與三車衝突限制。

四、運行時間限制。

五、避開機廠列車與主線列車衝突限制。

六、機場容量限制與收發車平衡。

2.2.2 啟發式演算法

啟發式演算法是以合乎規則的想法所設計出來之求解程序,通常是找出 起始解並且藉由此解進行目標式的改善,雖然此種處理方法無法保證求得最 佳解,但是往往可在有限的時間內獲得可接受之近似解,在講求時效性的排 班工作而言,使用啟發式演算法可以得到不錯的求解效率。

Mees【22】針對鐵路單軌列車排班問題轉換成網路結構,將站間軌道部

(26)

分視為節線型態,而車站與軌道交會處等視為節點,求解方式是將列車的到 離時間視為離散的變數,並且定為離散網路之型態,並使用最短路徑演算法 來更新每輛列車的行程,最後可得到一可行解。

Cai 與 Goh【17】提出一個快速求解之啟發式演算法,進行列車排班之 求解,其方法是以貪婪演算法為發展基礎,並分別求解單一列車對衝突與列 車群組衝突,在很快的多項式時間內可獲得區域最佳解。

游雅惠【8】的研究中提出捷運列車排班中最主要的問題在於「調整列車 於終端站的折返時間或班次發車時刻,以銜接執行班次並避免列車衝突」。因 此針對列車折返銜接執行班次問題,利用變數產生法來求解,產生班表起始 解,並針對列車衝突問題,提出兩種啟發式演算法來解決列車衝突的情形,

以獲得可行的時刻表。

蘇昭銘【13】利用電腦輔助建構列車派遣決策支援模式,研究中將各類 型捷運列車衝突提出有系統之排解邏輯,透過衝突調整準則的制定逐步調整 列車衝突並將其自動化,最後可獲得ㄧ可行之列車運行班表。

2.2.3 模擬分析法

模擬分析法可分為間斷性事件模擬法與連續性時間模擬法兩大類,係考 量排班所需要之因子(號誌系統、電力系統、軌道佈設、車輛運行特性…等) 進行列車系統運行模擬,優點在於能考量不同系統間相互影響之狀況下,有 效處理列車到離時間、列車加減速與列車停等決策問題,較符合人類思考之 邏輯;缺點在於列車系統往往十分複雜,必須掌握各系統介面特性,才能模 擬列車運行情況,並非單一人可獨立完成。

黃哲旭【7】為了了解車輛、路線、號誌三大系統對於班距及運轉時間的 影響,以物理運動學作為列車推進基礎,針對系統間的互動關係進行模擬。

模式中為了反應出號誌對列車所造成的影響及列車間的交互關係,因此將發 車間距由150 秒向下調整,利用密集的發車來呈現出前部列車產生延滯時,

對後面列車產生的影響。如此不但可得到系統的最小營運班距、路線容量限 制,更可求出發車密度和列車延滯間的關係。

周學怡【3】採用不連續事件的模擬方式在路線資料、列車類型及列車運 行時刻表已知的情形下,構建多列車模擬模式以評估時刻表之可靠度。該模 式並將台鐵沿用多年的排點習性「低等級列車等高等級列車」對列車運行計

(27)

因路線使用率的增加,而明顯的便多。該研究最後也以南迴鐵路進行模擬分 析,驗證模式之有效性,只是南迴鐵路使用率不高,列車交會、待避情況也 少,所以低等級列車因停等高等級列車所造成的時間延滯並不長。

Yu【27】的研究處理鐵路運轉整理(rescheduling)的問題,當列車系統運 行發生延誤時,而如何讓整個系統列車延誤達到最小化是一項困難且耗費時 間的工作。作者是利用模擬方法,並將原有的列車運行圖,轉化為一個網路 圖(Network graph),以知識庫系統與傳統的數學規劃法相互連結,並利用「要 徑法」(critical path method, CPM)的概念,以求解要徑的過程,來模擬運轉整 理的最佳化,有效縮短列車延誤時間。

表2.1 鐵路列車排班重要文獻彙整表

資料來源:本研究整理 研究

方法 作者 研究對象 研究重點

Petersen et al.

(1986) 城際鐵路

z 對電腦輔助列車派遣提出完整結構 z 針對單線軌道提出數學定式

z 利用線性規劃模式進行總運行時間 最小之求解。

Higgins et al.

(1996) 城際鐵路

z 針對單線軌道運行做研究

z 衝突點在於列車之交會車與追越 z 使用分枝定限法求解

李治綱等人

(1996) 城際鐵路

z 模式考量各種路線與停靠站軌道位 z 置布置限制

z 模式變數與限制式之數目隨列車與 站數增加而增加

Adenso-Diaz et

al.

(1999)

城際鐵路

z 針對列車運轉整理進行研究

z 本研究所提出之演算法能對各種衝 突解決分案進行評估,採取適合的列 車調度。

數學規劃法

蘇昭銘等人

(2002) 捷運系統

z 考慮多機廠路網之列車運行型態 z 模式包含機廠收發車平衡與尖離峰

班次銜接與不同型態之收發車特性 z 基礎班表會影響衝突調整之結果

(28)

表2.1 鐵路列車排班重要文獻彙整表(續)

資料來源:本研究整理 研究

方法 作者 研究對象 研究重點

Mees

(1991) 城際鐵路

z 針對單線軌道運行做研究

z 將路線視為網路結構,軌道交會處為 節點、軌道部分則為節線

z 使用最短路徑演算法進行求解 z 只求出一可行解

Cai X.

Goh C. J.

(1994)

城際鐵路

z 提出快速求解之啟發式演算法,並在 多項式時間內求得可行解

z 分別提出針對單一車輛與群組車輛 之衝突調整方法

z 以貪心演算法為發展基礎,求解區域 最佳解

游雅惠

(2000) 捷運系統

z 衝 突 點 主 要 發 生 在 尖 離 峰 轉 換 時 段、機廠線匯入主線處

z 採用變數產生法求得起始班表 z 發展啟發式演算法進行衝突求解一

可行之運行班表

啟發式演算法

蘇昭銘等人

(2000) 捷運系統

z 建構列車排班決策支援模式

z 比較城際鐵路系統與捷運系統差異 z 電腦輔助排班能迅速產製運行班表

(29)

表2.1 鐵路列車排班重要文獻彙整表(續)

資料來源:本研究整理

2.3 螞蟻演算法回顧

近年來,陸續已經有許多新的巨集啟發式(Meta-heuristic)演算法被提出,

而螞蟻演算法(Ant Algorithm)便是其中的一種,其精神在於利用既有的經驗,

以不斷反覆地在可能的解答空間中探索新的可能解答以改善現有的解答,並 且在探索的過程中不斷地自我改善以逼近最佳解,對於求解一些典型的組合 最佳化問題,已被證明有相當不錯的效果,以下茲就螞蟻演算法做一詳細介 紹。

研究

方法 作者 研究對象 研究重點

黃哲旭

(1996) 捷運系統

z 考量路線、車輛與號誌等三大特性 z 以物理運動學作為列車推進之根據 z 分析鐵路規劃設計與營運相關方案

之影響

z 模式結構反映各系統單元間功能關 係與營運之影響

周學怡

(1996) 城際鐵路

z 將列車間轉換時分視為隨機分配 z 列車推進與停站模擬,以抽取機率分

配模擬

z 建立跟、錯、會車之邏輯關係式 z 建立調度規則等特性。

Yu Cheng

(1996) 城際鐵路

z 針對列車系統發生延誤時,如何進行 運轉整理。

z 提出將列車時刻表的運行情況轉換 成網路節點的型態,以便後續進行求 解。

z 以 知 識 庫 為 基 礎 並 使 用 要 徑 法 求 解,有效縮短列車延誤時間。

模擬方法

F. Hallowell T. Harker

(1998)

城際鐵路

z 以誤差機率函數產生列車到離站之 誤差。

z 可使其列車到離時間誤差最小。

z 可透過模擬工具求出次佳解。

(30)

2.3.1 螞蟻演算法之介紹

螞蟻演算法的概念最早係由Colorni et al.於 1991 年所提出,當時稱為螞 蟻系統(Ant Systems, AS),其基本概念係利用螞蟻外出覓食時,在巢穴與食物 所行經的路徑上,遺留下一種被稱為「費洛蒙」(pheromone)的化學物質,而 後續出發的即會依據費洛蒙的濃度決定是否依循此路徑前進。因此,螞蟻演 算法顧名思義即是模仿現實世界的螞蟻利用群體合作尋找食物的行為設計出 用來處理最佳化問題的演算法。近幾年來,有許多文獻以 AS 模型為基礎進 行演算法的修正與改良,如Dorigo et al.【18】改良了搜尋規則與費洛蒙更新 機制而提出蟻群系統(Ant Colony System, ACS);Stutzle et al.【25】則控制路 徑 上 費 洛 蒙 的 上 下 限 而 發 展 出 大 小 螞 蟻 系 統 (MAX-MIN Ant System, MMAS)。然而,無論是 AS、ACS 或是 MMAS 皆統稱為螞蟻族群最佳化(Ant Colony Optimization, ACO)或是螞蟻演算法(Ant Algorithm)。之後亦有許多學 者針對螞蟻演算法繼續進行研究,並成功運用在許多組合最佳化問題,如例 如:旅行推銷員問題(Traveling Salesman Problem, TSP)【19】、二次指派問題 (Quadratic Assignment Problem, QAP)【20】等。

Dorigo et al.【18】提到自然界的螞蟻會在走過的路徑上留下費洛蒙,幾 近全盲的螞蟻即是利用費洛蒙的氣味找尋前往食物地點及回巢的路徑,而且 當有兩條以上的路可選擇時,螞蟻會偏好選擇有較多費洛蒙的路徑,同時走 過之後再在該路徑上留下自己的費洛蒙,所以經過一段時間後大部份的螞蟻 都會選擇相同路徑行走。以圖 2.5 為例而言,E 為螞蟻巢穴所在地,A 為食 物所在的地點螞蟻不停地於 AE 路徑上搬運食物(圖 2.5(a))。如果在路徑 AE 上放置一障礙物,則螞蟻則從兩側選擇一側通過以到達食物的地點或回到巢 穴。此時,由於兩側的路徑上並沒有費洛蒙,所以兩側路徑中任一側被螞蟻 選擇通過的機率是相同的(圖 2.5(b)),但是由於路徑 ACE 較短,所以要回巢 或要出去尋找食物的螞蟻會較早通過路徑ACE 而留下費洛蒙。當後面有螞蟻 要再通過時,路徑ACE 上由於有較多的費洛蒙,所以螞蟻選擇 ACE 路徑的 機率較高。久而久之大部份的螞蟻都會選擇較短的路徑通過(圖 2.5(c))。

(31)

圖2.5 在現實世界裡螞蟻的行為模式。

資料來源:【18】

螞蟻演算法最主要的觀念即是在每個決策點逐步利用選擇機制前進至下 一個決策點,直到所有的決策完成,再依據此決策組合的優劣進行費落蒙更 新機制,若決策組合的成果佳,則會在此決策組上留下較高的費落蒙,以做 為後續再次執行的參考,之後重複多次搜尋直到停止條件成立。螞蟻演算法 最早係被應用於旅行推銷員問題(TSP)上,以下茲就螞蟻演算法應用於 TSP 說明螞蟻演算法之求解機制與流程,並配合圖2.6 各步驟相關內容說明如下:

一、參數設定

在使用螞蟻演算法前,首先必須設定相關參數值,包括螞蟻個數 (S)、迭代次數(

t

max)、費洛蒙起始值(

τ

0)、費洛蒙衰退參數(

ρ

)、α 值與

β

值。

其 中 費 洛 蒙 起 始 值 代 表 節 線 上 費 洛 蒙 的 初 值 , 一 般 設 定

1 0 =(NLnn)

τ ,N 為節線總數,

L 為貪婪法(greedy heuristic)所求解之總

nn 距離;螞蟻隻數(S)通常設定與節點數(A)相同;迭代次數(

t

max)為演算法 重複執行之次數(iteration),亦代表停止條件。其他參數如轉換規則參數 (

q )、

0 α 值與

β

值將會在轉換機率模式中使用;而費洛蒙衰退參數(

ρ

) 以及費洛蒙起始值(

τ

0)會在費洛蒙更新機制中使用,這些設定參數之意 義與用途將在使用的過程中逐一說明。

(32)

圖2.6 螞蟻演算法應用在 TSP 之流程圖

(33)

二、利用轉換機率(transition probability)建構 TSP 路徑

螞蟻演算法基本上是ㄧ種機率性的尋優方式,當螞蟻在進行路徑尋 優的過程,會利用一轉換機率以選擇下一前進之節點,而在TSP 問題中 主要考慮的因素為路線上費洛蒙的濃度以及節線的長短,應用方式如下:

首先將螞蟻隨機放置於節點上,每隻螞蟻依據當時路徑行走的狀 況,利用轉換機率選擇下一個前進的節點,並且逐步完成所以節點的拜 訪。螞蟻系統(AS)轉換機率使用規則如下:

其中pijs(t)代表在第t 次執行回合中,螞蟻 s 在城市 i 選擇城市 j 的 機率;

τ

ij(t)代表第t 次執行回合中,節線 ij 上費洛蒙的濃度;

η

ij稱為啟 發函數(heuristic function),在不同問題中的啟發函數會因問題的特性有 所不同,在TSP 中啟發函數則為節線 ij 距離的倒數;

J

s(i)代表位於節點 i 的螞蟻 s 尚未拜訪過的鄰近節點集合,類似於禁制演算法(Tabu Search) 中的禁制清單的觀念,記錄著螞蟻 s 尚未拜訪之鄰點,因此若不是鄰點 或是已拜訪過的節點,被選擇的機率則為零;α 值與

β

值分別代表決定 費洛蒙與距離間相對重要性之參數,α >0、

β

>0。

三、更新費洛蒙濃度

每隻螞蟻都具有感知與遺留費洛蒙的能力,路徑上費洛蒙濃度越高 越容易吸引螞蟻依循前進,進而累積更多的費洛蒙,以突顯出不同路徑 間的優劣差異。費洛蒙的更新方式如下:

當所有螞蟻皆完成它們的的旅程後,則依據這些螞蟻的表現進行路 線上所有費洛蒙的更新,亦是說原本在路徑上的費洛蒙會隨時間逐漸揮 發,而螞蟻走過的路徑則會再增加新的費洛蒙,計算方式如下:

[ ] [ ]

[ ] [ ]

⎪⎪

⎪⎪⎨

⎧ ∈

=

otherwise i J j t if

t t

p

s

i J u

iu iu

ij ij

s ij

s

0

) ) (

( ) ( )

( ()

β α

β α

η τ

η τ

(2.1)

(34)

其中

L 代表第 s 隻螞蟻所建構的路徑總長;Q 代表每隻螞蟻所擁有

s 的費洛蒙總量,為一固定參數值,在處理TSP 中設為 100。當所有螞蟻 完成旅程後,使用上述方式進行節線上費洛蒙的更新,使這群螞蟻能夠 將自己尋優的經驗傳承給後面的螞蟻,以發揮分工合作的特性。此更新 機制可以將不錯的可行解加以強化,而且也模擬費洛蒙隨時間揮發而遞 減的特質,以避免這些解太過左右後續螞蟻的搜尋行為。

四、更新最佳路徑與測試停止條件

若這群螞蟻搜尋到比目前成本更小的路徑,則更新目前最佳路徑與 最佳值,並且推移時間更新回合數t=t+1。測試是否達到停止條件,若未 達到停止條件則繼續重複演算法,若已達到停止條件則輸出最佳解,結 束演算過程。在此的停止條件為達到所設定回合數,亦可考慮問題的特 性,將停止條件設為CPU 執行時間或是最佳解達到某一設定值。

以上是利用螞蟻系統(AS)的模型進行 TSP 的求解,在 AS 之後,許多改 良型態的演算模型也紛紛產生。Dorigo et al.【18】在 1997 年時,以 AS 為基 礎,進一步提出螞蟻族群系統(Ant Colony System, ACS),其與 AS 模型主要 有三項差異:

一、加入轉換規則(transition rule):提供一項可直接進行選擇之功能,即增加 一個

q 參數值(0≦

0

q ≦1),使得在 0 到

0

q 的機率範圍可以直接選擇機率

0 最高的鄰點,模式如下:

其中,q 值為一介於 0 與 1 間均勻分配之隨機亂數,

q 為一設定參

0 數值(0≦

q ≦1);

0 argmax

f

(

x

)

x 代表找使

f

(x)最大值的 x 值,在此即為

[

τ (t)

] [ ]

αη β值最大的節點。

s ij S

s ij

ij

t ρ τ t τ

τ ∑

=

Δ +

= +

1

) ( ) 1 ( ) 1

( (2.2)

⎪⎩

⎪⎨

= Δ

otherwise L

Q

s s ij

0

τ

(2.3)

[ ] [ ]

{ }

⎪⎩

⎪⎨

⎧ ≤

=

otherwise t

p

q q if t

j

s ij

iu i iu

J

u s

) (

) ( max

arg 0

) (

β α

η τ

(2.4) 螞蟻s 走過的節線

(35)

二、變更「整體更新法」:在 ASC 模式下,整體更新的方式不若 AS 將每隻 螞蟻的表現進行更新,而是只更新在每個回合或是目前表現最好的那隻 螞蟻以及該螞蟻所走過之路徑,L+為目前表現最好之路徑

三、加入「區域更新法」(local updating rule):ASC 模式加入費洛蒙局部更新 機制,讓每隻螞蟻在搜尋的過程中,只要選擇完一個節點,即針對所有 路徑做一次費洛蒙更新,以使得各路徑的費洛蒙職不至於過高而收斂至 局部解。

依據Dorigo 與 Gambardella【18】的測試中發現,ASC 的表現相對於其 他巨集啟發式演算法,如基因演算法(Genetic Algorithm, GA)與模擬退火法 (Simulated Annealing, SA),更能獲得較佳的解答。至此螞蟻演算法的整體架 構已經逐漸定型,目前在ACO 的相關模型中也以 ACS 的應用最為廣泛,而 後續研究的變化多在費洛蒙更新的策略以及針對啟發函數做調整,並且也成 功地應用在許多組合最佳化問題的求解,獲得比其他巨集啟發式演算法更好 的結果,如:二次指派問題(Quadratic Assignment Problem, QAP)、工作排程 問題(Job Shop Problem, JSP)、車輛途程問題(Vehicle Routing Problem, VRP)…

等,顯示出螞蟻演算法在處理組合最佳化問題的能力有相當不錯的表現。

2.3.2 螞蟻演算法之特性

螞蟻演算法特色與優缺點可彙整如下【4、6、18、19、20】:

一、 特色:

到目前為止已有許多各種不同型態的螞蟻演算法,但無論是那種型 態的螞蟻演算法都包含以下三個部份:

(一) 可行解建構

讓螞蟻利用轉換規則選擇路徑並逐步建立出一個可行解。也就

ij ij

ij t

ρ τ

t

τ

τ

( +1)=(1− ) ( )+Δ (2.5)

⎪⎩

⎪⎨

=

Δ +

otherwise L

Q

ij

0

τ

(2.6)

) 0

( ) 1 ( ) 1

(

ρ τ ρτ

τ

ij t+ = − ij t + (2.7) 節線ij 屬於最佳表現之路徑

(36)

是說,如何依目前的費洛蒙分佈情形並考量啟發函數,計算出螞蟻 選擇路徑的機率,依此逐步建立可行的解答。

(二) 費洛蒙更新機制

增加或減少路徑上費洛蒙的方法,通常是在所有螞蟻走過的路 徑中選擇比較好的路徑上增加較多的費洛蒙,而且每一路徑上的費 洛蒙會隨時間蒸發掉一部份。

(三) 啟發函數

給予額外的資訊讓螞蟻前往可能產生較佳解的方向移動。以 TSP 為例,演算法中的啟發函數便是各鄰點距離的倒數;而在求解 QAP 時的啟發函數則是考量流量大的設施儘可能放在接近中心點 的位置。

雖然螞蟻演算法主要是模仿自然界中螞蟻覓食行為,但是在電腦上 程式的運作上與現實螞蟻行為仍有些許差異:

(一) 虛擬螞蟻具有某種程度之記憶,會記憶所走過的路徑長度,而現實 中的螞蟻並無記憶能力。

(二) 虛擬螞蟻進行路線的選擇除了考慮費洛蒙濃度之外(感知能力),還 能以啟發函數(heuristic function)(視覺能力)而加以決定,此與自然螞 蟻完全依靠費洛蒙濃度行為有所差異。

(三) 虛擬螞蟻的時間並非連續性而是間斷進行。在所有的螞蟻完成搜尋 後,再更新路徑上費洛蒙資料。不若現實世界中的螞蟻隨時在路徑 上留下費洛蒙。

(四) 現實的螞蟻外出覓食是一次多隻螞蟻同時進行,然而在單一處理器 上執行必須一隻ㄧ隻螞蟻分別進行,但是若在多處理器平行架構下 的電腦,亦可以使用一次派出多隻螞蟻搜尋的概念。

二、 優點:

(一) 具有分工合作、多點尋優的特性,每一隻螞蟻可以獨自進行搜尋的 工作,在搜尋的同時亦參考其他螞蟻所遺留下來的資訊,達到分工 合作的目的,較能避免陷入區域最佳解(Local Optimal Solution)。

(二) 具有正/負回饋機制,即利用費洛蒙更新機制,能夠有效將不錯的解 加以強化,並且為了避免掉入區域最佳解,也會將路線上的費洛蒙

(37)

(三) 螞蟻演算法具有能夠快速收歛至近似最佳解的能力,有助於大規模 問題之求解效率。

(四) 螞蟻演算法本身是一種分散式尋優方法,有利於在平行架構下的系 統進行運算,以加速求解速度與擴大求解規模。

三、 缺點:

(一) 螞蟻演算法通常是應用在網路問題上面,以便螞蟻演算發進行求 解。因此,基本上螞蟻僅適用於組合最佳化問題,較不適合求解其 他數學規劃問題。

(二) 螞蟻演算法的參數設定較其他演算法多,因此在進行時除了參考過 去文獻的設定外,亦必須配合問題特性透過試誤法找出較適合的參 數值。

(三) 演算法所得之結果不一定為最佳解,除非演化過程中能提供區域搜 尋規則以加深搜尋深度。

2.4 平行計算

近年來,隨著半導體科技的進步,電腦計算的速度愈來愈快,體積也愈 來愈小,而價格卻不斷地下降,往日用以高速計算的超大型超級電腦已經幾 乎消失,取而代之的是以多個微處理器為核心的多處理器電腦,近幾年的多 處理器電腦系統是由多個工作站級的微處理器所組成,每個處理器(CPU)可 以同時各自進行數值運算與資訊處理工作,也就是一般所稱之平行電腦 (Parallel Computer),平行計算已被廣泛地應用於各個需高計算量的科學領域 之中,例如:氣象科學、醫學工程、生物基因工程、軍事、機械工程、天文 學、航太工程以及資訊工程等研究方面。

2.4.1 平行電腦

平行電腦依其工作的方式,可略分為三種系統【9、10】:(1)共用記憶體 平行電腦系統(Shared Memory Parallel System),(2)分散式記憶體平行電腦系 統(Distributed Memory Parallel System) , (3) 叢 集 式 處 理 系 統 (Clustering System)。

一、共用記憶體平行電腦系統(Shared Memory Parallel System)

共享式記憶體平行電腦簡稱SMP,是傳統超級電腦的縮小版。SMP

(38)

體及 I/O 相連接,而 CPU、記憶體及 I/O 等資源皆為共享,如圖 2.7 所 示。由於所有CPU 共用一塊記憶體,程式所使用的資料都存放在公用記 憶體內,每一個 CPU 皆至公用記憶體內讀取資料,透過十字交叉網 (Crossbar)或用系統巴士(System bus)連接,即可進行資料傳輸,因此 CPU 之間沒有資料傳輸問題。現階段SMP 電腦系統的 CPU 個數以兩個、四 個、八個最普遍,也有多到十六個、或三十二個 CPU 的機種,連結的 CPU 愈多成本愈高,這些 CPU 是在一個作業系統(例如 Solaris 和 AIX 等) 之下運作的。

圖2.7 共用記憶體平行電腦系統

二、分散式記憶體平行電腦系統(Distributed Memory Parallel System)

分散式記憶體平行電腦系統是一種分工程度更高的系統,它是指同 一台機器裡有多顆CPU,且各自擁有私屬的記憶體(Local Memory),又 稱為大量多處理器電腦(Massive Parallel Processors,簡稱 MPP),如圖 2.8 所示。在 MPP 電腦系統架構裡,每一個含 CPU 及私屬記憶體(Local memory)的子系統皆為各自獨立,不同處理器間無法直接互相存取資 料,唯有透過Message Passing 的方式,不同處理器之間才能傳遞資料,

整個系統也是由單一作業系統管理,例如IBM 的 SP2。

(39)

圖2.8 分散記憶體平行電腦系統 三、叢集式處理系統(Clustering System)

叢集式處理系統是多個獨立電腦的集合體,每一個獨立的電腦有它 自己的CPU、記憶體、和作業系統,利用高速網路連結在一起,形成一 個大型電腦系統,如圖 2.9 所示。目前常用的叢集式電腦系統是個人電 腦群(PC of Clusters),最簡單的個人電腦群是透過乙太網路(Ethernet)把若 干個分散的個人電腦連結在一起,並透過訊息傳送(Message Passing)語言 來進行資料的傳輸,常用的訊息傳送語言有 MPI (Message Passing Interface) 和 PVM (Parallel Virtual Machine)等多種。目前已經可以擴充到 256 或 512 個 CPU。

(40)

圖2.9 叢集式處理系統 2.4.2 個人電腦叢集(PC Cluster)

由於電腦性能愈來愈強大,且價格不斷降低,加上網路科技的進步,使 得個人電腦叢集系統已經成為近年來學術界與產業界最有興趣的電腦平台。

在 1994 年的夏季,美國太空總署(NASA)的 CESDIS 機構(the Center of Excellence in Space Data and Information Sciences)為了進行地球與太空科學計 畫,而嘗試用低廉而易得的電腦相關零件,來組裝大量平行電腦,以應付該 計畫所需處理的大量資訊與計算。因此,Thomas Sterling 和 Don Becker,將 十六個 Intel100MHzDX4 以 10Mbits/s Ethernet 組裝成一個叢集,並取名為

「Beowulf」。Beowulf project 很快地蔓延到 NASA 以及美國的其他研究單 位。1996 年的九月,美國的 Los Alamos National Laboratory (LANL)建置了一 個名為Loki 的叢集電腦系統,它是由 16 顆 Intel Pentium Pro 200 CPUs 所組 成,網路則為100Mbps Fast Ethernet,作業系統採用 Linux,平行運算與資料 傳輸用 MPI (Message Passing Interfacing);約略在同一時期,美國的 Jet Propulsion Laboratory (JPL)與加州理工學院(Caltech)也建置了一個極類似的 叢集,名為Hyglac。組成這兩個叢集所需的硬體、軟體與網路的整體配套,

就漸漸成為Beowulf 的標準內容【10】。

Beowulf 的成功與風行,是因為它很適時地把握住了微處理器及相關電

(41)

舉凡微處理器、主機板、記憶體、磁碟、網路介面等均可輕易地在市面上買 到,而作業系統、編譯器、資料傳輸工具等軟體功能也愈來愈強大;另一方 面,高速計算的需求與日俱增,平行計算與處理的技術日趨成熟。個人電腦 叢集的優點包括:

一、優越的價格性能比(price/performance)。

二、具選取零組件的彈性,可隨科技進展能快速調整零組件。

三、可因應需要重組系統架構,不受單一廠商牽制。

個人電腦叢集的歷史雖短,進展卻相當快速,它們所展現的效能與經濟 性,吸引了一批又一批的研發人員,陸續地將現有的或是新購的個人電腦串 連起來,個人電腦叢集之使用已經成為許多科學研究人員所尋求的替代平 台,也因此平行演算法也得以藉由個人電腦叢集的興起而蓬勃發展。國內也 有幾個單位已完成相關設備的建置,如國家高速電腦中心、中研院、中央天 文研究所等。

2.4.3 平行計算程式語言-MPI

叢集電腦在進行資料傳輸時,必須藉由訊息傳送語言來進行資料的傳 遞 , 常 見 的 如 MPI(Message Passing Interface) 或 PVM (Parallel Virtual Machine),本研究採用使用較為廣泛的 MPI 做為通訊的工具,相關介紹如下。

MPI 是第一個標準化的訊息傳輸平行語言,是 MPIF(Message Passing Interface Forum)制定標準與推行,可以使用在 Fortran 或 C 語言撰寫的程 式上,使用者毋須重新學習另一種語言來撰寫平行化程式;此外,MPI 適用 於各種類型的平行電腦,尤其是分散記憶體系統,因此MPI 主要的優點在於 可攜帶性與容易使用。目前所開放的MPI 軟體是屬於 MPI 1.1 版,它提供了 一百多種副程式供程式人員選用。

在 NT 環境下的 MPI 軟體到目前為止已衍生出多種之版本(如表 2.2 所 示),目前最通用的 MPI 軟體是由 Argonne 國家實驗室和 Mississippi 州立大 學所發展出來的免費軟體 MPICH,在 Unix、Linux 與 NT 平台上都可以找 到其衍生版本【5】。

(42)

表2.2 NT 環境下的 MPI 軟體

MPI 軟體 發展單位 支援的編譯器 軟體性質 WinMIPCH Mississippi

大學

Microsoft Visual C++ 目前Mississippi 大學不再繼 續支援WinMPICH,推出商業 版MPI/PRO

WMPI 葡萄牙 Coimbra 大學

Borland C++

Microsoft Visual C++

Digital Visual fortran

WMPI 1.2 免費軟體,WMPI 1.5 已變成商業軟體。

PaTENT MPI 4.0

EU Microsoft Visual C++

Digital Visual fortran

WMPI 之商業版本,使用與 設定簡單。

MPI/PRO for Window NT

MPI科技公 司

Microsoft Visual C++

Digital Visual fortran

是WinMPICH 商業化版本 MPICH.NT

1.2.0.4

Argonne National Lab

Microsoft Visual C++

Digital Visual fortran

目前為免費軟體,不過因為設 定過複雜,使用者不易上手。

MP-MPICH 1.2.0

RWTH Aachen

Microsoft Visual C++ 非商業軟體,但有使用之限制

資料來源:【5】

本研究使用的MPI 軟體為 Argonne National Lab 所發展之 MPICH,所 提供的副程式有一百多個,但是構成一個最簡單的 MPI 程式只需用到 6 個 MPI 副程式:MPI_Init、MPI_Comm_size、MPI_Comm_rank、MPI_Send、

MPI_Recv、MPI_Finalize,表 2.3 為常用 MPI 副程式之功能。

表2.3 常用之 MPI 副程式

MPI副程式 通訊方式 功能

MPI_Init

啟動平行計算工作

MPI_ Finalize

終止平行計算工作

MPI_ Comm_size

取得參與計算CPU數量

MPI_ Comm_rank

取得被分配之CPU編號

MPI_Send 點對點

傳送資料

MPI_Recv 點對點

接收資料

MPI_Bcast 集體 將資料廣播傳送至各電腦 MPI_Reduce 集體 接收廣播資料

MPI_Wtime 集體 平行程式執行時間

(43)

2.5 綜合討論

本節將對捷運列車排班現況、軌道列車排班文獻做一綜合討論,總結出 排班問題之所在,並且說明為何要導入平行螞蟻演算法做為求解演算法建構 之基礎。

從文獻回顧以及透過訪談可以發現,一般在進行軌道列車排班作業時,

由於班表產製的複雜性,都需要將班表分為基礎班表產製階段以及衝突檢核 與調整階段,在現行的捷運列車排班亦是如此。然而,過去研究多針對列車 衝突進行求解,蘇昭銘等人【15】指出基礎班表之產製品質將直接影響衝突 調整之產出結果,若在基礎班表中存在列車衝突數較高,則在進行列車衝突 調整時,不同列車間容易產生相互牽制的情形而難以進行排解,甚至可能無 法產生可行班表,也因此衝突調整亦會受到基礎班表的限制,進而影響最終 可行班表。因此,基礎班表產製的過程中,希望能將同一列車可以順利銜接 的班次越多越好,這樣不僅可以提高運行效率,亦可以降低列車數的使用,

以避免加車支援時列車進出機廠在合併點所產生的衝突。由上述討論,本研 究將嘗試找出能夠順利使班次銜接的方式,以增加列車運轉的效率,降低衝 突發生的可能性。

在衝突檢核與調整階段,現行的捷運列車排班作業往往依靠排班人員之 經驗自行調整衝突,在衝突調整過程中,除需調整相關衝突類型外,尚需滿 足營運班距之限制,由於各原始班表中產生衝突之個數與原因均不相同,導 致衝突調整之難易程度差異甚大,因此造成作業人員極大的困擾。衝突的產 生往往發生於捷運系統轉換時段列車進行收發車的時候,尖離峰時段之班距 密度變化以及所需要之車輛數不同,造成班次銜接的困難以及列車不同類型 衝突的發生。例如由離峰時段至尖峰時段時,折返站之發車班距密度會由疏 變密,因此在這個轉換時段容易發生到站班次(班距較疏)不易銜接發車班次 (班次較密)之情況,到站班次常必須透過增長或減少在折返站之停留時間以 銜接預定發車班次,若有銜接不上之情形就必須由機廠發出支援車輛,此時 由機廠所發出之班次很容易在進入主線的時候,與原本在主線上運行之列車 發生運行衝突,因此僅能提早或是延後發車時間,以調整發車班距的方式避 免衝突發生【8】。但是由於班距的不穩定,很容易會發生無法滿足號誌最小 開通時間與月台最小開通時間,因此也就造成許多班次產生停等的現象,旅 客往往在進站前必須停等另一班列車發車之後才能進站,同時也影響到下個 班次的銜接。在衝突調整階段往往是牽一髮而動全身,班次間往往互相影響 著,無法順利完成調整的工作,本質上是屬於組合最佳化問題。所以捷運列

(44)

組合與衝突調整。

從軌道排班的文獻回顧中得知,求解衝突的方法可分為數學規劃法、啟 發式演算法以及模擬分析法三類,其中又以啟發式演算法的效率較佳,能夠 迅速建構符合需求之列車班表。因此,本研究在進行捷運系統列車排班時,

欲尋求能夠有效處理組合最佳化問題之啟發式演算法,而螞蟻演算法在處理 組合最佳問題上具有相當不錯的表現,且在過去軌道列車排班相關的領域 中,尚未有文獻使用螞蟻演算法進行相關之研究,因此本研究嘗試利用螞蟻 演算法處理組合最佳化問題之優勢,以螞蟻演算法為基礎,發展一套能夠適 用在捷運列車排班作業之演算法,期以改善捷運列車排班效率,並降低排班 作業人員之負擔。

螞蟻演算法是一種特殊的尋優方法,藉由可分工合作的特性,有利於在 平行架構下的系統進行運算。然而,鐵路列車排班的求解規模往往十分龐大,

為了加快求解速度以及增加搜尋廣度,本研究嘗試提出一個高效率的平行計 算模式,利用蟻群演算法全域搜尋的能力,加上易於平行處理之特質,針對 捷運列車排班問題設計平行蟻群演算法(Parallel Ant colony optimization, PACO)以進行求解,期以縮短搜尋速度,提高計算效率。

參考文獻

相關文件

研究不同的、新的教學方法/模式 試教行動 Æ 分享經驗 Æ

協作 溝通 創造 批判性思考 運用資訊科技 運算 解決問題 自我管治 研習. 中一

求出 Select Case 運算式之值,並逐一與 Case 運算式值串列比對,若符合則執行該 Case 之後的敘述區段。1. 如果所有的

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

接下來的 FDTD 疊代運算將是整個計算的核心,也是運算量最大 的部分,在這中間,如何利用光波導的性質以及傳播常數等特徵參量

本研究考量 Wal-mart 於 2005 年方嘗試要求百大供應商需應用 RFID 技術 於商品上(最終消費商品且非全面應用此技術,另 Wal-mart

在與 WINS 有關的研究之中,除了研發感測器硬體這個領域之外,其它的領域均需要

本研究主要以 But-for 崩塌竣工時程分析技術為基礎進行理論推導,確認此延遲分析技術 計算邏輯之問題與完整性,之後提出修正之計算邏輯,使