螞蟻演算法之視覺化實作與應用-...

19
1 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例 徐兆辰張瀚鈞 詹智豪 柯承宗陳冠杰 尹邦嚴 國立暨南大學資訊管理學系 摘要: 螞蟻演算法(Ant Colony Optimization ,ACO) 是一種用來在圖中尋找優化路徑的機率 型演算法,它透過螞蟻群體合作尋找食物的行為來處理最佳化問題。在螞蟻演算法的應用 中,又以旅行銷售員問題(Traveling Salesman Problem ,TSP)一直被研究者深入探討。本 研究將實作視覺化展現如何透過螞蟻演算法來找到最短路徑解和利用螞蟻演算法結合 Google Map來處理多點的實際旅行銷售員問題。本研究有以下兩方面之貢獻:一方面利用 動畫設計,將螞蟻演算法視覺化,藉由高度自由的操作介面和有趣的動畫呈現,使初階入 門者可以很容易理解螞蟻演算法的運作原理。另一方面,藉由Google Map讓使用者可以標 記真實世界的地點,並以我們內建的螞蟻演算法來找到近似最佳解。 關鍵字:視覺化、旅行銷售員問題、螞蟻演算法、經驗法則 Abstract : Ant Colony Optimization (ACO) is a probabilistic algorithm for finding a near-optimal path in a given graph. ACO, which is inspired by the collaborative behavior of the ant colony for food foraging, has emerged as an optimization method. Among many others, Traveling Salesman Problem (TSP) is one of the most notable applications well solved by ACO. This study presents an implementation for 1) visualizing how the ACO can find the shortest path, and 2) combining ACO with Google Map to deal with a real-world TSP problem. This study contributes in two aspects. First, our program interface is highly flexible and the user can freely input parameter values to observe the ACO program visualization. This is very helpful for an ACO novice to learn the algorithm through illustrative animation. Second, the user can solve real-world TSP problem by setting landmarks on Google Map and obtain the result by our embedded ACO program. KeywordVisualizationTraveling Salesman ProblemAnt Colony OptimizationHeuristic

Transcript of 螞蟻演算法之視覺化實作與應用-...

Page 1: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

1

螞蟻演算法之視覺化實作與應用-

以旅行推銷員問題為例

徐兆辰張瀚鈞 詹智豪 柯承宗陳冠杰 尹邦嚴

國立暨南大學資訊管理學系

摘要:

螞蟻演算法(Ant Colony Optimization ,ACO) 是一種用來在圖中尋找優化路徑的機率

型演算法,它透過螞蟻群體合作尋找食物的行為來處理最佳化問題。在螞蟻演算法的應用

中,又以旅行銷售員問題(Traveling Salesman Problem ,TSP)一直被研究者深入探討。本

研究將實作視覺化展現如何透過螞蟻演算法來找到最短路徑解和利用螞蟻演算法結合

Google Map來處理多點的實際旅行銷售員問題。本研究有以下兩方面之貢獻:一方面利用

動畫設計,將螞蟻演算法視覺化,藉由高度自由的操作介面和有趣的動畫呈現,使初階入

門者可以很容易理解螞蟻演算法的運作原理。另一方面,藉由Google Map讓使用者可以標

記真實世界的地點,並以我們內建的螞蟻演算法來找到近似最佳解。

關鍵字:視覺化、旅行銷售員問題、螞蟻演算法、經驗法則

Abstract:

Ant Colony Optimization (ACO) is a probabilistic algorithm for f inding a near-optimal path

in a given graph. ACO, which is inspired by the collaborative behavior of the ant colony for food

foraging, has emerged as an optimization method. Among many others, Traveling Salesman

Problem (TSP) is one of the most notable applications well solved by ACO. This study presents

an implementation for 1) visualizing how the ACO can find the shortest path, and 2) combining

ACO with Google Map to deal with a real-world TSP problem. This study contributes in two

aspects. First, our program interface is highly flexible and the user can freely input parameter

values to observe the ACO program visualization. This is very helpful for an ACO novice to learn

the algorithm through illustrative animation. Second, the user can solve real-world TSP problem

by setting landmarks on Google Map and obtain the result by our embedded ACO program.

Keyword:Visualization、Traveling Salesman Problem、Ant Colony Optimization、Heuristic

Page 2: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

2

目錄

壹、 引言................................................................................................................ ..3

貳、 相關文獻探討................................................................................................4

一、 螞蟻演算法(Ant colony optimization,ACO)......................................4

二、 旅行銷售員問題(Traveling salesman problem,TSP)..........................5

三、 與其他螞蟻演算法呈現之比較......................................................6

