20
1 TOPCO 崇越論文大賞 論文題目: 改良式蟻群最佳化演算法 報名編號: I0087

TOPCO 崇越論文大賞 論文題目: 改良式蟻群最佳化演算法thesis.topco-global.com/TopcoTRC/2013_Thesis/I0087.pdf · 1 topco 崇越論文大賞 論文題目: 改良式蟻群最佳化演算法

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    TOPCO 崇越論文大賞

    論文題目:

    改良式蟻群最佳化演算法

    報名編號: I0087

  • 2

    摘要

    時窗限制車輛途程問題(Vehicle Routing Problem with Time Windows, VRPTW)是

    一種組合最佳化問題,如何在車輛載重限制、客戶時窗限制、有限車數下進行最短

    距離的派車途程規劃屬於NP-hard問題,蟻群最佳化演算法(Ant Colony Optimization)

    是仿效螞蟻族群的覓食行為所發展而成的群體智慧演算法,過往常應用於許多困難

    的組合最佳化問題。然而,過早的收斂會使解容易陷入區域最佳解、演化速度過慢

    皆是其應用上的缺點。本研究提出改良式蟻群最佳化演算法(IACO)針對上述兩項缺

    點進行改良,(1)於費洛蒙更新時加入費洛蒙最大、最小值限制,並於解陷入區域最

    佳解時採用費洛蒙擾動機制(2)區域搜尋法由原先針對整個母體,調整成針對迴圈最

    佳解,可大幅減短運算時間。求解Solomon的VRPTW測試例題並與其它演算法之績

    效進行比較,根據結果發現,改良式蟻群最佳化演算法更新了4題文獻最佳解,且總

    途程距離較其它演算法少。

    關鍵詞:螞蟻演算法、費洛蒙、群體智慧演算法、時窗限制車輛途程問題

  • 3

    壹、 簡介

    一、 研究背景與動機

    組合最佳化問題種類繁多常見的包含車輛途程問題、投資組合最佳化問題和單

    元形成問題。時窗限制車輛途程問題(Vehicle Routing Problem with Time Windows,

    VRPTW),在實務上已有廣泛的應用,例如:宅配業者或是物流公司和校園巴士接送。

    其中時窗限制車輛途程問題的目標是總里程數最短,限制條件為每輛車均須自廠站

    出發並返回廠站、每位客戶只能被一輛車服務一次、每輛車的最大裝載容量不得超

    過最大限制容量、每位客戶只能在其允許的時窗範圍內進行服務,時窗範圍是由最

    早可被服務時間和最晚必須進行服務時間所規範而成。客戶的拜訪順序和車輛數的

    使用多寡會影響到車輛總旅行距離,如果客戶使用的車輛改變,拜訪順序也會因時

    窗而進行調整,在時窗限制下的車輛途程問題通常會遇到一些困難:因演化時是以時

    窗優先進行考量,如果客戶排序或是分群不佳會導致使用車輛的增加進而直接影響

    到總里程數,而解的品質優劣和計算時間長短通常是相衝突的。

    蟻群最佳化演算法(Dorigo and Gambardella, 1997)所提出,根據螞蟻族群搜尋食

    物的現象發展而成,螞蟻於覓食的旅程中會遺留特有的分泌物-費洛蒙(Pheromone)

    讓其牠螞蟻能知道其所走過的路徑。隨著越來越多的螞蟻經過相同的路徑,此路徑

    的費洛蒙亦隨之增加;另一方面,每一路徑的費洛蒙會隨著時間慢慢揮發,故每一

    隻螞蟻可以根據費洛蒙資訊來找尋離食物最近的相關路線。

    蟻群最佳化演算法應用於相關離散型最佳化問題雖然有優異的收斂速度,但往

    往被人詬病的是其解容易陷入區域最佳解且不容易跳脫,本研究提出於費洛蒙更新

    時加入費洛蒙最大和最小值的限制,於解的品質不再改善一段時間後進行費洛蒙擾

    動,增加其跳脫區域最佳解的機率。

    二、 研究範圍與限制

    本研究的基本大略限制如下 :

    1. 廠站只有一個

    2. 客戶需求點固定

    3. 客戶需求量已知

    4. 車輛裝載容量和車輛數受限

    5. 每個客戶需求點僅可被服務一次

    6. 所有客戶需求點服務完畢後再回到原廠站

  • 4

    7. 車輛須在客戶的時窗範圍內進行服務

    三、 研究方法與流程

    本論文研究方法與流程如下 :

    1. 範圍界定 : 本研究的範圍包括時窗限制車輛途程問題、蟻群演算法。

    2. 文獻探討 : 搜集相關的文獻了解各篇的方法論並分析演算法優劣。

    3. 研究方法 : 本研究以蟻群演算法為基礎,搭配區域搜尋法並提出結合費洛蒙

    最大、最小限制方法和費洛蒙擾動機制解決時窗限制車輛途程問題。

    4. 本研究以 java 程式語言撰寫。

    5. 進行完所有實驗後,與其它相關論文比較實驗結果。

    四、 論文架構

    本論文的架構如下 : 第貳章介紹文獻對解決時窗限制車輛途程問題所使用的

    演算法及所提出的方法;第參章介紹本論文所提出的方法論、費洛蒙最大、最小限制、

    費洛蒙擾動機制、採用的區域搜尋法;第肆章探討本研究的實驗結果,並與其他文獻

    的結果做比較,同時說明參數設定;第伍章說明本研究的貢獻與未來的研究方向。

    貳、 文獻探討

    一、 時窗限制車輛途程問題

    (Dantzig et al. 1959)提出 VRP 後,目前已發展出多種應用形式。於 1981 年車輛

    途程問題的解題難度被證明屬於 NP-hard 問題(Wan et al. 2012),故一般精確求解演

    算法(exact algorithms) 如動態規劃法(Dynamic Programming)及分支界限法 (Branch

    and Bound),均無法在有限或合理的時間內求得大型 VRPTW 問題的最佳解。而巨

    集啟發式演算法(meta-heuristic algorithms)的特徵就是演化的解會逐漸朝向更佳的方

    向前進,且有一定能力搜索其它未探索過的區域,避免最終陷入過早收斂又跳不出

    區域最佳解的情況。巨集啟發式演算法包括基因演算法(Genetic Algorithm,GA)、模

    擬退火演算法(Simulated Annealing,SA)、禁忌搜尋法(Tabu Search,TS)、蟻群最佳

    化演算法(Ants Colony Optimization,ACO)、粒子群最佳化演算法(Particle Swarm

    Optimization,PSO)、細菌覓食最佳化演算法(Bacterial Foraging Optimization,BFO)、

    蜜蜂演算法(Artificial Bee Colony Algorithm,ABCA)等等。

    其中如果用解的數量來進行區分,則可以將上述演算法區分為單一解和群體解

    (Population Based)兩類,模擬退火法和禁忌搜尋法屬於單一解;基因演算法、蟻群

    最佳化演算法、粒子群最佳化演算法、細菌覓食最佳化演算法、蜜蜂演算法屬於群

    體解,而蟻群最佳化演算法、粒子群最佳化演算法、細菌覓食最佳化演算法等等也

  • 5

    被稱為群體智慧演算法(Swarm Intelligence Algorithm)。

    SA 最早由(Kirkpatrick et al. 1983)所提出,為巨集啟發式演算法的一種,一般的

    區域搜尋法只接受更好的鄰域解(Neighboring Solution),但 SA 給予一定的機率接受

    未改善的鄰域解,增加多元性,但如果較好的區域離目前較遠時,SA 通常無法跳出

    區域最佳到更好的地方,現在則常用於初始解的建構或事後其區域搜尋的微調。

    (Baños et al. 2013)將 SA 應用於 VRPTW,並提出使用平行模擬退火法來進行多目標

    派車時窗問題求解,其突變採用多種區域搜尋法,使用母體來當作解的表達,每一

    個母體即為一個途程,初始解透過時窗緊迫性來產生。演化過程中直接對母體進行

    演化,透過模擬退火演算法結合其區域搜尋運作子來演化。(Bent et al. 2006)提出兩

    階段式的混合退火模擬演算法來進行多目標派車時窗問題求解。透過退火模擬演算

    法來盡可能縮減車輛數,並在第二階段使用最近鄰居區域搜尋法來對各途程進行排

    序,進而縮減車輛行走距離。優點是針對大型題目時依然可以保有很好的結果,且

    標準差小。

    TS(Tabu search)最早由(Glover 1989)所提出,於演算過程中會記住先前的搜尋結

    果以避免陷入區域最佳解。(Ho et al. 2004)提出利用禁忌搜尋法來進行多目標派車時

    窗問題求解,禁忌搜尋法中的移動步伐改由車間互換、車內互換、單點插入和區間

    插入等區域搜尋法來取代。演算法進行中便採用上述幾種區域搜尋法來進行演化。

    優點是收斂速度快。缺點是若題庫較為複雜,不易找到最佳解。(Kang et al. 2008)等

    人提出利用禁忌搜尋法來進行多目標派車時窗問題求解,每一步伐採用車間交換來

    運作,並搭配車內排序做為區域搜尋法,於適應值的計算中加入時窗因素做為考量,

    並於當中加入貫性權重,透過慣性權重的變化來影響求解的品質。

    SA 與 TS 的解的品質較依賴初始解,如果初始解區域離真實最佳解區域很遠

    時,往往很難透過演化跳脫區域最佳,所以群體為基(Population Based)演算法改善

    了這缺點,所以像 GA 對初始解的要求不會這麼嚴苛之外,還有著演化學習機制可

    以擺脫掉陷入區域最佳。

    (Tsukahara 2008)提出利用基因演算法中每一條染色體代表一個途程,突變則採

    用插入法、車內互換和車間互換方式。(Cheng et al. 2009)提出利用基因演算法來進

    行多目標派車時窗問題求解,基因演算法主要用於分群,母體染色體共兩列,一列

    為顧客,另一列為服務該顧客的車號。當產生初始解後即可切割完整解,將各途程

    視為一組分支,並將其排序,再將各分支匯整回完整解,如未達到迴圈終止條件則

    繼續進行基因演算法流程。優點是採用先分群後排序的方式處理,分群前期時保有

    多樣性的特點,隨著世代的演進會逐漸收斂。

    (Yue-Jiao Gong 2012)提出離散式粒子群體最佳化期解決多目標派車時窗問題,

  • 6

    粒子中包含顧客拜訪順序的機率,其速度向量更新時會調整粒子中的機率大小並加

    以匯整,更新公式也因離散版而進行了修改,每個運算子給予新的定義,在時間的

    問題處理中使用了時窗緊迫性的啟發式演算法,顧客拜訪順序的機率會因緊迫程度

    不同而有所改變,並透過區域搜尋法來盡可能減少使用的車數,解的表達為顧客數+

    車輛數+1 的陣列長度,此方法優點為分群排序可以同時進行,不須採用兩階段或分

    層式的處理,直接對粒子的機率進行演化,即使至演化晚期依舊保持著解的多樣性,

    缺點是當遇大型問題時,收斂速度不佳且計算時間耗時,須調校或控制演算法多個

    參數。

    二、 蟻群最佳化演算法

    (Dorigo et al. 1997)提出蟻群最佳化演算法,主要是模仿自然界螞蟻族群搜尋食

    物的現象發展而成,螞蟻於覓食的旅程中會遺留特有的分泌物-費洛蒙(Pheromone)

    讓其他螞蟻能知道其所走過的路徑。隨著越來越多的螞蟻經過相同的路徑,此路徑

    的費洛蒙亦隨之增加;另一方面,每一路徑的費洛蒙會隨著時間慢慢蒸發,故每一

    隻螞蟻可以根據費洛蒙資訊來找尋離食物最近的相關路線。

    每一隻螞蟻根據建構解準則依序產生一組途程解詳見公式 2.1,等待螞蟻們皆建

    構完解後,運用區域搜尋法改善每一隻螞蟻所建構的途程解,從蟻群中篩選出旅行

    距離最短的螞蟻進行全域的費洛蒙更新,詳見公式 2.2、公式 2.3。

    ν = {arg max𝑗𝜖𝑈[(τ𝑖𝑗)

    α(𝜂𝑖𝑗)

    𝛽], q < 𝑞0R , q > 𝑞0

    2.1

    R ∶ 𝑃𝑖𝑗 =(τ𝑖𝑗)

    α(𝜂𝑖𝑗)

    𝛽

    ∑ (τ𝑖𝑗)α(𝜂𝑖𝑗)𝛽𝑗𝜖𝑈

    U 是未拜訪過的節點集合,τij是節線(i,j)的費洛蒙數量,ηij 是節線(i,j)的距離倒

    數,α和β是決定費洛蒙和距離節省值的相對重要性參數,q則是一個符合均等分配,

    介於 0 到 1 之間的隨機亂數,而q0 則為預設之參數(0 < q0 < 1)。q0大於或等於 q 時

    則採用確定性準則,相對的,q0小於 q 則採用機率性準則。確定性準則表示當節線

    (i,j)的 arg 值為最大時,節點 j 將成為螞蟻下一個拜訪的點;而機率性準則是先將所

    有Pij值進行累加,再隨機產生一個介於 0 到 1 且符合均等分配的隨機亂數,接著,

    以此亂數所落入的區間來決定螞蟻所要拜訪的下一個節點,故當節線(i,j)的Pij值越大

    時,表示節點 j 越有機會成為螞蟻下一個拜訪的節點。

    𝑖𝑗 = 𝑖𝑗

    𝑖𝑗 (2.2)

  • 7

    𝑖𝑗 = {

    , ( , )

    ,

    (2.3)

    公式 2.2 和 2.3 為費洛蒙更新公式,其中,Q 是一個常數,關係到費洛蒙灑的值

    多寡, 代表的是區域最佳解, 𝑖𝑗 為上一個世代費洛的數值, 是費洛蒙的衰退

    速度(0 < < 1),本研究針對每一世代的迴圈最佳解進行費洛蒙更新,以期達到加速

    求解的效率。

    參、 方法論

    在求解 CVRPTW 問題時,需要考慮到客戶拜訪的順序和客戶所使用的車輛,

    蟻群最佳化演算法是同時對客戶進行分群和排序,螞蟻於挑選顧客的同時會考量時

    窗和載重的限制條件並根據挑選顧客的先後順序不同進而達到排序的作用,當已無

    客戶符合限制條件時便會返回廠站,藉此達到分群的功用。

    一、 數學模型

    此節介紹了 CVRPTW 標準的數學模型,包括符號、目標函式、限制式。

    符號

    0 : 廠站;

    N : 顧客數;

    K : 車輛數;

    𝑞0: 代表顧客 i 的需求;

    𝐶𝑖𝑗: 從顧客 i 到顧客 j 的距離;

    E𝑇𝑖 : 顧客 i 最早可以被服務的時間;

    𝑇𝑖 : 顧客 i 最晚必須被服務的時間;

    Q : 每輛車的載重限制;

    𝑥𝑖𝑗𝑘 : 為 0-1 變數,由客戶 i 至 j 的旅途是否由車輛 k 所服務,1 表是;0 表否;

    𝑦𝑖𝑘: 為 0-1 變數,客戶 i 是否由車輛 k 所服務,1 表是;0 表否;

    目標函式

    MinZ =∑∑∑Cijxijk

    n

    k=1

    n

    j=0

    n

    i=0

    (3.1)

  • 8

    限制式

    ∑qiyik ≤ Q k = 1,2, … , K

    N

    i=1

    (3.2)

    ∑y0k = K

    K

    k=1

    (3.3)

    ∑yik = 1 i = 1,2, … , N

    K

    k=1

    (3.4)

    ∑xi0k = 1 k =

    N

    i=1

    1,2, … , K (3.5)

    ∑xijk = yj

    k j = 1,2, … , N k = 1,2, … , K

    N

    i=0

    (3.6)

    ∑xijk = yi

    k i = 1,2, … , N k = 1,2, … , K

    n

    i=0

    (3.7)

    ti ≥ ETi i = 1,2, … , N (3.8)

    ti wi ≤ Ti i = 1,2, … , N (3.9)

    公式(3.1) : 總成本最小化,這邊的成本指的是車輛行走距離。

    公式(3.2) : 每輛車所服務的總需求不可超過最大車容量限制。

    公式(3.3) : 每輛車皆須從廠站出發。

    公式(3.4) : 每個客戶皆須被拜訪,且只能被一輛車拜訪一次。

    公式(3.5) : 每輛車最後必須回到廠站。

    公式(3.6)、公式(3.7) : 維持每輛車於每個顧客的連續性。

    公式(3.8)、公式(3.9) : 確保顧客在時窗限制內被服務。

  • 9

    二、 改良式蟻群最佳化演算法基本概念

    原始的蟻群最佳化演算法容易有以下缺點 : (1)容易陷入區域最佳解、(2)演化過

    程需耗費較多時間、(3)不易調整參數來求取較佳的最佳解。為了避免上述這些缺失,

    許多學者針對蟻群最佳化演算法進行改良和研究,(Stutzle et al. 1997)透過設定費洛

    蒙最大、最小限制來避免收斂過快陷入區域最佳解,但參數的調整卻造成了過多的

    演化時間。(Karl Doerner 2002)提出利用節省法應用於蟻群演算法來進行多途程派車

    時窗問題求解,於小型問題時容易看出成效,遭遇大型問題時不易改善解的品質。

    (Wang 2009)結合 2-opt 和插入法和蟻群演算法來進行求解,演化速度變快但大型問

    題時成效較差。(Hongling et al. 2010)結合了時窗懲罰法和動態調整的慣性權重,讓

    蟻群可隨時間演化調整全域和區域搜尋的比例,實驗例子依然以小題目為主。(Cruz

    et al. 2011)混合禁忌搜尋法作為區域搜尋來改良蟻群演算法易陷入區域最佳解的問

    題,蟻群建構解時的參數設計則採用掃描法和時窗緊迫性來導引螞蟻建構解,雖比

    較實驗題目不多但得到了不錯的成果。(Yu et al. 2011)運用禁忌搜尋法作為蟻群演算

    法的區域搜尋工具,演化過程中會判斷全域最佳解是否進入停滯期,如果進入了停

    滯期,便會進入禁忌搜尋法利用禁忌搜尋法強大的區域搜尋功能來避免陷入區域最

    佳解。(Ding et al. 2012)採用動態參數調整、費洛蒙最大、最小限制避免螞蟻過早陷

    入區域最佳解,並採用 2-opt 和 or-opt 來縮短演化時間,實驗結果顯現了非常好的成

    果。

    透過上述整理可得知,蟻群最佳化演算法應用於時窗派車途程問題上容易有下

    述缺點(1)收斂速度過快,容易陷入區域最佳解(2)演化過程容易耗費大量時間(3)當顧

    客數增加時,越難求取最佳解(4)參數會影響求解的績效品值,針對不同題型的題目

    需要有不同的參數來進行調整。

    本研究所提出的改良式蟻群最佳化演算法主要針對(1)、(2)點進行改良,採用節

    省法取代原有的距離公式,並搭配 2-opt 和 or-opt 來作為區域搜尋法,透過判斷全域

    最佳解是否於一定迴圈次數內無改善,可得知解是否陷入區域最佳解,若陷入區域

    最佳解時便採用費洛蒙擾動法則,增加蟻群系統於建構解的過程中選到不易選到的

    路徑,進而跳脫區域最佳解,在費洛蒙更新時採用費洛蒙最大、最小的限制,可有

    效避免收斂過快陷入區域最佳解。

  • 10

    改良式蟻群系統主要流程如下 :

    1. 初始化相關參數

    針對費洛蒙初始參數、螞蟻隻數、區域搜尋法執行次數、迴圈次數等等進行

    設定。

    2. 蟻群系統建構途程解

    所有的螞蟻皆須完成建構途程解的動作後,才會繼續進行下一個流程,為節

    省演化時間,不須在螞蟻建構完途程解後立即進行費洛蒙的更新,於此階段

    會挑出迴圈最佳解的螞蟻,於流程 3 會進行區域搜尋法。

    3. 運用區域搜尋法改善螞蟻所建構的途程解

    本文所採用的區域搜尋法共包含 2-opt 和 or-opt,於每一次進入區域搜尋法

    後會先進行 2-opt 再進行 or-opt,重覆直至區域搜尋法執行次數,因 2-opt

    牽涉到車輛間的顧客交換,而 or-opt 僅為車輛內顧客順序改善,因此先執行

    2-opt 才會進行 or-opt。

    4. 判斷是否需要使用費洛蒙擾動機制

    費洛蒙擾動的判斷依據為全域最佳解停止更新的迴圈數是否大於 30,如果

    大於 30 便判斷解陷入區域最佳解,須要使用費洛蒙擾動機制,進而增加解

    的多元性,擾動時針對迴圈最佳的費洛蒙擾動即可,目的在於讓過度集中的

    費洛蒙進行揮發。

    5. 費洛蒙更新

    於費洛蒙更新階段時會先將路徑上的費洛蒙進行揮散,再針對迴圈最佳解上

    的路徑灑上費洛蒙,提供螞蟻建構解時一個重要依據,費洛蒙更新完畢後,

    再判斷費洛蒙是否過於集中或是稀疏,針對兩種不同情況調整費洛蒙值。

    6. 全域最佳解更新

    判斷迴圈最佳解是否優於全域最佳解,如果有的話則進行取代。

    7. 判斷迴圈數是否到達終止條件,是的話跳脫迴圈,輸出最佳解,否的話重複

    流程 2 到 6。

  • 11

    參數設定

    螞蟻建構途程解

    所有螞蟻是否皆完成途程建構解

    判斷是否進行費洛蒙擾動

    計算迴圈最佳解,進行2-opt和or-opt

    費洛蒙更新

    是否抵達迴圈最大數

    輸出最佳解

    費洛蒙擾動

    全域最佳解更新

    開始

    結束

    圖 1 改良式蟻群演算法流程圖

  • 12

    三、 解字串表達形式

    解字串的表達在演算法中是很重要的一環,在此說明蟻群系統所採用的解字串

    代表意思,每隻螞蟻代表的是所有車輛的拜訪途程。其中 0 代表的是廠站,正整數

    1 到 N 代表的是客戶,廠站與廠站中間的區塊代表的是區塊內的顧客皆被相同車輛

    所服務。以[0,3,2,9,0,6,10,8,0,7,5,4,1,0]解字串為例,顧客 3、2、9 被第一台車所服務,

    顧客 6,10,8 被第二台車所服務,顧客 7、5、4、1 被第三台車所服務。假設共有

    N 位客戶,使用了 K 輛車,則解字串的長度為 N+(K+1),採用此種解字串的優點是

    (1)欲計算該螞蟻的總旅程距離時,透過此種字串表達方式不需任何轉換模式可以快

    速求解(2)解字串的表達,直接表示了客戶的分群和於途程內的排序,不需透過任何

    轉換模式。

    四、 蟻群系統建構途程解

    改良式蟻群系統可以將客戶同時進行分群和排序,在每一個世代中,有 m 隻螞

    蟻獨立地進行建構途程解,每隻螞蟻皆從廠站出發挑選下一個服務的客戶,於挑選

    的同時必須考量車輛的載重限制和客戶的時窗限制,一旦皆無客戶符合限制式時便

    返回廠站,之後由第二輛車從廠站出發挑選客戶進行服務,直至所有客戶皆被服務。

    其中,見公式 2.1,𝜂𝑖𝑗 由 𝑖𝑗進行取代, 𝑖𝑗 代表的是節線(i,j)的途程距離節省值,

    節省法由(Clarke et al. 1964)所提出,是一種簡單且有效率的方法,其基本原理在於

    初始設定時將每個客戶皆設定成由不同車輛所服務,例如:共有 30 個客戶,初始設

    定時則有 30 輛車來服務這些客戶,之後針對成對的客戶來計算如果將成對的客戶由

    原先兩輛車所服務更動成由一輛車一併服務的話,距離會節省多少,此節省多寡即

    為節省值,節省值參考公式為公式 3.10。

    𝑖𝑗 = 2 0𝑖 2 0𝑗 0𝑖 0𝑗 𝑖𝑗

    = 0𝑖 0𝑗 𝑖𝑗

    3.10

    廠站

    i j

    廠站

    i j

    圖 2 節省法示意圖

  • 13

    五、 區域搜尋法

    在 m 隻螞蟻皆完成建構途程解後,從這 m 隻螞蟻中挑選一隻總旅程距離最短的

    螞蟻來進行 z 次的區域搜尋法。在每一次的區域搜尋法皆包含 : (1)2-opt、(2)Or-opt,

    本研究先採用 2-opt 改善途程解後再以插入法進行第 2 次的改善。

    本文所使用的 2-opt 是參考於(Müller 2010),透過任意 2 條節線互換,進而改變

    車輛之間的成員配置和拜訪順序,在交換前要先檢查交換後是否符合所有限制條件,

    如果符合才可進行交換,倘若不符合則重新篩選欲進行 2-opt 的 2 條節線,參考示意

    圖如圖 3。

    廠站 廠站

    圖 3 2-opt 示意圖

    廠站

    j

    i

    j+1

    廠站

    j

    i

    j+1

    圖 4 Or-opt 示意圖

  • 14

    本文所使用的 Or-opt 是參考於(Müller 2010)提出的方法,透過插入法的方式將

    客戶進行車內插入,進而改變該客戶其服務順序,在進行插入前須先檢查插入後是

    否符合所有限制條件,如果符合才可進行交換,倘若不符合則重新篩選欲進行 Or-opt

    的客戶,參考示意圖如圖 4。

    六、 費洛蒙擾動機制

    (Kao et al. 2012) 提出針對容量限制車輛途程問題的費洛蒙擾動機制,於最佳解

    的品質經過一定的世代皆無改善後進行費洛蒙擾動,全體的費洛蒙皆有機會進行擾

    動,並與擾動過後重新回到螞蟻建構解的步驟。

    本文所採用的費洛蒙擾動時機點為目前最佳解的品質經過一定的世代皆無改善

    後進行費洛蒙擾動,但針對的是區域最佳解的費洛蒙而不是全體的費洛蒙來進行擾

    動。當最佳解停滯不前時,往往是費洛蒙過度集中於該最佳解上,為了避免此現象

    繼續發生,因此需要適度的調低區域最佳解的費洛蒙值,區域最佳解的每一段路線

    會有一個擾動參數 γ,在此設為 0.5,意思為區域最佳解上的每一段路徑皆有 50%機

    率被挑選進行擾動,路徑被挑選進行擾動後,會產生一隨機亂數 λ(0 < λ

  • 15

    𝑖𝑗 = { , 𝑖𝑗 ≥ ( 𝑖 ) 2, 𝑖𝑗 < 𝑖

    (3.11)

    肆、 實驗及比較

    本節將驗證本研究所提出的演算法效能,並與其它文獻進行比較。本論文程式

    由 Java 撰寫,執行於 AMD Athlon(tm)7750 Dual-Core Processor 2.71GHz CPU、3GB

    記憶體的個人電腦環境。本研究在時窗限制方面,採用硬性時窗進行求解,所以車

    輛到達時間若早於顧客所要求的時窗下限,則必須等待至時窗下限才能開始進行服

    務;而車輛到達時間則不能超過時窗上限。此外,目標函式僅考慮總途程距離的最

    小化,車輛使用數的最小化則不考慮。

    一、 Soloman VRPTW測試例題

    本研究使用Solomon(1987)提出的56題VRPTW測試例題來進行求解,可於網站

    http://www.idsia.ch/~luca/macs-vrptw/problems/welcome.htm下載,並將結果與現有最

    佳解進行比較。Solomon 之測試例題可分為R1、R2、C1、C2、RC1、RC2 等六組

    不同類型之問題,共56 個小題。問題包含有需求點位置、車容量與時窗鬆緊度等,

    各組例題之共同特性有:均有100 個需求點、需求點散佈在 100 × 100 之歐基里德

    平面上、距離與車程時間成線性轉換 (車程時間與位置互為獨立) 以及時窗均以常

    態分配產生。各類例題在需求點分佈的差異為:R 類之需求點為亂數產生,C 類則

    是以集群的方式產生,而RC 類則混和R 與C 類產生需求點位置;在時窗的鬆緊度

    方面,第一類例題 (R1、C1、RC1)的時窗較為狹小且車容量較小,而第二類 (R2、

    C2、RC2)的時窗則較為寬鬆且車容量較大,因此,第二類例題產生出來的解往往都

    是使用車數較少且單一車輛服務較多顧客。本研究將各組例題之特性整理如表一所

    示。

    表一

    類型 題數 車容量 全程時間 服務時間 需求點位置 時間鬆緊度

    R1 12 200 230 10 亂數產生、均一分配 窄

    R2 11 1000 1000 10 亂數產生、均一分配 寬

    C1 9 200 1236 90 群集 窄

    C2 8 700 3390 90 群集 寬

    RC1 8 200 240 10 混合R、C 窄

    RC2 8 1000 960 10 混合R、C 寬

    http://www.idsia.ch/~luca/macs-vrptw/problems/welcome.htm

  • 16

    二、 參數設定介紹

    參數設定和調整在時窗限制車輛途程問題中是非常重要的ㄧ環,本文針對

    表1共有六大類型的題目進行實驗和測試,採用一致性的參數。螞蟻隻數的設定

    主要參考於(Ding et al. 2012),螞蟻隻數太少會造成解的多元性太少,容易陷入

    區域最佳解,太多則會影響演算法運行時間。z為區域搜尋次數多寡,次數過多

    會影響演算法運行速度,增加耗費時間,次數過少不易有效改善解的品質。t

    為迴圈最大數限制。α為費洛蒙對建構途程解的相對影響力,(Dorigo et al. 1997)

    採用的範圍為[2,5],但該參數為TSP問題且顧客較少,為避免收斂速度過快,

    該值不可過大。β為決定距離節省值對建構途程解的相對影響力,距離最小化是

    本研究的最主要目標,故該值不可過小,主要參考於(Dorigo et al. 1997)和(陳家

    和 et al. 2005)。ρ為費洛蒙揮發參數,為適應較多顧客數和避免費洛蒙過於集中,

    相關設定參考(Kao et al. 2012)。 、 𝑖 為費洛蒙最大、最小限制,透過實

    驗多次後自行調校設定。𝑞0為決定建構時有多少機率採用確定性準則。

    本研究所使用到的參數共有:

    m : 螞蟻隻數,設定為[0.3n,0.4n],n為顧客數。

    z : 區域搜尋次數,設定為15次。

    t : 迴圈最大數限制,設定為1000次。

    α : 採用[2,3]。

    β : 採用[4,6]。

    ρ : 採用0.5。

    : 費洛蒙最大限制,設定為1。

    𝑖 : 費洛蒙最小限制,為確保費洛蒙差距夠顯著,設定為1 1 。

    𝑞0 : 為確保建構解時有較高機率採用確定性準則,設定為0.85

    三、 實驗結果

    本研究提出以ACO作為主體針對其(1)容易收斂速度過快,導致陷入區域最佳解

    (2)演化過程容易耗費大量時間,進行改良。採用費洛蒙擾動機制和費洛蒙最大、最

    小限制避免過快陷入區域最佳解,並結合區域搜尋法減少演化時間,在實驗設計時

    將與一些著名的群體智慧演算法進行比較,例如:模擬退火法(Tan et al. 2001)、基因

    演算法(Thangiah et al. 1994)以及原版、改良和混合式螞蟻演算法進行比較(Chen et al.

    2005)、(Balseiro et al. 2011)、(Ding et al. 2012),比較的題目為12題,分別從R1、R2、

  • 17

    C1、C2、RC1、RC2這6大代表題庫中各取2題,實驗數據整理如表二所示:黑色粗體

    字代表為眾多比較演算法中最佳的結果。相關比較整理如下:

    和原版蟻群演算法比較,改良式蟻群演算法於12題比較中皆可以產生較佳

    或是近似解(100%)

    和GenSAT演算法進行比較,改良式蟻群演算法於10題比較中皆可以產生較

    佳或是近似解(83%)

    和SATabu演算法進行比較,改良式蟻群演算法於10題比較中皆可以產生較

    佳或是近似解(83%)

    和IACS-SA演算法進行比較,改良式蟻群演算法於9題比較中皆可以產生較

    佳或是近似解(75%)

    和MASCS-IH演算法進行比較,改良式蟻群演算法於8題比較中皆可以產生

    較佳或是近似解(67%)

    和HACO演算法進行比較,改良式蟻群演算法於8題比較中皆可以產生較佳

    或是近似解(67%)

    透過上述比較可得知,本研究所提出的改良式蟻群演算法在眾多比較文獻中極

    具競爭力,進一步針對題目類型分析可發現:

    R1系列為客戶為均勻的隨機分配,客戶彼此距離有近有遠,但時窗的鬆緊度較

    窄,改良式蟻群演算法於建構解時會先篩選出時窗允許的顧客中距離節省值較大的

    顧客優先來進行拜訪,進而縮短總途程距離,因此本研究針對R1系列的成效有著優

    異的成效。

    R2系列的時窗的鬆緊度較R1系列來的寬鬆,時窗寬鬆會使得單一車輛可服務的

    顧客數較多,車內顧客拜訪的先後順序會高度影響到總途程距離,本研究針對R2系

    列兩個例題測試,R2-02全部文獻中最佳,但R2-05仍和文獻最佳值有約4%的誤差。

    C系列有著客戶群聚的特性,客戶彼此之間的距離較小,因此總途程距離都較其

    它類型的題目來的少,誤差也相對的較少,本研究於C1-05和C2-01皆為文獻中最佳

    解,其餘兩個例題雖未達到最佳解,但誤差值皆小於0.1%。

    RC1系列為混合R、C系列且時窗鬆緊度較窄的類型,在解題難度上較R、C系列

    較為困難許多,和文獻結果表較可看出RC1-01這個例題有著非常顯著的改善,

    RC1-03雖也有不錯的成果,但離文獻最佳解仍有4%的誤差。

    RC2系列為混合R、C系列且時窗鬆緊度較寬鬆的類型,其解題難度為所有系列

    中最高,時窗寬鬆度較為寬鬆的關係,每輛車所服務的顧客數較RC1系列平均多出

    了2到3倍,客戶的拜訪順序有著較多的選擇與組合,在這系列中,本研究依然於

  • 18

    RC2-05得到全部文獻中最佳的結果,而RC2-08的成效則較不顯著。

    透過表二和題型分析可以發現,本文所提出的改良式蟻群演算法在眾多比較文

    獻中極具競爭力,在R1-11和RC1-01以及RC2-05這三個例題的實驗結果較其它文獻

    來的非常顯著,但是針對時窗較為寬鬆的題型仍有改善空間,未來可以朝參數設定

    上採用自適應值方面進行改善。

    表二 和其他文獻進行比較

    Problem

    ACO

    IACS-SA (Chen et al.

    2005)

    MASCS-IH (Balseiro et

    al. 2011)

    GenSAT (Thangiah et

    al. 1994)

    SATabu (Tan et al.

    2001)

    HACO (Ding et al.

    2012)

    IACS

    NV TD NV TD NV TD NV TD NV TD NV TD NV TD

    R1-11 19 1702 19 1671 19 1651 18 1677 19 1655 18 1611 13 1440

    R1-11 13 1187 11 1112 10 1097 10 1151 12 1091 12 1090 9 1002

    C1-05 10 879 10 829 10 829 10 829 10 829 10 829 10 829

    C1-07 10 860 10 829 10 829 10 829 10 829 10 831 10 832

    RC1-01 14 1789 15 1653 14 1697 14 1669 14 1678 14 1634 11 1463

    RC1-03 12 1256 11 1285 11 1262 13 1207 12 1196 11 1133 10 1205

    R2-02 6 1242 4 1102 3 1192 4 1176 6 1078 6 1130 7 1048

    R2-05 5 1168 3 1033 3 994 3 1128 5 1049 4 1037 4 1041

    C2-01 3 643 3 592 3 592 3 591 3 592 3 592 3 591

    C2-06 4 685 3 588 3 588 3 588 4 654 3 589 3 589

    RC2-05 5 1517 4 1344 4 1298 4 1389 6 1426 4 1346 7 1209

    RC2-08 4 915 3 848 3 829 3 919 5 943 3 839 3 866

    註 : NV : 總使用車數

    TD : 總途程距離

    伍、 結論

    本研究提出的方法論是一種改良式的蟻群系統,它結合了區域搜尋法和費洛蒙

    最大、最小值限制以及費洛蒙擾動機制進行 CVRPTW 的求解,客戶分群解的長度

    只有[顧客數+車輛數+1],可以在演化時縮短運算時間。在典型的 ACO 中有著容易

    陷入區域最佳解的問題,透過費洛蒙擾動機制和費洛蒙最大和最小值的限制可以有

    效改善此問題,區域搜尋法只須針對區域最佳解進行,不再需要針對每一隻螞蟻來

    進行,蟻群系統又有可同時進行分群和排序的特點,達到了收斂快又不易陷入區域

    最佳解的特質,未來可針對參數部分進行進一步研究,如何讓參數針對不同的題型,

    於演化的過程中進行自適應調整,進而加速演化流程或提高求解績效。

  • 19

    參考文獻

    Baños, R., Ortega, J., Gil, C., Fernández, A., and de Toro, F. 2013. "A Simulated

    Annealing-based parallel multi-objective approach to vehicle routing problems

    with time windows," Expert Systems with Applications (40:5), pp 1696-1707.

    Balseiro, S., Loiseau, I., and Ramonet, J. 2011. "An ant colony algorithm hybridized with

    insertion heuristics for the time dependent vehicle routing problem with time

    windows," Computers & Operations Research (38:6), pp 954-966.

    Bent, R., and Hentenryck, P. V. 2006. "A two-stage hybrid algorithm for pickup and

    delivery vehicle routing problems with time windows," Computers & Operations

    Research (33:4), pp 875-893.

    Chen, C.-H., and Ting, C.-J. 2005. "A hybrid ant colony system for vehicle routing

    problem with time windows," Journal of the Eastern Asia Society for

    Transportation Studies (6:10), p 2.

    Cheng, C.-B., and Wang, K.-P. 2009. "Solving a vehicle routing problem with time

    windows by a decomposition technique and a genetic algorithm," Expert Systems

    with Applications (36:4), pp 7758-7763.

    Clarke, G., and Wright, J. 1964. "Scheduling of vehicles from a central depot to a number

    of delivery points," Operations research (12:4), pp 568-581.

    Cruz, J. J., Paternina-Arboleda, C. D., Cantillo, V., and Montoya-Torres, J. R. 2011. "A

    two-pheromone trail ant colony system—tabu search approach for the

    heterogeneous vehicle routing problem with time windows and multiple

    products," Journal of Heuristics).

    Dantzig, G. B., and Ramser, J. H. 1959. "The truck dispatching problem," Management

    science (6:1), pp 80-91.

    Ding, Q., Hu, X., Sun, L., and Wang, Y. 2012. "An improved ant colony optimization and

    its application to vehicle routing problem with time windows," Neurocomputing

    (98), pp 101-107.

    Dorigo, M., and Gambardella, L. M. 1997. "Ant colony system: A cooperative learning

    approach to the traveling salesman problem," Evolutionary Computation, IEEE

    Transactions on (1:1), pp 53-66.

    Glover, F. 1989. "Tabu search—part I," ORSA Journal on computing (1:3), pp 190-206.

    Ho, S. C., and Haugland, D. 2004. "A tabu search heuristic for the vehicle routing

    problem with time windows and split deliveries," Computers & Operations

    Research (31:12), pp 1947-1964.

    Hongling, W., Yueshun, H., and Gang, Z. Year. "Application and research on Vehicle

    Routing Problem with Time Window based on dynamic adaptive ant colony

    algorithm," Computer Application and System Modeling (ICCASM), 2010

    International Conference on, IEEE2010, pp. V7-8-V7-12.

    Kang, K. H., Lee, B. K., Lee, Y. H., and Lee, Y. H. 2008. "A heuristic for the vehicle

    routing problem with due times," Computers & Industrial Engineering (54:3), pp

    421-431.

    Kao, Y., Chen, M.-H., and Huang, Y.-T. 2012. "A Hybrid Algorithm Based on ACO and

    PSO for Capacitated Vehicle Routing Problems," Mathematical Problems in

    Engineering (2012), pp 1-17.

    Karl Doerner, M. G., Richard F. Hartl, Marc Reimann 2002. "SavingsAnts for the Vehicle

    Routing Problem,").

    Kirkpatrick, S., Jr., D. G., and Vecchi, M. P. 1983. "Optimization by simulated

    annealing," science (220:4598), pp 671-680.

  • 20

    Müller, J. 2010. "Approximative solutions to the bicriterion vehicle routing problem with

    time windows," European Journal of Operational Research (202:1), pp 223-231.

    Stutzle, T., and Hoos, H. Year. "MAX-MIN ant system and local search for the traveling

    salesman problem," Evolutionary Computation, 1997., IEEE International

    Conference on, IEEE1997, pp. 309-314.

    Tan, K., Lee, L., and Ou, K. 2001. "Artificial intelligence heuristics in solving vehicle

    routing problems with time window constraints," Engineering Applications of

    Artificial Intelligence (14:6), pp 825-837.

    Thangiah, S. R., Osman, I. H., and Sun, T. 1994. "Hybrid genetic algorithm, simulated

    annealing and tabu search methods for vehicle routing problems with time

    windows," Computer Science Department, Slippery Rock University, Technical

    Report SRU CpSc-TR-94-27 (69).

    Tsukahara, H. K. a. S. 2008. "Virus Evolution Strategy for Vehicle Routing Problems with

    Time Windows,").

    Wade, A., and Salhi, S. Year. "An ant system algorithm for the mixed vehicle routing

    problem with backhauls," Metaheuristics, Kluwer Academic Publishers2004, pp.

    699-719.

    Wan, M., Li, L., Xiao, J., Wang, C., and Yang, Y. 2012. "Data clustering using bacterial

    foraging optimization," Journal of Intelligent Information Systems (38:2), pp

    321-341.

    Wang, Y. 2009. "A Hybrid Approach Based on Ant Colony System for the VRPTW,").

    Xing, G.-h., and Yu, S.-l. 2007. "Dynamic stage ant colony algorithm and its

    convergence," Control and Decision (22:6), p 685.

    Yu, B., Yang, Z. Z., and Yao, B. Z. 2011. "A hybrid algorithm for vehicle routing problem

    with time windows," Expert Systems with Applications (38:1), pp 435-441.

    Yue-Jiao Gong, J. Z., Ou Liu, Rui-Zhang Huang,Yu-Hui Shi 2012. "Optimizing the

    Vehicle Routing Problem With Time Windows A Discrete Particle Swarm,").

    陳家和, and 丁慶榮 2005. "應用螞蟻演算法於時窗限制車輛途程問題之研究," 運輸學刊 (17:3), pp 261-280.