参、系統架構.........................................................................................................10

一、 螞蟻演算法概念動畫系統流程....................................................10

二、 旅行推銷員問題(TSP)系統流程..................................................11

肆、實驗結果.........................................................................................................12

一、 螞蟻演算法概念動畫執行介面....................................................12

二、 螞蟻演算法概念動畫情境.............................................................13 三、 旅行推銷員問題(TSP)執行介面...................................................16

四、 旅行推銷員問題(TSP)情境...........................................................17

伍、結論..................................................................................................................19

參考文獻...................................................................................................................19

Page 3: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

3

壹、引言

仿生物演算法近年來逐漸受到重視,特別是對於非決定性問題的求解(如 TSP 問

題、JSP 問題),解決了傳統數值無法經由演繹推導快速求解最佳解問題,節省了記憶體

和時間,其中螞蟻演算法廣泛被人運用。現實生活中我們不可能去預測螞蟻的複雜行

為,但我們可以利用訂定幾項規則,藉以突顯螞蟻這些複雜行為中的規律,進而我們可

以藉由這些規則,撰寫出簡單的程式碼,來模擬螞蟻的行為模式,用於解決日常生活中

所遇到的任何問題。

次經驗演算法(Metaheuristic algorithms)的源起最早可以追溯到西元 1952 年,由義大利科

學家 Enrico Fermi 和美國科學家 Nicholas Metropolis 所發明的模式搜尋法(Pattern search)

為先鋒,其後諸位科學家以其為樣本,發展出許多不同類型的演算法,例如隨機搜尋法

(Random search)[1]、基因演算法(Genetic algorithms)[2]、禁忌搜尋法(Tabu search)[3]等

等。次經驗演算法(Metaheuristic algorithms)與經驗演算法(Heuristic algorithms)皆是屬於

求得最佳近似解的演算法,但兩者最大的不同之處在於經驗演算法首先針對問題,進而

利用與該問題相關聯的知識或經驗藉以快速地求得近似解,其中求解所用的工具通常包

括像是經驗法則(Rule of thumb)或者是貪婪演算法(Greedy algorithms)等等之類的演算

法;而次經驗演算法的運作則是一個主經驗法則(Master algorithms) 領導著許多次級經

驗法則(Slave algorithms),藉由這些演算法重新產生一個跳脫原本之區域最佳解(Local

optima)的全域最佳解(Global optima)[4],次經驗演算法之所以可以達到如此卓越的搜尋

效果是因為它能藉由過往所累積的搜尋經驗,在每一次新的搜尋當中加以判斷,加強搜

尋空間中解答品質較佳的區域,而減少在解答品質較差之區域中的搜尋時間,這種搜尋

策略可以大幅降低搜尋最佳解所需的時間,同時能求得比區域最佳解更加地全域最佳解

[5]。

身為一個剛剛踏進演算法領域的初學者,要快速的融會貫通有關次經驗演算法的法則與

精神是有相當困難的,因為次經驗演算法並不是一般數學式的解題方法,它是藉由模擬

大自然萬物的行為模式來求得最佳解的一套演算法,所以並不是將數據帶入公式就可以

得出答案那麼容易。次經驗演算法當中充滿許多抽象的思考邏輯以及複雜的演算過程,

本研究團隊在初次的學習過程當中也遇到相當多的困難,因此我們決定開發一套可供次

學習經驗演算法的初學者們輕鬆學習的教學系統,我們希望能透過輕鬆的學習方式,以

動畫教學代替以往大量的方程式,一步一步地讓使用者了解到演算法的主要精神,同時

可以觀察到其所模擬應用的解題軌跡,相信藉著生動且深入的學習方式,可以讓使用者

了解演算法每個步驟當中的涵義,進而有事半功倍的幫助。本系統旨在忠實的呈現演算

法的執行過程,以動畫演進的方式讓使用者清楚的看到演算法的步驟細節,加速使用者

對於演算法的了解,而在製作系統的過程中,我們也希望讓學習過或者正在學習次經驗

演算法的同學們實際操作,聽取獲得各方面的經驗意見及回饋後,藉以改善並作出更符

合初階使用者需求的教學系統,希望此系統能在實地教學方面作出貢獻。

Page 4: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

4

貳、相關文獻探討

螞蟻演算法(Ant colony optimization)[6]基本上是利用群體智慧(Swarm intelligence)發揮

演算效果的一個例子。所謂的群體智慧即是藉由觀察社會型昆蟲(Social insects)的行為模

式,從中發掘其特性進而加以應用,此種策略的特別之處是群體中的每個獨立個體之行

為皆會對環境的狀態造成影響,另一方面環境的狀態也會影響群體中每個獨立個體的行

為,而在蒐集個體的行為進一步累積經驗之後,整個群體所表現出來的複雜行為即是透

過個體的交互過程產生出的智慧,因此整個群體具有組織性,就算發生單一個體的任務

失敗,群體也會繼續前進完成整體目標,並不會受到太大的影響。

一、螞蟻演算法(Ant colony optimization,ACO)

螞蟻演算法(Ant colony optimization)最早是在西元 1992 年由 Marco Dorigo 在其博士

論文當中所發表出來,另外包括 Israel Wanger 以及 Vitorino Ramos 都是推展螞蟻演算法

的先驅。螞蟻演算法的主要精神是架構在蟻群覓食的行為模式上,當螞蟻出外覓食的時

候,若是發現食物,在搬運食物回到巢穴的途中會分泌一種特殊的費洛蒙,用以告知其

他螞蟻可以循著該路徑去搬運食物,這些費洛蒙會隨著時間的經過而慢慢蒸發,但是若

有其他的螞蟻也循著該路徑搬運食物回巢則會補強費洛蒙的濃度,因此該費洛蒙的濃度

便成為食物的指標,蟻群演算法的特色就是將這些所謂的費洛蒙替換為演算過程當中所

需要的數據指標,以達到優化的目的。

步驟 1. 螞蟻由隨機位置出發尋找食物,初始費洛蒙濃度 τ 為零。

步驟 2. 發現食物之後搬運回巢,在路徑上留下費洛蒙,費洛蒙濃度 τ 增加。

步驟 3. 其後每隻出發找尋食物的螞蟻,會根據狀態轉換規則(State trasition

rule)決定下一步的目的地,即費洛蒙濃度 τ 會對於路徑選擇造成影

響。

步驟 4. 重複數代後,距離短的路徑上費洛蒙濃度不斷上升,距離遠的路徑上費

洛蒙逐漸消散,最後路徑遭到放棄,進而得出最佳路徑。

今假定螞蟻巢穴與食物相對位置如下圖 1,巢穴在 A 處而食物在 F 處,由 BCDE 構成之

方塊為障礙物。則根據螞蟻演算法,經過數隻螞蟻在路徑上來回搜尋以及搬運之後,路

程較短的路線 A→B→C→E→F上的費洛蒙濃度將越來越高,對於螞蟻在選擇路線上的

吸引力越來越強;反之路線 A→B→D→E→F因為路程較長,路徑上的費洛蒙濃度將相

對的稀薄,漸漸的螞蟻將不再選擇這條路徑。

Page 5: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

5

圖 1 蟻群覓食路徑示意圖

二、旅行銷售員問題(Traveling salesman problem,TSP)

旅行銷售員問題(Traveling salesman problem)[7]是一個著名的難題,屬於難度極高

的非確定性多項式問題(NP-hard problem),最早在 1930 年被提出,原本是一個以數學

方式求最佳解的問題,後來在演算法領域中受到熱烈討論,後來更成為一個用以檢驗演

算法的經典基準問題(Benchmark)。旅行銷售員問題主要建立在一個情境,主角是一名銷

售員,他想要到散布各地的城市做生意,他打算從所在的起始位置開始,在每個城市間

穿梭,每個城市只停留一次,在所有的城市都拜訪過之後再回到起始位置,而為了節省

旅途的時間及成本,需要找出一條串聯各城市且路程最短的路線,問題的難度會跟所經

過的城市數目成正比。

要解旅行銷售員問題,最明顯的方法即是窮舉法,即排列出所有可能的路線組合進

而取其最佳解如圖 2,不過這種土法煉鋼的方法隨著城市數量的增加會產生極大的時間

複雜度,解題的效率會相當的低。因此其他像是基因演算法(Genetic algorithm)、蜂群演

算法(Artificial bee colony algorithm)、禁忌演算法(Tabu search)、乃至於我們所討論的蟻

群演算法(Ant colony optimization)等等的優化演算法皆被拿來解決旅行銷售員問題,因

為此類次經驗演算法是利用模擬自然界行為進而累積經驗最後求出最佳解,因此解題效

率相對於窮舉法會大幅度的提升。

Page 6: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

6

圖 2 旅行銷售員問題求解示意圖

三、與其他螞蟻演算法呈現之比較

由於螞蟻演算法提出已有一段時間,我們認為從以前到現在一定有很多研究嘗詴將

螞蟻演算法作視覺化,不論所套用的主題為何,而這些不同的呈現手法是我們可以觀摩

學習的,所以我們從網路上蒐集了許多出自不同研究團隊的螞蟻演算法之呈現影片,其

中包括單純以影片呈現的專題,也有可以實際讓使用者自由操作的控制介面,透過觀摩

這些五花八門的呈現方式,我們作出一些優劣的比較,從中吸收經驗,藉以優化本次專

題所要表現出來的畫面。

範例影片一:(圖 3)[8]

這段動畫是利用螞蟻演算法來解決 TSP 的問題,作者他的做法大致上與我們 googlemap

的做法相似,先是打點,接著規劃路線,最後計算最短路徑。不同的地方在於作者打點

是可以在畫面上任何一個地方打點,而我們的演算法卻是先預先設好點的數量。

優點:使用者可以自己設定點的位置和數量,畫面清楚,操作簡單。

缺點:若是能應用到實際地圖上或是能加以應用在其他生活中的問題會更好!

Page 7: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

7

圖 3 範例影片一

範例影片二:(圖 4) [9]

介面中的螞蟻在有障礙物的情況下,尋找最短路徑,先是初始依些障礙物在介面中,接

著以無數的螞蟻由起點朝著中的前進,當遇到障礙物時,螞蟻會沿著障礙物的邊前進,

每一隻螞蟻所留下的費洛蒙以顏色表示,最後會以螞蟻演算法的數學模型找出最短路

徑,找出最短路徑後幾乎所有螞蟻會朝著同一個方向前進。

優點:畫面簡單清楚,使用者可以明確了解螞蟻演算法功能。

缺點:障礙物過於簡單,不能讓使用者移動,螞蟻的速度,數量不能控制,美工可以再

加強。

Page 8: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

8

圖 4 範例影片二

範例影片三:(圖 5) [10]

此範例影片也是一個以螞蟻演算法去尋找最短路徑的範例。首先我們可以在畫面上任何

地方開始打點,點完點之後,要開始拉邊,拉出所有可能的路徑後,開始執行第一代螞

蟻尋找最短路徑,一代的數量螞蟻大約有 10隻,當第一代所有螞蟻跑完後,接著除了

最短的路徑顏色不變外,其餘的所有路徑顏色變淡,然後執行第二代,執行到最後顏色

最深的路徑即為最短路徑。

優點:此視窗介面有結合 GA 演算法在裡面,清楚表示最短路徑

缺點:無法看到螞蟻所留下的費洛蒙,要使用者自己拉邊,容易遺漏。

Page 9: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

9

圖 5範例影片三

另外我們也有針對我們找的這三個範例來進行比較(表 1)

表 1 範例影片比較表

範例影片 1 範例影片 2 範例影片 3

美工 清楚,簡單 過於單調,有待加強 清楚,簡單

構想 以 TSP 問題呈現 以螞蟻演算法尋找

最短路徑

以 TSP 問題呈現

操作 容易操作,若能給使用者

調整參數會更好

操作容易,若能給使

用者移動障礙物位

置會更好

操作容易,參數都能給

使用者調整,比範例影

片 1 更清楚

應用 若能應用到生活中會更好 缺乏應用,若能再配

合 TSP 問題會更好

若能應用到生活中會更

畫面是否清

楚呈現螞蟻

演算法

清楚呈現 TSP 問題,但無

法清楚了解螞蟻演算法解

決問題的過程

清楚呈現螞蟻演算

法的功能

比範例影片 1更清楚呈

現螞蟻演算法解決 TSP

問題

Page 10: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

10

參、系統架構

為了使讀者更能夠了解螞蟻演算法的內容,本研究將實作視覺化展現如何透過螞蟻

演算法來找到最短路徑解和利用螞蟻演算法結合 Google Map 來處理多點的實際旅行銷

售員問題。本研究有以下兩方面之貢獻:一方面利用動畫設計,將螞蟻演算法視覺化,

藉由高度自由的操作介面和有趣的動畫呈現,使初階入門者可以很容易理解螞蟻演算法

的運作原理。另一方面,藉由 Google Map 讓使用者可以標記真實世界的地點,並以我

們內建的螞蟻演算法來找到近似最佳解。我們將螞蟻演算法用生動的動畫來呈現,使得

演算法更貼近於大自然螞蟻的真實行為,同時也使得使用者更便於理解。系統開始時會

有不同背景可以選擇,進入介面後,使用者可以在參數欄位輸入問題所要求的參數,並

且將螞蟻以及障礙物放在需要的位置上,將以上所有的東西設定好之後,就可以慢慢觀

看螞蟻找到食物袋回巢穴中的過程,在經過所設定的步數之後,就會跑出利用螞蟻所找

出的最佳路徑解。

一、 螞蟻演算法概念動畫系統流程

為了使讀者更能夠了解螞蟻演算法的內容,我們將螞蟻演算法用生動的動畫來呈現,使

得演算法更貼近於大自然螞蟻的真實行為,同時也使得使用者更便於理解。系統開始時

會有不同背景可以選擇,進入介面後,使用者可以在參數欄位輸入問題所要求的參數,

並且將螞蟻以及障礙物放在需要的位置上,將以上所有的東西設定好之後,就可以慢慢

觀看螞蟻找到食物袋回巢穴中的過程,在經過所設定的步數之後,就會跑出利用螞蟻所

找出的最佳路徑解,系統流程可見圖 6。

螞蟻演算法概念動畫開始

確認數值是否合理

Done

圖 6 螞蟻演算法動畫系統流程

觀察螞蟻找尋食物的過程以及利用費洛蒙提升效率的方式

重新輸入數值

進入執行頁面,使用者自行設定參數

將所有的螞蟻及障礙物放置在介面的地圖上並確認

Page 11: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

11

二、旅行推銷員問題(TSP)系統流程 為了使讀者更能夠了解螞蟻演算法的內容,我們將螞蟻演算法用以解決複雜的

TSP(traveling salesmanproblem)問題,使得演算法更貼近於日常生活,同時也使得使

用者更便於理解。系統開始時會有五個標籤在畫面上,代表著解 TSP 問題所要經過的點

位,使用者能夠將這五個點位依問題需求將點位放置在 Google Map 上,若是使用者需

要特定位置的地圖,可以利用 Google Map 的拖拉縮放功能進行位置的定位,或者是利

用使用介面上方的地域搜尋功能找出所需要的區域,在進行完位置的定位之後,使用者

可以在參數欄位輸入問題所要求的參數,包括α、β、λ 以及每代螞蟻的數量,將以

上的參數設定好之後,就可以執行程式將結果呈現出來,在經過演化之後,就會顯示利用螞蟻所找出的最佳路徑解,系統流程可見圖 7。

旅行行銷員問題開始

輸入

數值是否合理

Done

圖 7 旅行推銷員問題(TSP)系統流程

在實做這次的 TSP 問題的程式時,最難的部分實際上是將 Google Map 放置在舞台上以

及將 Google Map 上的座標、路線等數據傳到程式當中,再計算點到點之間的距離,尤

其是我們使用 Google Map 所決定的實際路線,其中還要決定使用 Google Map 裡面決定

路線的交通工具,並將其畫在介面上,可說是十分複雜,以下是ㄧ些技術上的參考對照

表(表 2),其中項目是程式中的 function 或是語法的寫法,而解說部分則是解釋這些

function 的使用方式以及用途,希望能夠對使用者解決許多技術上的麻煩與問題。

觀察每個步驟

重新輸入數值

進入執行頁面,使用者自行設定參數

將所有的點位放置在介面的地圖上並確認

觀察最後結果

Page 12: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

12

表 2參考對照表

項目 解說

google maps

放到 Flash 舞

台上。

我們是用 Google Maps Flash for API(map_1_20.swc)來與 Flash 結合與之

應用。

com.google .maps 下的建構涵式 Map 可以在舞台具像化 google maps。

並有多種方法及參數來控制中心、比例尺、初始地圖類型等。

addControl com.google .maps 下的建構涵式 Map 有 addControl 方法,傳入參數可以放入常見

的地圖控制選項。

openInfoWindo

w

com.google .maps 下的建構涵式 Map 有 openInfoWindow 方法,來開起訊息視窗。

addOverlay com.google .maps 下的建構涵式 Map 有 addOverlay 方法,來在地圖上放上物件。

Directions 類

com.google .maps.services 下的類別 Directions,可以取得官方所提供的一些服務

資訊。

createPolyline com.google .maps.services 下的類別 Directions 有 createPolyline 方法,來畫制地圖

編碼折線。

getGeocode com.google .maps.services 下的類別 Directions 有 getGeocode 方法,取第 i 個路點

的地理編碼結果。

load com.google .maps.services 下的類別 Directions 有 load 方法,得知某段路線的導

航路線。

setOptions com.google .maps.services 下的類別 Directions 有 setOptions 方法,可以設定導航

資訊。

PolylineOption

s

com.google .maps.overlays 下的類別 PolygonOptions 有 PolylineOptions 方法,可以

設定折線型態。

Marker com.google .maps.overlays 下的類別 Marker,可以放上地圖 maker,並有多種參

數可以控制。

MarkerOptions com.google .maps.overlays 下的類別 MarkerOptions,可以自訂及修改 maker 的外

型。

其它相關 更多類別及方法可以在 Google Maps Flash for API 網址:

https://developers.google.com/maps/documentation/flash/reference?hl

=zh-TW 查詢。

肆、實驗結果

一、螞蟻演算法概念動畫執行介面

系統的介面是用來呈現螞蟻尋找食物並留下費洛蒙的過程,一開始使用者可以選擇

Page 13: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

13

三個背景中較為中意的做為舞台,再選擇完背景之後進入主程式介面,介面的左上角是

螞蟻的巢穴,而介面的右下角則為食物 pizza,螞蟻會以拿到食物為目標,當螞蟻拿到

食物時會將食物放回巢穴。

在一開始時可以按下按鍵 E打開參數面板設定不同的參數,第一個為螞蟻數量,最

少不能少於 1隻,最多不能超過 10 隻,預設值為 5隻,使用者可以視需求來決定增減

數量,第二個為費洛蒙影響程度,即是α,預設質為 5,α愈高則費洛蒙對螞蟻影響愈

大,第三個是可視度影響程度,即是β,預設質亦為 1,β愈高時則距離對螞蟻的影響

愈深,第四個是日照後費洛蒙保留率,小日照後費洛蒙保留率的定義是每單位時間內每

個線段上費洛蒙的蒸發率,是為了模擬真實的自然環境而設,第五個是前次路徑費洛蒙

保留率,這個跟日照後費洛蒙保留率的功能是差不多,只是前次路徑費洛蒙保留率是原

本就存在原本螞蟻演算法內的,第六個是維持運動慣性費洛蒙蒸發率,因為所有的物體

都具有慣性,原本依直線往前的物體不會突然往回頭走動,第七個為巢穴可適度影響,

當螞蟻拿到食物時,會盡量的往巢穴方向移動,回巢穴影響此參數能夠使螞蟻較容易往

巢穴的方向移動,最後一個為行走步數,也就是時間的總長度,螞蟻每走一步即減 1,

減到 0時螞蟻就不會再動作,在程式執行時數字會在顯示面板上減少,可以提供給使用

者監聽參考。在面板下方有提供障礙物的按鈕,當在介面上放置障礙物時,螞蟻就不會

經過那個點,一次最多可以放置兩個障礙物。

當設定完所有參數之後,便可以將螞蟻以及障礙物放置於版面上,使用者能隨意放

置每個螞蟻以及障礙物在舞台內的許可區域,如果物件有成功放置在點上時,會出現字

幕 Ok 告知使用者物件放置是正確的,反之如果沒有放置在許可區域內則不會出現字幕,

在執行程式前如果還有物件沒有放置好,則系統會主動告知使用者,在設定好參數以及

所有物件之後,就可以開始執行程式。

在畫面上可以看出所有的螞蟻在走過的路線留下的費洛蒙深淺變化,費洛蒙會在每

隻螞蟻走 50 步時在畫面上進行大更新,將費洛蒙的濃淡做明顯的區別並且讓使用者可

以輕鬆的分辨出費洛蒙濃淡的變化,螞蟻會將尋找食物運並運送回巢穴的過程呈現出

來,在程式執行的過程中,參數面板會出現費洛蒙範圍這項數據供給使用者做為參考以

及監控,在介面上會用紅色的線段來呈現所設定費洛蒙值以上的部分,若是設定的費洛

蒙範圍數值越高,則紅色線段會越接近於螞蟻所走出的最後路徑。

二、螞蟻演算法概念動畫情境

在地球上有一個螞蟻的天堂,他們世世代代居住在一片遼闊的草原上,過著豐衣足食的

生活,有天早上當螞蟻們都辛勤的工作著,天空下了一場豪雨,所以有的螞蟻這時都四

處逃竄,過了不久後天空漸漸轉晴了,但是通往食物的費洛蒙路徑卻因為剛剛的大雨而

被沖淡,這時村里最勇敢的小黑義不容辭的接下了這艱難的任務,讓我們看看他是否能

完成任務吧。

Page 14: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

14

情境一:

在螞蟻數量 5 隻、費洛蒙影響程度為 5、可視度影響程度為 1、日照後費洛蒙保留率為

0.99、前次路徑費洛蒙保留率為 0.9、維持運動慣性費洛蒙蒸發率為 0.6、巢穴可適度

影響為 5、行走步數為 500 步,和在不移動和增加障礙物的情況下,我們預估螞蟻能走

出一條的路線,初始畫面如圖 8。

圖 8 情境一初始畫面

在螞蟻執行完 500 步後舞台上巢穴和食物之間出現了一條近似直線的路徑如圖 9

圖 9 情境一結束畫面

Page 15: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

15

情境二:

在螞蟻數量 5 隻、費洛蒙影響程度為 5、可視度影響程度為 1、日照後費洛蒙保留率為

0.4、前次路徑費洛蒙保留率為 0.9、維持運動慣性費洛蒙蒸發率為 0.3、巢穴可適度影

響為 5、行走步數為 500 步,和在不移動和增加障礙物的情況下,我們預估螞蟻走不出

一條明顯的路線,初始畫面如圖 10。

圖 10 情境二初始畫面

在螞蟻執行完500步後舞台上巢穴和食物之間出現了很多條從巢穴往食物的的路徑如圖

11

圖 11 情境二結束畫面

Page 16: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

16

三、旅行推銷員問題(TSP)執行介面

系統的介面與 Google Map 做結合,可以在 Google Map 上選擇自己所想要的點位,地圖

右上角可以視個人需求選擇不同的地圖呈現模式,如傳統交通道路圖或者是衛星空照

圖,視需求而定同時附上區域搜尋功能,在右上角的欄位中打上所要搜尋的區域,Google

Map 就會幫忙蒐尋符合關鍵字的區域,可以方便進行定位,在確定好地圖之後,再用介

面右上角的綠色旗子做定位,定位出 TSP 問題的 5 個點位。在定位完 5個綠色標旗的點

位之後,就要輸入螞蟻演算法的各個參數,第一個參數為每代螞蟻數量最少一個,最多

不得超過 5 隻,第二個參數為費洛蒙權重係數,即是α,第三個參數為能見度的權重係

數,即是β,第四個參數及視費洛蒙蒸發率ρ。在設定完所有點位以及參數之後即可開

始使用程式,在程式執行前請先確定所有參數以及點位都做好了設定,畫面會出現提示

提醒使用者做最後確認,接著就可以使用螞蟻演算法來解決 TSP 問題,首先按下 Line

的按鍵 Google Map 就會按照 Google Map 裡面以車子的 Function 畫出實際路境,以藍

色線段呈現,並同時顯示使用者所決定的 5個綠色旗幟的座標,然後在按下 Play 的按

鍵,程式會將最佳路徑一步一步的用不同顏色顯示出來,再按下 Compare 按鍵隨機產生

一條隨機路徑與 ACO 所求出的最佳路徑做比較,然後本程式也能顯示各路段的資訊內

容,來滿足需要的使用者。

旅行推銷員問題(TSP)情境

接著我們以實際操作操作以螞蟻演算法導入 Google map 的問題,由於現在許多國

家之間都有免簽證的服務,所以讓自由行的風氣漸漸盛行,所以我們期望能夠帶給許多

背包客或是自由行的旅客更便利的路線,藉由簡短舟車勞頓的時間讓旅客們能花更多時

間享受旅程或欣賞美景。

當他第一次進入到視窗他會看到 Google map 的畫面,並且右上方有四種不同的空

照圖可以給使用者選擇,接著右上角有一個視窗是給使用者做螞蟻演算法參數的調整,

之後進入主題,首先,你可以先將旗桿(起點)拉近 Google map 代表自己出發位置,接

著在將想去的四個景點位置拉近 Google map,系統剛開始把所有可能路線以藍色的線條

表示,接著以紅色的線條表示最短路徑,而每個路段都以不同的顏色來作呈現,同時並

附有路段的詳細資訊。

情境一:台灣景點旅遊(圖 12)

1.起點 101,台灣最高建築,附近可以逛街,台北市最精華區

2.逢甲夜市,體會台灣夜市生活

3.暨南大學,推銷本校,風景優美,體會台灣大學生活

4.日月潭,風景優美,台灣最著名景點

5.安帄古堡,台灣最具歷史意義的古蹟義大利文藝復興重鎮

Page 17: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

17

圖 12 情境一截圖

情境二:義大利文藝復興重鎮(圖 13)

1.起點羅馬,天主教教廷梵蒂岡所在

2.佛羅倫斯,文藝復興的起點與發揚地

3.米蘭,擁有著名的米蘭主做座教堂,除了文藝復興時期的建築,也有許多羅馬帝

國統治時的遺跡

4.熱那亞,地中海第二大港

5.比薩,擁有著名的比薩斜塔,自由落體論在此獲得證實,有歐洲最古老的大學之

一比薩高等師範學院

圖 13 情境二截圖

Page 18: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

18

情境三:歐洲重鎮旅遊(圖 14)

1.起點柏林,德國首都,德國經濟重鎮,冷戰時期被資本主義以及共產主義衝擊的

城市,有著名的柏林圍牆

2.巴黎,法國首都,歐洲人文薈萃的聚集地,有著深度文化內涵的城市,塞納河穿

過市中心,著名的艾菲爾鐵塔

3.莫斯科,俄羅斯首都,蘇聯的權力中心,有著名的克林姆林宮

4.維也納,奧地利首都,生活水帄很高的城市,音樂之都,許多以前著名的音樂人

居住於此,有多瑙河穿過市中心

5.倫敦,英國首都,四大博物館大英博物館所在處,倫敦證券交易所是世界上最重

要的證券交易中心之一,有霧都之稱

圖 14 情境三之截圖

伍、結論

本研究致力於螞蟻演算法視覺化和螞蟻演算法的應用,由於螞蟻演算法在概念上來說較

為抽象,故我們集中關注於能以有趣又容易學習的方式來傳達其最佳化之操作方法與過

程,考量到畫面豐富性且介面應更加人性化以滿足視覺化的教學用途,我們希望在系統

中能夠將畫面呈現得更為一目瞭然且不造成學習者在使用上的困擾。螞蟻演算法概念動

畫的結果透過費洛蒙顏色深淺來做表現,讓使用者明瞭最後螞蟻會選擇的路徑是哪一

條,而螞蟻演算法的應用的結果我們透過顯示最佳路徑的方式來做表現,讓使用者明瞭

最後的最佳路徑是哪一條,這些都讓初學者輕易且快速的深化對這套演算法的了解,在

參數的設定上,部分演算法視覺化工具以設計者的角度出發,並無加入使用者的角度,

希冀能幫助使用者詳知參數之間的關係,故本系統在可控制的範圍內,將參數的設定權

移交給使用者,以防萬一,本系統同時也設定了參數的預設值以供使用,目的即為希望

增進使用者的學習效率。

其次,考量到軟體的可取得性,在觀察目前開放式的演算法視覺化版本後,本研究決定

Page 19: 螞蟻演算法之視覺化實作與應用- 以旅行推銷員問題為例intelligence.im.ncnu.edu.tw/member/im102/project/101.pdf · 螞蟻演算法之視覺化實作與應用-

19

採用 ActionScript 來實做,客戶(client)端只需支援 flash 即可執行,不需另外下

載其他軟件;除此之外,本系統也能夠以網頁形式呈現,對於使用者來說方便度提升許

多。

另一部分,本研究協助未來利用螞蟻演算法結合其他演算法以求最佳化,如基因演算

法…等,在結合兩演算法時,利用本研究設計出的系統以及附加的文件閱讀,其中包含

了演算法流程、參數的設計以及部分易忽略的細節等等,可幫助縮短研讀這些演算法之

時間,希冀能夠透過這套系統,減少學習者在學習螞蟻演算法(Ant colony optimization)

時碰到的困難,對於正在學習中的人給予最多的幫助。

參考文獻

[1]Rastrigin, L.A. (1963). "The convergence of the random search method in the

external control of a many parameter system". Automation and Remote

Control 24 (10): 1337–1342.

[2] Goldberg &David,E.(1989).Genetic Alogrithm in Search,Optimization and

Machine Learning.Addison-Wesley Longman Publishing Co.Inc.

[3]Glover,F.(1989).Tabu search-PartI.ORSAJournal on Computing,vol.3,pp.1-13

[4]C. Audet, J. E. Dennis, Jr., and S. Le Digabel. Globalization strategies for mesh

adaptive direct search.Les Cahiers du GERAD G-2008-74, GERAD, November

2008.

[5]C. Audet. Convergence Results for Pattern Search Algorithms are Tight.

Optimization and Engineering,5(2):101–122, 2004.

[6] Dorigo,M,Maniezzo,v.,&Colomi,A.,(1996)The ant system : optimization by a

colony of cooperating agent .IEEE Transactions on Systems,B,Vol.26,PP.1-13.

[7]Bellman, R. (1960), "Combinatorial Processes and Dynamic Programming", in Bellman,

R., Hall, M., Jr. (eds.), Combinatorial Analysis, Proceedings of Symposia in Applied

Mathematics 10,, American Mathematical Society, pp. 217–249.

[8]範例影片一 http://www.youtube.com/watch?v=QZnvRXRsHHg

[9]範例影片三 http://www.youtube.com/watch?v=uDbwPeTu91E

[10]範例影片四

http://www.youtube.com/watch?feature=endscreen&v=ROAvtcmtx7Y&NR=1