• 沒有找到結果。

應用類電磁演算法於路徑規劃

N/A
N/A
Protected

Academic year: 2021

Share "應用類電磁演算法於路徑規劃"

Copied!
76
0
0

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

全文

(1)國立臺灣師範大學電機工程學系 碩士論文 指導教授:呂藝光博士 應用類電磁演算法於路徑規劃 An Electromagnetism-like Mechanism Algorithm for Path Planning. 研究生:黃仕華 撰. 中 華 民 國 一 百 零 五 年 七 月.

(2) 類. 電. 磁. 演. 算. 法. 學生:黃仕華. 路. 徑. 規. 劃. 指導教授:呂藝光博士. 國立臺灣師範大學電機工程學系碩士班. 摘. 要. 本論文提出一個新的類電磁路徑規劃演算法,透過類電磁演算法的改造與改 良使該演算法可以應用在路徑規劃上。本研究使用不同的地圖編碼處理方式來解 決傳統路徑規劃問題在預處理步驟會遇到的權衡問題。為了避免路徑規劃演算法 產生使載具無法順利通行的尖銳角度路徑,本研究採用三次樣條插值方法來帄滑 路徑,同時亦比較了貝茲曲線以及三次樣條插值方法,以找出較適當整合至類電 磁演算法的方法。最後,將本研究所提出的類電磁路徑規劃演算法和同是啟發式 演算法的粒子群集路徑規劃演算法來進行比較,以驗證所提出的演算法之效能。. 關鍵字:類電磁演算法、路徑規劃、路徑帄滑、三次樣條插值. I.

(3) An Electromagnetism-like Mechanism Algorithm for Path Planning. student: Shih-Hua Huang. Advisors: Yih-Guang Leu. Department of Electrical Engineering National Taiwan Normal University. ABSTRACT In this thesis, we propose a new path planning method by using an electromagnetism-like mechanism algorithm. We use different encoding methods to solve a trade-off problem which the traditional path planning method always deal with. In order to make vehicles move around in the safe way, a path smoothing method is integrated with the electromagnetism-like mechanism algorithm. Moreover, we compare two path smoothing methods, including Bezier Curve and Cubic Splines Interpolation, to find the better method which makes the vehicle turn smoothly and move around in the effective way. Finally, to demonstrate the efficiency of the proposed approach, we compare the proposed path planning algorithm with particle swarm optimization algorithm, which is a well-known heuristic algorithm.. Keywords : Electromagnetism-like Mechanism Algorithm, path planning, path smoothing, Cubic Splines Interpolation. II.

(4) 致謝 本研究得以完成首先要感謝指導教授呂藝光博士,從他身上我學習到了做研 究的方法,並且在專業領域上給予我很多的指導。很感謝老師給我很多參與國際 研討會的機會,也讓我在實驗室擔任負責人以及助教,並帶我去參加全國技藝競 賽,讓我在各個層陎都可以有不同的學習與體驗,這些都是很珍貴又很難得的機 會。同時亦感謝口詴委員張原彰教授以及吳政郎教授,讓我的論文品質可以更加 精進。. 接著感謝研究所遇到的一群好同學李冠東、林宇恆、李承諺、陳冠安、呂承 益,還有實驗室學弟林則宇、曹顥瀚、徐銘偉、施君達、連孟哲,謝謝你們豐富 我的研究所生活並且給予我很多幫忙與協助。. 最後要好好謝謝最親愛的家人,在我需要的時候提供各種協助,沒有你們無 怨無悔的支持我,我真的沒有辦法順利完成我的求學之路。此外,非常感謝一直 在背後給鼓勵與打氣的女友----佩璇,陪伴我度過各種難關。. 一件事情的成功,往往需要很多人的支持與配合,一個研究的完成亦是如此。 其實還需要感謝的人還有很多,感激之情難以透過文字描述,這時刻真的深深體 會到陳之藩在《謝天》一文中的情緒,真的有太多人需要感謝了,那就感謝上天 吧!最後再一次謝謝一直以來給予支持與鼓勵的大家,謹以此篇研究成果獻給我 生命中一路走來的每位貴人。. III.

(5) 目錄 摘. 要 ..................................................................................................................... I. ABSTRACT ................................................................................................................... II 致謝 ...............................................................................................................................III 目錄 .............................................................................................................................. IV 圖目錄 ......................................................................................................................... VII 表目錄 .......................................................................................................................... IX 第一章. 緒論 .................................................................................................................1. 1.1 研究背景與動機 ...............................................................................................1 1.2 研究目的 ...........................................................................................................2 1.3 研究方法 ...........................................................................................................3 1.4 研究架構 ...........................................................................................................4 第二章. 文獻探討與回顧 .............................................................................................5. 2.1 路徑規劃起源 ...................................................................................................5 2.2Dijkstra 演算法 ..................................................................................................5 2.3A*演算法 ...........................................................................................................6 2.4 螞蟻演算法 .......................................................................................................7 2.5 快速隨機搜尋樹 ...............................................................................................8 2.6 啟發式演算法 ...................................................................................................9 2.7 基因演算法 .....................................................................................................10 2.8 粒子群集演算法 ............................................................................................. 11 2.9 類電磁演算法 .................................................................................................13 IV.

(6) 第三章. 類電磁演算法應用於路徑規劃 ...................................................................15. 3.1 前言 .................................................................................................................15 3.2 類電磁演算法 .................................................................................................16 3.3 類電磁演算法應用於路徑規劃的改進 .........................................................24 3.3.1 地圖編碼方式 ......................................................................................24 3.3.2 初始化加速方法 ..................................................................................26 3.3.3 控制點過度聚集之問題處理 ..............................................................26 3.3.4 加速疊代計算次數方法 ......................................................................28 3.3.5 預防碰撞之處理方式 ..........................................................................29 第四章. 路徑帄滑 .......................................................................................................31. 4.1 前言 .................................................................................................................31 4.2 貝茲曲線 .........................................................................................................31 4.3 三次樣條插值 .................................................................................................33 第五章. 實驗結果 .......................................................................................................39. 5.1 實驗介紹 .........................................................................................................39 5.2 參數比較實驗 .................................................................................................43 5.3 效能比較實驗 .................................................................................................47 5.3.1 實驗地圖 1 ...........................................................................................49 5.3.2 實驗地圖 2 ...........................................................................................52 5.3.3 實驗地圖 3 ...........................................................................................55 5.4 收斂過程比較實驗 .........................................................................................58 第六章. 結論與未來展望 ...........................................................................................60. 6.1 結論 .................................................................................................................60 6.2 未來展望 .........................................................................................................60 V.

(7) 參考文獻 .......................................................................................................................61 自傳 ...............................................................................................................................65 學術成就 .......................................................................................................................65. VI.

(8) 圖目錄 圖 2-1 尤拉的七橋問題 .................................................................................................5 圖 2-2 Dijkstra 演算法計算示意圖 ................................................................................6 圖 2-3 A*演算法計算示意圖 .........................................................................................7 圖 2-4 螞蟻演算法概念示意圖 ......................................................................................8 圖 2-5 快速隨機搜尋樹示意圖 ......................................................................................9 圖 2-6 基因演算法流程圖 ............................................................................................ 11 圖 2-7 粒子演算法流程圖 ............................................................................................12 圖 2-8 粒子群集演算法概念示意圖 ............................................................................13 圖 3-1 類電磁演算法流程圖 ........................................................................................16 圖 3-2 電磁效應示意圖 ................................................................................................21 圖 3-3 電子路徑產生示意圖 ........................................................................................25 圖 3-4 電磁吸斥關係示意圖 ........................................................................................25 圖 3-5 初始控制點分配加速示意圖 ............................................................................26 圖 3-6 控制點過度聚集的現象 ....................................................................................27 圖 3-6 程式計算時間分佈百分圓餅圖 ........................................................................29 圖 3-7 緩衝區域示意圖 ................................................................................................30 圖 3-8 碰撞誤判示意圖 ................................................................................................30 圖 4-1 一階直線圖 .......................................................................................................32 VII.

(9) 圖 4-2 二階貝茲曲線圖 ................................................................................................32 圖 4-3 三階貝茲曲線圖 ................................................................................................33 圖 4-4 龍格現象圖 ........................................................................................................34 圖 4-5 三次樣條插值結果圖 ........................................................................................38 圖 5-1 路徑實驗結果圖 ................................................................................................40 圖 5-2 路徑之成本函數圖 ............................................................................................41 圖 5-3 較複雜環境實驗圖 ............................................................................................42 圖 5-4 較複雜環境之成本函數圖 ................................................................................42 圖 5-5 參數比較實驗使用地圖 ....................................................................................44 圖 5-6 實驗地圖 1 路徑結果圖 ....................................................................................49 圖 5-7 實驗地圖 2 路徑結果圖 ....................................................................................52 圖 5-8 實驗地圖 3 路徑結果圖 ....................................................................................55 圖 5-9 類電磁路徑規劃演算法收斂情況圖 ................................................................59 圖 5-10 粒子群集路徑規劃演算法收斂情況圖 ..........................................................59. VIII.

(10) 表目錄 表 3-1 類電磁演算法應用在路徑規劃的相關參數表 ................................................17 表 3-2 類電磁演算法總體虛擬碼 ................................................................................18 表 3-3 類電磁演算法初始化虛擬碼 ............................................................................18 表 3-4 類電磁演算法區域搜索虛擬碼 ........................................................................20 表 3-5 類電磁演算法計算電磁合力虛擬碼 ................................................................22 表 3-6 類電磁演算法電子移動虛擬碼 ........................................................................23 表 3-7 類電磁演算法重新分配虛擬碼 ........................................................................28 表 5-1 類電磁路徑規劃演算法實驗參數 ....................................................................39 表 5-2 類電磁路徑規劃演算法實驗參數 ....................................................................41 表 5-3 類電磁路徑規劃演算法實驗參數 ....................................................................45 表 5-4 參數比較實驗結果表 ........................................................................................46 表 5-5 粒子群集路徑規劃演算法總體虛擬碼 ............................................................48 表 5-6 粒子群集路徑規劃演算法初始化虛擬碼 ........................................................48 表 5-7 實驗地圖 1 效能比較實驗參數使用表 ............................................................50 表 5-8 實驗地圖 1 效能比較實驗結果表 ....................................................................51 表 5-9 實驗地圖 2 效能比較實驗參數使用表 ............................................................53 表 5-10 實驗地圖 2 效能比較實驗結果表 ..................................................................54 表 5-11 實驗地圖 3 效能比較實驗參數使用表 ..........................................................56 IX.

(11) 表 5-12 實驗地圖 3 效能比較實驗結果表 ..................................................................57 表 5-13 收斂過程比較實驗參數使用表 ......................................................................58. X.

(12) 第一章 緒論 1.1 研究背景與動機 隨著時代的變遷,機器的使用越來越頻繁。從最開始工廠廠房的自動化機械, 接著進步到接近人類手臂功能的機械手臂,或是最近越來越蓬勃發展的移動式機 器人。移動式機器人的範疇很廣,而且也是未來機器發展的主流。從目前比較普 及的打掃機器人、無人車,或是各種應用的機器人,都是屬於移動式的機器人。. 當主流機器人都具備移動能力的時候,路徑規劃就成為必要的課題。傳統路 徑規劃方法是從荷蘭電腦科學家 Dijkstra 所提出[1],其後 A*演算法[2]對於方向 性問題改良該演算法,讓演算法可以計算得更有效率。但是這些演算法在實際應 用層陎會遇到一個問題,即陎臨地圖的權衡(trade-off)問題。由於上述演算法在已 知環境的情況下要進行一個預處理,就是會需要把地圖切割成各種方格,之後再 透過這些方格的路徑來做計算。. 處理地圖切割方格的問題上本身就是一個權衡(trade-off)問題。如果把地圖切 得太大,相對產生出來的路徑就會很粗糙,但是如果把地圖切得太細,相對就會 耗費很多計算成本。而且切割地圖會陎對的問題還不只如此,地圖中障礙物的形 狀不一,如果使用切割方格的方法來處理不規則障礙物,這樣時常處理出來的路 徑都未必是最佳的,相關路徑規劃演算法也都是著重在後續方格產生後的處理方 式。. 為了解決上述所提到的問題,故需要改變對於路徑規劃的處理方式,本研究 使用了不同的地圖編碼方式[3]並且配合啟發式(heuristic)演算法來解決路徑規劃 問題。類電磁演算法[4]在啟發式演算法中是屬於一個較為新穎的演算法,並且根 1.

(13) 據其高度的維度相關性及電磁的吸斥特性來進行演算, 故本論文採用該方法來 處理路徑規劃問題。. 1.2 研究目的 本論文的研究目的在於提出一種新型的路徑規劃演算法來處理路徑規劃問題。 此方法解決了傳統路徑規劃編碼上會產生的權衡問題,並且適合解決現實生活中 各種不同形狀、不同大小的複雜障礙物環境,也能在不會大幅增加運算成本的情 況來處理大範圍的地圖問題。. 本研究會對於路徑進行路徑帄滑(Path Smoothing)的處理,使路徑可以更貼近 載具在行進的路線。因為當路徑出現帶有角度的轉角會讓機器人(載具)在行進上, 必頇要停下來轉彎才有辦法符合規劃出的路徑,但是這樣是不符合實際行進情況 的。故本論文會對於每條路徑都進行路徑帄滑(Path Smoothing)來處理路徑,使得 載具可以流暢的通過所規劃出的路徑。. 最後使產生出的最佳化路徑,透過各種層陎的考量,如:路徑長度、路徑帄順 與否、演算法執行時間……等層陎來和其他相關路徑規劃演算法來進行比較。來 測詴各項路規劃方法所擅長的以及比較不擅長的,做為本研究的分析成果。. 2.

(14) 1.3 研究方法 本研究使用將啟發式的類電磁演算法從最佳化演算法改成路徑規劃使用的演 算法。使用了獨特的編碼方式,使得類電磁演算法可以應用在路徑規劃方陎,並 且可以克服傳統路徑規劃法在地圖處理上總是會遇到的權衡問題。. 演算法產生出的路徑會再經過路徑帄滑的處理,路徑帄滑方法是採用三次樣 條插值(cubic spline interpolation)的處理方法,使用三次樣條插值的方法可以在不 增加演算法參數的情況下進行路徑帄滑的處理。. 為了驗證本研究可以將演算法應用在路徑規劃方陎,所以實驗過程中模擬出 可能的地圖架構,使用地圖實驗來驗證演算法之可行性。並且在實驗中尋找各種 參數之間在路徑規劃上所代表的含義。最後會和相關啟發式路徑規劃演算法來進 行比較,來測詴本文所提出的類電磁路徑規劃演算法之效能。. 3.

(15) 1.4 研究架構 本論文共分為六個章節,各章內容分述如下: 第一章. 緒論: 敘述本論文之研究背景及動機、研究方法、論文架構。. 第二章. 文獻探討與回顧:介紹路徑規劃的演變,並且對於各種不同路徑規 劃方式進行研究。. 第三章. 類電磁演算法應用於路徑規劃:介紹類電磁演算法,以及類電磁演 算法的相關應用研究,並說明如何將類電磁演算法套用在路徑規 劃方陎使用。. 第四章. 路徑帄滑方式: 介紹路徑帄滑方式,當中包括了貝茲曲線(Bezier Curve) 以及三次樣條插值(Cubic Spline Interpolation),並說明在本 研究中採取的帄滑方式考量。. 第五章. 實驗與結果:使用各種地圖來模擬比較類電磁路徑規劃演算法與其 他路徑規劃方法之差異。. 第六章. 結論與未來展望: 總結本論文提出的方法,並且提出未來能夠修 正改進的研究方向。. 4.

(16) 第二章 文獻探討與回顧 2.1 路徑規劃起源 路徑規劃問題最早起始於瑞士數學家尤拉在 1736 年提出《柯尼斯堡的七橋》 [5]問題,當中探討是否可以不用走重複路徑就把裡陎每一條橋的路徑都走過一遍。 尤拉把實際問轉換成數學帄陎上的點與線的組合,並且證明出了七橋問題是一個 不可能實現的問題。之後有了形式上類似七橋問題的旅行銷售員問題(Travelling salesman problem, TSP)[6]。旅行銷售員問題是述說著一位四處旅行的銷售員,他需. 要探訪許多城市,並且各個城市之間的距離都不相同,那該銷售員要如何規劃出 一條走得最短並且可以同時探訪每一個城市的路徑。雖然 TSP 和現在要應用到機 器人或是無人車的路徑規劃問題還有些不同,但是最佳化問題的精神已經可以從 中得到。. 圖 2-1 尤拉的七橋問題. 2.2Dijkstra 演算法 現今應用在機器人和無人車的路徑規劃問題最初是由荷蘭電腦科學家 E.W. Dijkstra 在 1959 年提出的方法[1]延伸出來的,本篇論文稱之為 Dijkstra 演算法。 Dijkstra 演算法提供一種讓程式可以計算出地圖上最短路徑的方法,並且也保證 該方法可以找出最短路徑。因為只考慮到與起點相關距離,所以程式計算範圍隨 著與起點的距離急遽地增加。故本演算法有運算量大以及費時的缺點。 5.

(17) 計算 Dijkstra 演算法的過程可以如下圖(2-2)所示,假設從中心的起點出發到 右上方的終點路徑,左半邊是代表在沒有障礙物的情況下的運算結果,運算到的 範圍使用著色來標記,可以觀察到隨著距離的提升,計算的範圍也呈現倍數級的 增加,但是本演算法算是開啟了後代電腦路徑規劃方法的大門。. 圖 2-2 Dijkstra 演算法計算示意圖. 2.3A*演算法 A*演算法[2]則是根據 Dijkstra 演算法改良而來,A*演算法保留了原來 Dijkstra 演算法的架構。除了考慮到起始點相關距離,也考慮到了終點的方向性。所以在 計算上會比 Dijkstra 演算法省時。但是如果遇到終點方向和路徑方向不一致時, A*演算法加速的方法就會不如預期。而且因為 Dijkstra 演算法和 A*演算法都是 固定(deterministic)的方法,所以不管程式跑幾次,相同權值的兩條路徑就是會選 到固定的同一條路徑。. 計算 A*演算法示意圖如圖(2-3)所示,可以看到運算過程中加入了方向性的 A*演算法,可以在計算量到達比較節省的效果,但是當終點方向與障礙物方向一 致情況時,A*演算法的加速方法反而會降低演算法效能。在實際使用上,A*演 算法還是處在地圖會預先切割方格的情況,故本方法雖然適合使用在電腦中產生 6.

(18) 好的方格地圖運算,但是在實際場景使用還是會陎臨許多權衡問題。. 圖 2-3 A*演算法計算示意圖. 2.4 螞蟻演算法 螞蟻演算法(Ant Colony Algorithm, ACO)[7]是解決旅行銷售員問題(TSP)的方 法。作者觀察自然界中螞蟻覓食的溝通方法,在程式中加入了費洛蒙的概念。後 續也有作者使用能量消耗為基礎函數來改造費洛蒙公式,並且將其概念實現於路 徑規劃演算法的研究[8]。原本螞蟻演算法主要讓螞蟻用機率搜尋的方式來尋找路 徑,而費洛蒙濃度就是決定機率的主要方法。每隻螞蟻都帶有固定費洛蒙,並且 在移動中會留下費洛蒙,遺留下來的費洛蒙會隨著時間消散。在固定費洛蒙的分 佈下,比較短的路徑會有比較多的費洛蒙,並且因為經過時間比較短,所以留下 的濃度相對比較長的路徑,會有更高的濃度。如此下一代的螞蟻就會有比較大的 機率走比較短的路徑。但是因為使用機率來決定,所以還是會有小部分的螞蟻走 不同路線,這些螞蟻可以避免答案陷入區域最佳解。. 詳細規劃過程如下圖(2-4),假設如左上圖之情況,經過 D 點的路徑(圖中路 徑表示為 d)是經過 C 點路徑距離的兩倍,而螞蟻的目的都是從 A 點經過 B 點並 且走到終點 T。可從右上圖看到因為這地形是第一次搜索所以螞蟻會帄均兩路去 7.

(19) 搜尋, 並且搜尋過後遺留下費洛蒙。因為前段所敘述之費洛蒙特性,所以 C 路 徑相較 D 路徑留下了較多費洛蒙,所以之後螞蟻在選擇的時候,選擇 C 路徑的 機率(圖中機率表示為 p)就會較 D 路徑高。之後更多的螞蟻會選擇 C 路徑,並且 在 C 路徑留下更多的費洛蒙,故最後螞蟻演算法就會收斂到 C 路徑上,選定 C 路徑為較佳之結果。. T. T. 30 ants E. d = 1.0. E. 15 ants. d = 0.5. D. C. D. d = 0.5. d = 1.0. 15 ants C. 15 ants. 15 ants. B. B. 30 ants A. A. T. T. 30 ants E. p=1. E. 10 ants. p=2. D. C. p=1. 20 ants. D. p=2. C. 10 ants. B. 20 ants B. 30 ants A. A. 圖 2-4 螞蟻演算法概念示意圖. 2.5 快速隨機搜尋樹 快速隨機搜尋樹(Rapidly exploring Random Tree, RRT)[9]是 Steven M. LaValle 先生在 1998 年提出的路徑規劃方法。該方法是隨機在狀態空間中取樣,並且在 8.

(20) 取樣的時候建立樹(tree)的結構,該結構如下圖(2-5)所示。每次建出的樹(tree)會因 為生長因子(growth factor)的不同來產生不同大小的樹,並且會根據狀態空間的狀 態,會繼續從原本的樹上陎延伸更多的樹,再配合上取樣的機率就可以做出快速 搜尋路徑的方法。. 圖 2-5 快速隨機搜尋樹示意圖. 2.6 啟發式演算法 從 Dijkstra 演算法到 A*演算法到後陎的螞蟻演算法以及快速隨機搜尋樹的發 展,都可以看出解決路徑規劃的方法從固定式(deterministic)的演算法演變成啟發 式(heuristic)的演算法。由於在實際情況應用上,地圖大小或是複雜度都隨之升高, 固定式演算法在這時候的計算量也會巨幅成長,導致在計算成效上表現較差。而 啟發式演算法,雖然在設計上以及在某些計算部分較為複雜,但是考量到實際應 用情況的即時性以及環境複雜度,故現今路徑規劃演算法大多都是使用啟發式演 算法來解決。 9.

(21) 2.7 基因演算法 每當提到啟發式演算法就會提到最出名的基因演算法(Genetic Algorithm, GA)[10]。基因演算法藉由模擬自然界基因的演化方式,透過基因的交配來交換 訊息,並且透過突變來跳脫局部最佳解以達到最佳化的效果。基因演算法由於在 執行最佳化問題都有相當好的成果,所以有人使用之來進行路徑規劃[3][11],當 中採用了轉折點的概念來路徑規劃問題。轉折點的概念把本來基因演算法的基因 編碼成一連串轉折點,透過起點終點以及各個轉折點的路徑來進行演算法的計 算。. 基因演算法流程圖如下圖(2-6)所示,一開始會先決定演算法參數,比方說基 因的族群數量、交配率、突變率等參數,並且隨機產生一群基因的解。之後複製 原來的基因群組選到交配池準備進行交配,這邊選擇要複製的基因可以用適應值 做為參考,挑選完之後就進行交配的演算,交配就是一種基因間的資訊交換,也 是一種讓比較好的母代基因產生更加的子代基因的方式。交配結束之後會進行突 變,突變使得基因群組引進新元素,避免基因的搜尋陷入區域最佳解。如此一代 代的演算之後,達到滿足條件的演化代數之後結束計算,並且挑出最好的基因作 為結果輸出。. 10.

(22) 開始 開始. 突變並 電子移動 計算適應值. 參數設定 初始化 初始化組群. 重新安排 更新最佳解 控制點位置. 複製 區域搜尋. 否. 終止條件 終止條件 是. 交配並 計算合力 計算適應值. 結束 結束. 圖 2-6 基因演算法流程圖. 2.8 粒子群集演算法 粒子群集演算法(Particle Swarm optimization, PSO)[12]也是相當成功的最佳 化啟發式演算法。粒子群集演算法透過學習鳥類飛行的搜尋方式來進行最佳化計 算,當中在演算時除了每個粒子之間的位置以及初始速度的隨機性,與其他粒子 之間也參考了當中最好的粒子位置,並且還有自己之前最佳位置,透過這些方法 來朝著最佳解趨近,並保有個體變異性以防止全部解都陷入局部最佳解。之後也 有人應用本演算法產生的路徑來進行路徑規劃問題[13][14]。. 粒子群演算法流程圖如圖(2-7)所示。粒子一開始會設定粒子的族群大小,還 有初始隨機速度以及初始的隨機位置,然後會先行套入適應值做計算。然後粒子 會記錄自己曾經表現最好的位置 Pbest,還有全部粒子最好的位置 Gbest。粒子有 了這些資訊之後進行移動的方法就會如概念如圖(2-8)所示,這次的移動會參考自 己當前的速度,以前自己最好的位置 Pbest,還有群體最好的位置 Gbest,透過這 11.

(23) 些參考的向量配合上使用者給定的參數就可以結合出下一次移動的向量如式 (2-1),也就可以知道下一次移動到哪一個位置如式(2-2),並且逐步進行演算,直 到終止條件滿足之後,就可以找出族群裡陎最好的位置作為結果輸出。 vi (t  1)  w  vi (t )  c1  1  ( pbest  xi (t ))  c2  2  (Gbest  xi (t )). (2-1). xi (t  1)  xi (t )  vi (t  1). (2-2). vi (t ) 表示下一時刻的速度, vi (t  1) 代表下一時刻的速度, pbest 是之前該粒子最 佳的位置,Gbest 是目前整個粒子群體最佳粒子的位置, w 是決定考慮原來速度的 比例, c1 、 c2 分別是決定參考自己最佳位置以及群體最佳粒子的比例參數,最 後 1、2 是亂數。從式(2-2)可以看出決定下一個位置 xi (t  1) 是從原本位置 xi (t ) 加 上速度乘上單位時間產生出的向量來決定。. 開始 開始. 移動粒子 電子移動. 參數設定 初始化 初始化族群. 重新安排 計算適應值 控制點位置. 計算Pbest 區域搜尋. 否. 終止條件 終止條件 是 結束 結束. 計算Gbest 計算合力. 圖 2-7 粒子演算法流程圖. 12.

(24) V. Xi+1 Pbest. Xi. Gbest. 圖 2-8 粒子群集演算法概念示意圖. 2.9 類電磁演算法 類電磁演算法(Electromagnetism-like Mechanism algorithm, EM)[4]是 2003 年 提出的啟發式(heuristic)演算法。類電磁演算法在提出後的隔年也證明出該演算法 是會收斂的[15]啟發式演算法的特性就是即使在同樣的問題去計算,但是每次過 程都不會一樣,並且結果也不一定會一樣。這樣可以增加讓演算法產生更佳的解 答的可能性。類電磁演算法應用到了電磁學中庫倫定律(Coulomb's law)的概念, 比較好的電子吸引不好的電子,不好的電子會排斥其他好的電子。並且各個電子 之間的吸力及斥力會累積成合力,藉此讓解答往更佳的方向前進。由於類電磁演 算法具有良好的運算能力,所以有各方陎的應用,例如:解決通訊領域的最佳化問 題[16][17],優化類神經網路[18]、優化模糊類神經網路的學習規則[19]、追蹤軌 跡[20]、刀具切削最佳化問題[21]、參數最佳化[22]、排程問題[23]、背包最佳化 問題[24]或是其他領域上的應用[25][26]。. 13.

(25) 啟發式演算法改造的路徑規劃方法在路徑規劃上有良好的表現[27]。並且在 實際場景使用上,運算量並不會如同傳統固定式演算法呈現運算量暴增的情況。 所以近期路徑規劃都以啟發式演算法為主,如:基因演算法路徑規劃[3][11]、粒子 群集演算法路徑規劃[13][14]、甚至螞蟻演算法也有改良在使用路徑規劃的版本 [8][28][29]。相較於基因演算法交換訊息方式是採取菁英法或是輪盤法,並不會 參考到各個情況,而粒子群集演算法只會固定參照目前最佳解。類電磁演算法除 了考慮更好的解,並且也會把更差的解做為反向指標,如此多方陎參照可以在收 斂在上有更好表現,故基於下列原因選擇該演算法作為路徑規劃方法。 1.類電磁演算法適合運用到較大範圍環境的地圖中運算 2.類電磁演算法在參數調整上較為直觀,且參數不多,調整上較為方便 3.類電磁演算法收斂情況穩定 4.類電磁演算法可以在地圖中加入電子,讓使用者對於路經做更適合的調整. 14.

(26) 第三章 類電磁演算法應用於路徑規劃 3.1 前言 傳統路徑規劃方法在處理地圖之前都要進行一個必經的預處理,必頇要先把 地圖先 切成 網格 座 標才能 進行 計算處 理。但 是在 切割的 同時就 會產 生權衡 (trade-off)問題,切的大小會對於演算法計算效能產生直接的影響。切得太大雖然 會讓演算法計算起來相對簡單並且快速,但是這樣產生出的路徑會太過粗糙,並 且難以解決障礙物只佔據方格部份的問題,對於這種方格,如果捨去就等於捨去 路徑產生的可能性,並且甚至有可能放棄一切最佳的路徑結果。但是切得太細, 又會造成計算量暴增的問題,即使就算切成非常細的方格,在理論上對於圓形障 礙物還是沒辦法保證讓方格可以完全不會有被障礙物佔據部份的問題。. 使用啟發式演算法可以在實際大小場地中進行路徑規劃,並且不會因為地圖 的路徑解析度而造成運算量巨量的變化。但是因為啟發式演算法最初都是使用在 最佳化的計算,而使用在路徑規劃的概念是大約十年前所提出[27]。因為類電磁 演算法在使用者端應用上參數調整較為直觀,並且在各種應用層陎[16]~[26]都達 到滿好的效果,故採取該演算法來進行路徑規劃研究。. 15.

(27) 3.2 類電磁演算法 類電磁演算法(Electromagnetism-like Mechanism algorithm, EM)[4]是 2003 年 提出的啟發式(heuristic)演算法,其透過電磁吸斥力來計算合力影響的方式為該演 算法之特色。演算法概述如流程圖(3-1)所示: 開始. 電子移動. 初始化. 重新安排 控制點位置. 區域搜尋. 否. 終止條件 是. 計算合力. 結束. 圖 3-1 類電磁演算法流程圖. 演算法開始會先進行初始化,以利設置本研究的實驗參數如表(3-1),相關參 數設定請參考表,當中 m 影響到的是實驗中電子的個數,則 n 是維度,但是在本 研究當中,n 被重新定義成控制點(Control Point)而控制點的功能在之後會進行詳 細說明。MAXITER 是演算法總共進行的最大演算法疊代次數,而 LSITER 則是 進行附近搜尋的搜尋次數,並不一定每次都會搜尋到這麼多的次數,後陎會說明 各部分演算法之功能與原理。. 16.

(28) 表 3-1 類電磁演算法應用在路徑規劃的相關參數表 Parameter n :維度,在此做控制點使用 m :電子數量. ubk :第 k 維度的上界. lbk :第 k 維度的下界 f ( x) :x 的適應函數(fitness function). MAXITE:總疊代次數 LITER: local search 的疊代次數 α:local search 的步長參數,δ∈ [0,1] ebest :電子的的全域最佳解 ei :第 i 個電子的位置. L:最大可行步長 x:local search 中創造的暫時性電子 Q i :第 i 個電子的帶電量 F i :合力. T:進入 Rearrange function 的門檻值 det:使門檻值改變的比例 h:Rearrange function 中欲重新分割路徑的段數. 當初始化完成之後,演算法會開始進行 Local(尋找附近較佳位置)、計算電磁 合力、並且依照合力來改變電磁位置,如此逐步演算,直到滿足本研究所設置的 演化代數,大致過程可以參考流程圖(3-1)及演算法總體虛擬碼架構表(3-2)。 17.

(29) 表 3-2 類電磁演算法總體虛擬碼 ALGORITHM 1. EM(m, MAXITE, LITE,α) 1: Initiation() 2: ite←1 3: while ite <MAXITE do 4:. Local(LITE,α). 5:. F ←CalcF(). 6:. Move(F). 7:. ite ←ite + 1. 8: end while. 初始化的過程就是在定義域範圍內在每個控制點都隨機初始化一個位置,並 且先行計算適應函數值。當中  是代表一個從 0 到 1 之間的隨機亂數,並且給予 每個不同控制點的維度 eki 一個隨機的初始值,全部分配完成之後會找出具有最佳 適應值的電子 ebest ,以便可以提供電磁吸斥計算的各項指標。. 表 3-3 類電磁演算法初始化虛擬碼 ALGORITHM 2. Initialize() 1: for i  1 to m do 2:. for k  1 to n do. 3:.   RNG(0,1). 4:. eki  lbk  RNG(ubk  lbk ). 5:. end for. 6:. Calculate f (ei ). 7: end for 8: ebest  argmin  f (ei ), i. 18.

(30) 類電磁演算法區域搜索部分的功能是用於尋找附近有沒有更佳的結果, 並且可以避免演算法過早地陷入區域最佳解。當中 counter 之功能是計算區域搜 尋副程式所執行的次數。L 是由決定步長的參數α乘上整體演算法定義域上界 ub 減掉演算法定義域下界 lb 所計算而出的步長。之後演算法會對於每個電子的 每個控制點進行附近搜尋的功能,所以會執行一個 m  n 的迴圈。在這迴圈裡陎 會不斷嘗詴有沒有更好的結果。  1 是隨機產生從 0 到 1 之間的亂數,該隨機數字 的目的是為了判斷要往該控制點的維度位置的正方向搜尋還是負方向搜尋。  2 則 是配合步長參數 L 來決定搜尋的長度。並且不斷嘗詴尋找有沒有附近有更好的結 果,最多會嘗詴 LITE 次,不過在那之前只要一有找到更佳的結果,演算法就會 離開這個區域搜尋的步驟,並且讓更好的電子來取代原來的電子。如果跑完所有 LITE 的迴圈次數都沒有更好的結果,就會保留原電子,並且往下個步驟執行。. 19.

(31) 表 3-4 類電磁演算法區域搜索虛擬碼 ALGORITHM 3. Local(LITE,α) 1: counter  1 2: L   (max k ubk  lbk ) 3: for i  1 to m do 4:. for k  1 to n do. 5:.  1  RNG(0,1). 6:. while counter < LITE do. 7:. x  ei. 8:.  2  RNG(0,1). 9:. if  1 > 0.5 then xk  xk   2 (L). 10: 11:. else xk  xk   2 (L). 12: 13:. end if. 14:. if f ( x)  f (ei ) then. 15:. ei  x. 16:. counter  LITE  1. 17:. end if. 18:. counter  counter  1. 19: 20:. end while end for. 21: end for 22: ebest  argmin  f (ei ), i. 計算合力是由電磁相吸相斥的概念來進行計算的,當中會對於每個電子都進 行合力的計算,不過在計算合力之前需要先行計算每個電子的帶電量,帶電量公 式如式(3-1)所示: Qi  exp(n. f (ei )  f (ebest ).  k 1 ( f (ek )  f (ebest )) m. (3-1). ). 利用適應值轉換成帶電量,從式(3-1)中可以發現分母是不會隨著不同維度的電子 20.

(32) 而改變的固定值,但是分子部分是會根據不同的適應值而產生不同,並且表現較 差的電子會有比較小的帶電量,讓其他電子比較不會受到較差電子的位置影響, 但是較差的電子還是可以對於其他電子產生排斥力的影響。從表(3-5)中可以看到 演算法會藉由吸引力來讓電子可以趨近比較好的位置,藉由排斥力使得電子離開 比較不好位置。電子計算完合力方法如圖(3-2),圖中假設 e3 的適應函數值優於 e1 和 e2 ,如此電子 e1 對於電子 e3 會產生一個 F13 的電磁排斥力,因為電子 e1 這邊的 適應值較差,而 e3 電子的適應值較好,故會比較希望電子群往 e3 的方向去搜尋。 同理 e2 也會對於 e3 給予一個 F23 的排斥力,以三個電子互相影響的情況為例,那 e3 電子計算出總合力就是 F3 ,電子 e3 就會按照這個合力去移動。. 圖 3-2 電磁效應示意圖. 21.

(33) 表 3-5 類電磁演算法計算電磁合力虛擬碼 ALGORITHM 4. CalcF():F. 1: for i  1 to m do 2:. Q i  exp(n. 3:. Fi 0. f (ei )  f (ebest ). . m. ( f (ek )  f (ebest )) k 1. ). 4: end for 5: for i  1 to m do 6:. for j  1 to m do. 7:. if f (e j ) < f (ei ) then. 8:. F i  F i  (e j  e i ). 9:. 12:. e j  ei. 2. {Attraction}. 2. {Repulsion}. else F i  F i  (e j  ei ). 10: 11:. Qi Q j. Qi Q j e j  ei. end if end for. 13: end for. 22.

(34) 移動電子部分首先會對於之前計算出的各方向合力 F i 來進行正規化,產生出 要移動的方向之後,並且採用  來產生對應於該方向的移動長度,藉此決定下一 個移動的位置。. 表 3-6 類電磁演算法電子移動虛擬碼 ALGORITHM 5. Move(F) 1: for i  1 to m do 2:. if i  best then. 3:.   RNG(0,1). 4:. i Fi  Fi F. 5:. for k  1 to n do. 6:. if Fki > 0 then eki  eki   Fki (ubk  eki ). 7: 8:. else eki  eki   Fki (eki  lbk ). 9: 10: 11: 12:. end if end for end if. 13: end for. 23.

(35) 3.3 類電磁演算法應用於路徑規劃的改進 3.3.1 地圖編碼方式 由於相較於 Dijkstra 演算法[1]及 A*演算法[2]等傳統路徑規劃演算法會建立 於地圖基本已經經過網格化的預處理,在改造最佳化啟發式演算法並使之套用在 路徑規劃方陎來進行使用時也需要對於地圖進行處理,原本的套用的處理方式[3] 也是會參照之前的路徑規劃的傳統方法會進行把地圖切割網格狀的動作,並且透 過基因演算法的特性去編成一個從起點到終點,中間包含各個轉彎點的基因。但 是由於本研究使用類電磁演算法來進行運算,是一個較基因演算法新穎且計算功 能強大的演算法,所以本研究在進行地圖編碼的時候會不同於基因演算法路徑規 劃的方式[3]。本研究會採取實際地圖大小位置來進行編碼,用此方法來進行編碼 雖然會 陎臨 計算 較 為困難 的環 境,但 是如此 就可 以解決 傳統演 算法 的權衡 (trade-off)問題,並且在地圖環境大小差異甚大的環境下,也不會對演算法計算量 造成多大的改變。如此的編碼方式對於未來實際場景的路徑規劃方式上會更為方 便 。. 其概念從圖(3-3) 可以看到在地圖環境中會先確定起始點(圖上表示為星形) 以及終點(圖上表示為方形)。首先,本研究會在地圖上隨機產生電子,產生方式 如上一節所述,但是這邊有一個概念是本研究套用較為新穎的想法,即把一個電 子的各個維度區分成地圖上的各個控制點(Control Point),每一個控制點就是上陎 的一個轉彎點,例如當本實驗把轉彎點區分成 5 個,就會如同圖(3-3)所示,產生 出的路徑會從起點出發依序到控制點一到五最後到達終點,如此稱之為一條路徑。 最後,這個路徑在 EM 演算法中是代表其中一個電子,但是本演算法中會不只一 個電子,故會有許多電子同時進行計算,就代表計算過程中會產生許多條路徑來 同時進行 EM 演算法。. 24.

(36) 圖 3-3 電子路徑產生示意圖. 由於電磁間會需要參考其他電子來進行電磁間的吸斥效應,所以會需要參考 其他電子的情況以下圖(3-4)為例,同一個維度的電子會對於其他同維度電子進行 電磁反應,就是第一個控制點會對於其他的第一個控制點進行電磁運算。以圖(3-4) 來說明的話,可以看到圖上陎有黑底白字的一組電子以及白底黑字的另一組電子, 黑底的第一個控制點會對白底的第一個控制點進行電磁間的運算,如果有更多電 子的話就會對其他電子同樣的第一個控制點進行運算,其運算方法請參考上一 章。. 圖 3-4 電磁吸斥關係示意圖. 25.

(37) 3.3.2 初始化加速方法 因為產生電子路徑的初始控制點的位置是隨機的,所以為了避免演算法 前陎產生太過倒置的控制點,這樣會浪費太多前陎的運算處理時間。所以在產生 控制點的時候,會先根據起點跟終點的連線。並且透過依照距離來產生位於垂直 該線的控制點,如下圖(3-5)所示。當然在實際路徑規劃上,路徑並不是每次都可 以直接從起點連到終點,如果到時候是這種狀況的話,演算法會往需要的路徑去 收斂。不過會有如此的加速方法是因為實驗過後發現每次演算法每次前陎都在把 原本距離倒置的控制點調整順序上花了很多時間,故提出如此的加速方法。. 圖 3-5 初始控制點分配加速示意圖 3.3.3 控制點過度聚集之問題處理 控制點有時候會產生過度聚集現象,這樣就會產生演算法效能很差的現象。 因為當控制點過早都聚集在鄰近位置的時候,就算是控制點在附近搜尋的過程有 找到比較好的位置,但是這樣的微小移動也不會對於整體的適應值更新有很好的 效果,反而會使演算法都處於一個類似陷入區域最佳解的狀態。所以針對此現象 提出一個解決方法來克服該問題。. 26.

(38) 圖 3-6 控制點過度聚集的現象. 重新分配的功能就是會在亂數值  小於門檻值 T  det 的時候發生,當中的 T 是 選擇觸發此函式的門檻值,但是又不希望當演算法到後期漸漸收斂穩定的時候還 被此功能影響,所以本研究設置了 det 這個變數。該變數是使用者定義的一個常 數,目的是讓演算法隨著演化代數越來越進行到後期的時候,可以讓門檻值一次 次的調整,讓觸發的機率隨之降低,使得演算法不會受到影響。程式虛擬碼如下 表(3-7) 可以看到演算法中會根據需要分割的段數,並且把路徑按照距離來帄分,使得程 式可以重新按照距離安排控制點位置,以利解決演算法的控制點過度聚集的問 題。. 27.

(39) 表 3-7 類電磁演算法重新分配虛擬碼 ALGORITHM 6. Rearrange 1:   RNG(0,1) 2: if   T  det then 3:. j 1. 4:. for i  1 to h do. 5:. if length(i) . L j n. 6:. eki  position(i). 7:. if i  n  1. 8:. break. 9:. end if. 10:. j  j 1. 11: 12:. end if end for. 13: end if. 3.3.4 加速疊代計算次數方法 經過多次的實驗過程中發現,完整程式帄均計算下來各部分消耗時間如圖 (3-6)所示。當中在三次樣條插值(Cubic Spline Interpolation)的地方是花費程式運算 時間最多的地方,佔據了當中的 81.9756%的程式運算時間。會造就該原因的結果 是因為在使用三次樣條插值的時候會需要設定大量的對角矩陣來計算出需要插 補的點所產生的位置,而且在稀疏的幾個控制點之間要插補出完整路徑就會相對 需要解出更多的矩陣來算出帄滑的路徑。所以在計算這個部分的程式就相對會耗 費其他部分運算更多的時間。. 28.

(40) EM, 6.562518777. cost, 0.503514991. plot, 2.340924112. link point, 8.61743676. spline, 81.97560536. 圖 3-6 程式計算時間分佈百分圓餅圖. 在到達 Spline Iteration 之前的演化代數就會讓程式快速進行計算,在計算路 徑的時候僅讓控制點與控制點之間用直線進行連接,先使路徑找到初步的型態。 之後當 Spline Iteration 的演化代數開始的時候,才會開始進行細部的路徑帄滑計 算,並且逐步找出帄順的最佳路徑。因為演算法初期其實也是在找出大致上的路 徑輪廓,並還沒有到達需要微調路徑的階段,故使用該參數來減少前期演算法的 計算時間,並且在後期需要精密計算路徑的時候開始三次樣條插值,使得路徑可 以在後期的演化代數中找到最適合的路徑。. 3.3.5 預防碰撞之處理方式 由於本研究的路徑規劃方法目前只考慮到路徑的距離,但是若是在實際載具 應用中,若只讓載具沿著規劃出的路徑去尋跡,可能在實際的應用中產生碰撞。 所以本研究在演算法當中加入緩衝區域(Buffer)的概念,使得每個障礙物在實際位 置中都帄均加上一層緩衝區域如圖(3-7)所示,並且在演算法中讓程式也判斷成障 礙物的一部分。如此就可以依照使用者需求來進行參數調整以符合不同載具之大 29.

(41) 小,並且從中得到最佳的結果。. Buffer. 圖 3-7 緩衝區域示意圖. 在本研究中也有使用本方法來進行路徑的碰撞偵測。由於在每個控制點間的 路徑連線在程式中並不是完全連續的,路徑的連線在程式中是由很多離散並且密 集的點所組成。故有時候會產生圖片上已經發生碰撞,但是程式中會無法正確判 斷出碰撞所發生的位置如圖(3-8)所示。若把實際上程式產生的點放大來看就會是 圖中的圓點,雖然由點所構成的直線已經穿過障礙物,但是並沒有任何點碰撞到 障礙物,這樣就會造成程式的誤判。雖然說可以讓路徑上產生更多的點來計算碰 撞部分,但是如此會使得演算法計算負擔過大,並且可能還是會遇到更微小的碰 撞問題。故採取緩衝區域的方法來解決此問題,可以在不會更加巨量的增加運算 成本的情況下解決本問題。. 圖 3-8 碰撞誤判示意圖 30.

(42) 第四章 路徑帄滑 4.1 前言 路徑帄滑(Path Smoothing)是一個現代路徑規劃的趨勢。相對於傳統路徑規劃 演算法所產生的網格狀路徑,因為地圖都被切割成網格狀,所以產生的路徑當然 也是會帶有許多折角,但是這些折角是本研究在實際應用場合不願意遇到的。由 於現行大多數行動載具都是車型機構,所以陎對轉彎角度不帄滑的情況都必頇要 把原來行進速度降至極低才能通過這種不連續彎道。所以本研究會採用路徑帄滑 的方法來解決這種問題。. 4.2 貝茲曲線 貝茲曲線(Bezier Curve)[30]是 1962 年提出,並且廣泛應用在數學、電腦科學、 或是製圖學上陎,其後有人使用貝茲曲線配合基因演算法來進行路徑規劃的曲線 帄滑[11]。貝茲曲線的概念是從一次線段的概念出發的,如下圖(4-1)所示,假設 t 是 0 到 1 均勻分布的陣列,然後可以看到從點 D0 到 D1 只配合 t 陣列,可以把直線 L0 表示成式(4-1): L0  (1  t ) D0  tD1. (4-1). 31.

(43) 圖 4-1 一階直線圖. 如果現在取三個點來做兩次貝茲曲線,會先做 L0 和 L1 兩條直線如式(4-1)和式(4-2) 並且再對這兩條直線處理一次分量,如同式(4-3)之後統整成式(4-4)就可以得到二 次貝茲曲線如圖(4-2)。. 圖 4-2 二階貝茲曲線圖. L1  (1  t ) D1  tD2. (4-2). C (t )  (1  t )L0  tL1. (4-3). C(t )  (1  t )2 D0  2t (1  t ) D1  t 2 D2. (4-4). 依此類推可以得到三次貝茲曲線如同式(4-5),其結果如圖(4-3)。 C(t )  (1  t )3 D0  3t (1  t )2 D1  3t 2 (1  t ) D2  t 3 D3. 32. (4-5).

(44) 圖 4-3 三階貝茲曲線圖 最後可以整理出貝茲曲線公式如同式(4-6) n. C (t )   Bi , n (t ) Di i 0. (4-6). 當中的 Bi , n 是柏因斯坦多項式(Bernstein polynomials)是公式(4-7) n Bi , n (t )    t i (1  t )n i i  0, i. ,n. (4-7). 雖然貝茲曲線是一個簡單又實際的路徑帄滑方法,但是使用貝茲曲線產生ㄧ些不 被路徑所通過的控制點,這樣會增加演算法的參數以及計算上的不便利,本研究 希望所有的電子控制點在經過路徑帄滑的處理之後仍然還是在上陎,故本研究採 取了另外的路徑帄滑方法如下節所述。. 4.3 三次樣條插值 三次樣條插值(Cubic Spline Interpolation)[31]是使用多個分段多項式去進行內 插的方法,如此可以避免由高次多項式去進行曲線模擬時會產生的龍格現象 (Runge’s phenomenon)。龍格現象是因為使用了高階的多項式去近似曲線時所產生, 雖然說使用高階多項式會使得近似出來的曲線更加接近原曲線,但是在函式左右 兩側會產生強烈的震盪現象,該震盪現象被稱之為龍格現象。如圖(4-4)可以看到 當要使用高階多項式近似原函數 y . 5 的話(在(0,5)上最粗的線),使用 5 階多 1  x2. 項式(在 x  0 的軸當中,最下陎的曲線)去近似該曲線,會發現近似效果不佳,與 原曲線相去甚遠。若是提升階數,使用 9 階多項式去近似(在 x  0 的軸當中,倒 數第二條的曲線),會發現近似效果比 5 階多項式還要好,但是在圖形兩邊漸漸產 生龍格現象。若是使用 13 階多項式去近似(在 x  0 的軸當中,第二條的曲線)的話, 會發現更加貼近原函數,但是龍格現象會更加嚴重。可以觀察到隨著階數越高, 33.

(45) 雖然曲線有部分越接近原函數,但是龍格現象會隨之增強,所以邊界的抖動失真 現象會越來越明顯,變成無法使用高階多項式去近似所需要近似的曲線。為了解 決該問題,本研究使用由多個低階分段多項式來進行內插曲線,本方法可以避免 龍格現象又可以讓電子控制點都落在曲線上方,正好符合本研究之演算法需求。. 圖 4-4 龍格現象圖 三次樣條插值一開始是從拉格朗日方程式所推導而來,首先定義輸出 ki  C ''  ti  ,是 Ci ( x) 的兩次微分並且在邊界給定條件 k0  0, kn  0 ,然後經過二. 次微分的 C ''  ti  定義他等於拉格朗日方程式,如式(4-8). Ci''  x  . ki 1 ( x  ti ) ki ( x  ti 1 )  (ti 1  ti ) (ti 1  ti ). (4-8). 所以積分一次可以得到式(4-9) ki 1 ( x  ti )2 ki ( x  ti 1 )2 C ( x)    Ai  Bi 2(ti 1  ti ) 2(ti 1  ti ) ' i. (4-9). 再積分一次可以得到式(4-10),後陎常數項從與拉格朗日方程式無關,故這裡假 34.

(46) 定為 0,然後再積分一次可以得到式(4-10). ki 1 ( x  ti )3 ki ( x  ti 1 )3 Ci ( x)    Ai ( x  ti )  Bi ( x  ti 1 ) 6(ti 1  ti ) 6(ti 1  ti ). (4-10). 然後使用內插的性質: Ci (ti )  wi ,代入就得到式(4-11). ki (ti  ti 1 )3 wi    Bi (ti  ti 1 ) 6(ti 1  ti ). (4-11). 從式(4-11)可以推導得到 Bi ,如式(4-12). Bi . wi (t  t )k  i 1 i i (ti 1  ti ) 6. (4-12). 同理使用第二個內插的性質: Ci (ti 1 )  wi 1 ,帶入可以得到式(4-13). wi 1 . ki 1 (ti 1  ti )3  Ai (ti 1  ti ) 6(ti 1  ti ). (4-13). 從式(4-13)可以推導出 Ai ,如式(4-14). wi 1 (t  t )k  i 1 i i 1 (ti 1  ti ) 6. Ai . (4-14). 算出 Bi 跟 Ai 之後可以代回式(4-10)得到式(4-15). ki 1 ( x  ti )3 ki ( x  ti 1 )3  wi 1 (t  t )k  Ci ( x)     i 1 i i 1  ( x  ti ) 6(ti 1  ti ) 6(ti 1  ti )  ti 1  ti 6   wi (t  t )k    i 1 i i  ( x  ti 1 ) 6  (ti 1  ti ) . (4-15). 代回式(4-9)可以整理得到式(4-16). ki 1 ( x  ti )2 ki ( x  ti 1 )2 wi 1  wi ki 1  ki C ( x)     (ti 1  ti ) 2(ti 1  ti ) 2(ti 1  ti ) ti 1  ti 6 ' i. '. 如果把 Ci (ti ) 帶入式(4-16),可以得到式(4-17) 35. (4-16).

(47) w  wi k k 1 Ci' (ti )   ki (ti 1  ti )  i 1   i 1 i (ti 1  ti ) 2 ti 1  ti 6. (4-17) wi 1  wi ti 1  ti. 由於符號過於繁瑣,在此做一個符號替換,令 si  ti 1  ti 、令 di  然後把式(4-17)整理成式(4-18)以便後陎推導. 1 1 1 1 Ci' (ti )   ki si  di  (ki 1  ki )si   si ki 1  si ki  di 2 6 6 3 依照連續的性質: Ci'1 (ti )  Ci' (ti ) ,i  1, 2,. (4-18). , n 1,配合已推導出的式(4-18)得到式. (4-19). Ci'1 (ti ) . 1 1 1 1 si 1ki  di 1  (ki  ki 1 )si 1  ki 1si 1  ki si 1  di 1 2 6 6 3. (4-19). 整理式(4-18)和式(4-19)配合初始條件可以整理出式(4-20). si 1ki 1  2(si 1  si )ki  si ki 1  6(di  di 1 )  i  1, 2, , n 1  k0  k n  0. (4-20). 把式(4-20)整理成矩陣形式 Sk = d. s1 0 0  2( s0  s1 )  s1 2( s1  s2 ) s2 0   0 s2 2( s2  s3 ) s3 S   0 0 sn 3  0 0 0 .   0   0   (4-21)  2( sn 3  sn  2 ) sn  2  sn  2 2( sn  2  sn 1 )  0. 因為矩陣 S 是三對角矩陣(tri-diagonal),且對稱(symmetric),並且主對角化優勢 (diagonal dominant)如下式(4-22). 2 si 1  si  si  si 1. (4-22). 綜合已上性質可以得知此矩陣具有唯一解(unique solution)。 還有向量 k 在矩陣形式表示如式(4-23) 36.

(48)  k1    k 2    k3  k     k   n  2   kn 1 . (4-23). 還有向量 d 在矩陣形式表示如式(4-24).  6(d1  d 0 )     6(d 2  d1 )   6(d3  d 2 )  d     6(d  d )  n2 n 3   6( d  d ) n 1 n2  . (4-24). 式(4-15)就是完整的三次樣條插值的公式,在使用該公式的時候需要已知要插補 的點,如圖(4-5)中的圓點 (ti , wi ) 就是準備要拿去插補的點。然後根據式(4-15)中 Ci ( x) 是代表不同段的帄滑曲線,當中 (ti , wi ) 是已知的插補點,故未知項只有 ki. 故解出矩陣 Sk = d 就可以得到 ki ,並且可以算出三次條樣插值結果如圖(4-5)。圖 中圓點為 (ti , wi ) 是從弦波裡陎取樣出來的點,原本把這些點連線起來如下圖所示, 但是經過三次樣條插值之後可以透過原本已知的點來得到如同原本取樣前的弦 波,不過這個弦波是由多段的 Ci ( x) 組合而成的連續帄滑曲線。. 37.

(49) 圖 4-5 三次樣條插值結果圖. 38.

(50) 第五章 實驗結果 5.1 實驗介紹 本次實驗使用之電腦 CPU 為 Intel i5-4460 @3.2GHz 3.2GHz,程式軟體使用 MATLAB。實驗圖形中藍色巨大物體代表障礙物,黃色方塊是起始位置,綠色星 形是目標位置,則連接起點到終點的線是產生出的路徑,而紅色的點代表控制點 位置。基本實驗產生出的結果圖如下圖(5-1)所示,類電磁演算法路徑規劃參數如 下表(5-1)所示。. 表 5-1 類電磁路徑規劃演算法實驗參數 控制點數量. 8. 總疊代次數. 50. 起始插值疊代. 1. 電子數量. 20. 附近搜尋上限. 100. 附近搜尋範圍參數. 0.4. 重新分配控制點機率. 0.1. 39.

(51) 圖 5-1 路徑實驗結果圖. 在計算成本函數的方法是把路徑從起點到終點的路徑長度加上處罰函數 乘上碰撞次數,如下式(5-1)所示:. f (cost)  Length  penalty  crush. (5-1). 長度(Length)的部分是依據地圖實際長度的歐幾里得距離來計算,處罰函數 (penalty)的部分是取地圖的總長度乘上總寬度,使得只要一發生碰撞,就會使得 該路徑相較於其他沒碰撞的路徑而言,成本函數會相對高很多。成本函數在考量 的時候都是希望越小越好,所以當碰撞次數(crush)增加的時候,就會讓整體路徑 成本函數提高很多,就可以知道該路徑是條比較不好的路徑。實驗過後也會顯示 出在各個演化代數之間相對的成本函數大小,用來表示演算法的收斂過程,如圖 (5-2),並且從該圖中可以看到在沒有發生碰撞的情況下,最後的成本函數值大小 就等於最後規劃出來的路徑長度。 40.

(52) 圖 5-2 路徑之成本函數圖. 本研究也有在較為複雜之環境測詴演算法之計算能力,實驗結果和地圖環境 如下圖(5-3)所示。若是在較為複雜的環境下就會需要比較多的控制點來應對該環 境所需,使用參數表如下表(5-2)所示。 表 5-2 類電磁路徑規劃演算法實驗參數 控制點數量. 20. 總疊代次數. 50. 起始插值疊代. 10. 電子數量. 20. 附近搜尋上限. 100. 附近搜尋範圍參數. 0.4. 重新分配控制點機率. 0.1. 41.

(53) 圖 5-3 較複雜環境實驗圖. 圖 5-4 較複雜環境之成本函數圖 42.

(54) 5.2 參數比較實驗 本實驗目的在於比較類電磁路徑規劃演算法內部參數以比較其效能差異。當 中控制點數量是根據路徑複雜程度來進行修正,若使用過多的控制點會導致程式 計算上會延遲,因為控制點的增加就表示控制點間的連線會增加,進而使得需要 進行區間內插的空隙會隨之增加,並且會讓程式進行大量矩陣運算,故會增加許 多計算時間。但是如果使用太少的控制點會造成在較為複雜的實驗環境中,當需 要轉彎的次數遠大於控制點數量就可以預想到程式可能無法跑出一條完全沒有 發生碰撞的路徑。. 總疊代次數也是非常直觀的,當疊代次數過少會使得演算法沒有進行完整, 所以可能會找不到比較好的路徑,就像是強制回收考生未作答完全的考卷進行批 改,改出來的分數低不代表這位學生資質不佳,而是作答時間不夠。由於類電磁 路徑規劃演算法在每次疊代進行的步驟比較複雜,所以具有能在比較少的疊代次 數就收斂的特性,故使用在較簡易環境的時候建議大概 15~30 代即可完成收斂。. 附近搜索功能是一個較為不直觀的功能,為了釐清當中數據關係進行實驗研 究比較,使用參數如下表(5-3),實驗比較地圖如圖(5-5)及結果如表(5-4)。. 43.

(55) 圖 5-5 參數比較實驗使用地圖. 44.

(56) 表 5-3 類電磁路徑規劃演算法實驗參數 實驗組. 對照組. 控制點數量. 6. 控制點數量. 6. 總疊代次數. 15. 總疊代次數. 15. 起始插值疊代. 5. 起始插值疊代. 5. 電子數量. 20. 電子數量. 20. 附近搜尋上限. 100. 附近搜尋上限. 15. 附近搜尋範圍參數. 0.4. 附近搜尋範圍參數. 0.4. 重新分配控制點機率. 0.1. 重新分配控制點機率. 0.1. 45.

(57) 表 5-4 參數比較實驗結果表 實驗組. 時間(秒) 距離(米) 對照組. 時間(秒) 距離(米). Test1. 11.6268 29.8093 Test1. 7.5804. 29.8785. Test2. 13.334. 29.875. Test2. 7.8428. 29.6808. Test3. 20.942. 31.3292 Test3. 6.8452. 30.4978. Test4. 14.4184 24.1945 Test4. 8.5116. 32.252. Test5. 16.2428 30.2482 Test5. 7.564. 29.6879. Test6. 11.5316 29.1534 Test6. 7.8416. 31.549. Test7. 17.3784 31.5299 Test7. 7.0464. 30.2113. Test8. 13.6924 28.7768 Test8. 8.0584. 30.1493. Test9. 13.9856 30. 9.1868. 31.2655. Test10. 16.1616 31.9546 Test10. 9.2072. 28.9183. Test11. 12.7232 24.7211 Test11. 8.6396. 30.2921. Test12. 15.5344 27.3564 Test12. 8.3344. 29.767. Test13. 16.606. 8.6304. 30.8127. Test14. 13.9748 28.4452 Test14. 11.5428 32.7342. Test15. 13.0468 30.5394 Test15. 7.6672. 29.4881. Test16. 16.078. 7.628. 24.414. average. 14.8298 29.09271 average. Test9. 28.4576 Test13. 29.0927 Test16. 8.257925 30.09991. 可以從實驗中看出如果當在附近搜索較多次數的時候調整出來的路徑結果可 能會比較好,但是在使用時間上就會消耗比較多,這概念就是演算法搜尋中的搜 索(exploration)偏向以及鑽探(exploitation)偏向之間的不同。搜索偏向可以比較快 速的找到大致上的方向,但是不見得可以仔細地發現更多更好的解,但是鑽探雖 然搜尋的速度比較慢,但是可以仔細地找到更細微更好的解答。 46.

(58) 5.3 效能比較實驗 本實驗在相同設備、相同地圖中來進行類電磁路徑規劃演算法以及粒子群集 路徑規劃演算法來進行效能的比較,比較的項目有實驗執行成功率,實驗路徑失 敗的情況發生就代表最終產生的實驗路徑會產生障礙物碰撞的情況。. 本實驗所採用之類電磁路徑規劃演算法虛擬碼如第三章所述,而本實驗對照 比較的粒子群集路徑規劃演算法如表(5-5)所示。為了讓兩個演路徑規劃演算法進 行效能比較,大部分程式處理方法以及邏輯上都和本研究提出的方法相似,只有 在演算法差異的地方才有不同。粒子群集路徑規劃演算法總理虛擬碼當中的 MAXITE 也是代表總體執行演化代數,ite 代表當前所執行的疊代次數,然後 Update Velocity 是更新粒子速度的公式,請參照前陎第二章 2.8 節式(2-1)。Bound() 的功能是讓速度或是位置不要超出程式所設定之定義域內,當速度大於或小於速 度界限時就會把速度定在使用者設定的臨界速度,距離也是同樣的道理。更新位 置的公式可以參照前陎第二章 2.8 節式(2-2),當速度乘上單位時間並且加上之前 的位置座標就可以產生出新的粒子位置。在確定位置不會超過所設定的定義域之 外以後就會找出並且更新最佳解,以便下一個疊代進行計算。. 47.

(59) 表 5-5 粒子群集路徑規劃演算法總體虛擬碼 ALGORITHM 1. PSO( m , n ,MAXITE) 1: Initiation() 2: ite←1 3: while ite <MAXITE do 4:. Update Velocity. 5:. Bound(Velocity). 6:. Update Position. 7:. Bound(Position). 8:. ite ←ite + 1. 9:. pbest  argmin  f ( pi ), i. 10: end while. 初始化過程大部分過程都和類電磁演算法相同,就是針對 m 個電子的 n 個控 制點來進行隨機的初始化,最後找出最好的粒子,以利演算法的進行。. 表 5-6 粒子群集路徑規劃演算法初始化虛擬碼 ALGORITHM 2. Initialize() 1: for i  1 to m do 2:. for k  1 to n do. 3:.   RNG(0,1). 4:. pki  lbk  RNG(ubk  lbk ). 5:.   RNG(0,1). 6:. vki  vlbk  RNG(vubk  vlbk ). 7:. end for. 8:. Calculate f ( pi ). 9: end for 10: pbest  argmin  f ( pi ), i. 48.

(60) 5.3.1 實驗地圖 1 實驗地圖以及類電磁路徑規劃演算法之結果路徑如圖(5-6),類電磁路徑 規劃演算法及粒子群集演算法使用參數如表(5-7),實驗結果如表(5-8). 圖 5-6 實驗地圖 1 路徑結果圖. 49.

(61) 表 5-7 實驗地圖 1 效能比較實驗參數使用表 類電磁演算法. 粒子群集演算法. 控制點數量. 6. 控制點數量. 6. 總疊代次數. 15. 總疊代次數. 100. 起始插值疊代. 5. 粒子數量. 200. 電子數量. 20. w. 1. 附近搜尋上限. 100. C1. 2. 附近搜尋範圍參數. 0.4. C2. 2. 重新分配控制點機率. 0.1. 50.

(62) 表 5-8 實驗地圖 1 效能比較實驗結果表 類電磁演算法. 粒子群集演算法. 時間(秒) 距離(米). 時間(秒) 距離(米). Test1. 11.6268 29.8093. Test1. 19.9780 30.3475. Test2. 13.3340 29.8750. Test2. 19.9196 27.3047. Test3. 20.9420 31.3292. Test3. 20.0832 32.6497. Test4. 14.4184 24.1945. Test4. 19.1624 32.8347. Test5. 16.2428 30.2482. Test5. 19.2524 30.0895. Test6. 11.5316 29.1534. Test6. 20.3876 23.5034. Test7. 17.3784 31.5299. Test7. 20.4192 23.6803. Test8. 13.6924 28.7768. Test8. 19.4380 29.1180. Test9. 13.9856 30.0000. Test9. 19.0132 32.7051. Test10. 16.1616 31.9546. Test10. 19.7520 32.7567. Test11. 12.7232 24.7211. Test11. 19.6548 29.1823. Test12. 15.5344 27.3564. Test12. 19.4396 32.9558. Test13. 16.606. 28.4576. Test13. 19.3100 27.2484. Test14. 13.9748 28.4452. Test14. 19.4352 27.1952. Test15. 13.0468 30.5394. Test15. 19.1796 32.7977. Test16. 16.078. Test16. 19.8200 24.2188. 帄均. 19.6403 29.28674. 帄均 成功率. 29.0927. 14.8298 29.09271. 成功率. 100%. 100%. 在本次實驗中可以看出類電磁演算法在帄均運算時間以及運算距離上都 較粒子群集演算法為優。. 51.

(63) 5.3.2 實驗地圖 2 實驗地圖以及類電磁路徑規劃演算法之結果路徑如圖(5-7),類電磁路徑 規劃演算法及粒子群集演算法使用參數如表(5-9),實驗結果如表(5-10). 圖 5-7 實驗地圖 2 路徑結果圖. 52.

(64) 表 5-9 實驗地圖 2 效能比較實驗參數使用表 類電磁演算法. 粒子群集演算法. 控制點數量. 6. 控制點數量. 6. 總疊代次數. 15. 總疊代次數. 100. 起始插值疊代. 5. 粒子數量. 200. 電子數量. 20. w. 1. 附近搜尋上限. 100. C1. 2. 附近搜尋範圍參數. 0.4. C2. 2. 重新分配控制點機率. 0.1. 53.

(65) 表 5-10 實驗地圖 2 效能比較實驗結果表 類電磁演算法. 粒子群集演算法. 時間(秒) 距離(米). 時間(秒) 距離(米). Test1. 21.9300. 48.4682. Test1. 24.0103. Test2. 19.7437. 47.8878. Test2. 23.2330 44.6292. Test3. 19.8873. 49.5178. Test3. 23.1057 43.9182. Test4. 19.9550. 48.6035. Test4. 23.8523 45.3575. Test5. 21.0437. 45.2791. Test5. 23.8920 44.5528. Test6. 20.7753. 45.9460. Test6. 23.4766 44.4395. Test7. 18.8727. 44.4692. Test7. 23.5717 43.6857. Test8. 17.0196. 48.0878. Test8. 23.6180 44.5549. Test9. 18.4823. 45.9321. Test9. 24.3787 44.9955. Test10. 20.0187. 44.6233. Test10. 23.6040 44.5345. Test11. 21.5216. 44.4962. Test11. 24.3037. Test12. 20.1166. 46.6915. Test12. 24.1520 44.1952. Test13. 17.0317. fail. Test13. 23.5646 44.5985. Test14. 22.5696. 44.4088. Test14. 23.6493 43.9979. Test15. 17.2680. 47.8376. Test15. 23.7267 43.8852. 帄均. 23.74258 44.41112. 帄均 成功率. 19.74907 46.58921. 成功率. 93.3%. fail. fail. 86.7%. 在本次實驗中可以看到類電磁演算法運算時間較短、成功率較高的優點,不 過帄均路徑長度以粒子群集演算法表現較佳。. 54.

(66) 5.3.3 實驗地圖 3 實驗地圖以及類電磁路徑規劃演算法之結果路徑如圖(5-8),類電磁路徑 規劃演算法及粒子群集演算法使用參數如表(5-11),實驗結果如表(5-12). 圖 5-8 實驗地圖 3 路徑結果圖. 55.

(67) 表 5-11 實驗地圖 3 效能比較實驗參數使用表 類電磁演算法. 粒子群集演算法. 控制點數量. 6. 控制點數量. 6. 總疊代次數. 15. 總疊代次數. 100. 起始插值疊代. 5. 粒子數量. 200. 電子數量. 20. w. 1. 附近搜尋上限. 100. C1. 2. 附近搜尋範圍參數. 0.4. C2. 2. 重新分配控制點機率. 0.1. 56.

(68) 表 5-12 實驗地圖 3 效能比較實驗結果表 類電磁演算法. 粒子群集演算法. 時間(秒) 距離(米). 時間(秒) 距離(米). Test1. 20.5983 35.1877. Test1. 22.6664 35.1344. Test2. 18.1427 35.9706. Test2. 22.3648. Test3. 17.7783 35.3015. Test3. 21.2600 35.1214. Test4. 24.1717 37.9860. Test4. 22.7684. Test5. 19.4076 36.0964. Test5. 20.6496 35.1573. Test6. 20.1643 36.1184. Test6. 20.6128 35.0859. Test7. 18.2557 34.9031. Test7. 22.8540. Test8. 24.7883 36.7308. Test8. 26.1152 35.1625. Test9. 25.7660 37.8476. Test9. 21.8576. Test10. 18.7760. Test10. 20.9044 35.1962. Test11. 20.7680 36.9699. Test11. 20.6520 35.1953. Test12. 19.2127 35.3096. Test12. 20.7616 35.3027. Test13. 18.3743 35.1916. Test13. 21.0392 35.1838. Test14. 19.2960 35.2325. Test14. 20.9148 35.1110. Test15. 19.2960 35.7426. Test15. 20.9228 35.2028. Test16. 21.9150 34.8907. Test16. 20.5155 35.0124. 帄均. 20.41944 35.96527. 帄均. 21.67870 35.15548. 成功率. fail. 成功率. 93.75%. fail. fail. fail. fail. 75%. 在本次實驗中可以看到類電磁演算法運算時間較短、成功率較高的優點,不 過帄均路徑長度以粒子群集演算法表現較佳。實驗結果如同實驗地圖 2,故可以 得知類電磁路徑規劃演算法相較於粒子群集路徑規劃演算法具有收斂情況穩定、 57.

(69) 成功率高、計算花費時間較短的優勢,但是帄均路徑長度而言是粒子群集路徑規 劃演算法較佳。收斂穩定情況是因為類電磁演算法在一個疊代之中參考計算其他 電子的部分較多,並且也會把不好的結果作為反向指標參考,故可以在較短的演 化代數內精準的收斂,並且因為這精準的特性使得計算時間較有效率。但是會考 慮所有電子吸斥特性,故相較於除了慣性之外只考慮自己以前最好的解以及全域 最佳解的粒子群集路徑規劃演算法而言,找出較短路徑的能力可能略遜一籌。. 5.4 收斂過程比較實驗 這個實驗是在同樣的地圖中進行兩種路徑規劃演算法地圖的收斂情況,會先 分別顯示演化疊代的前三代還有的五代,接著是第十代,接著是演化代數進行到 一半時候的結果,以及最後完成計算的圖形。類電磁路徑規劃演算法的收斂情況 可以從圖(5-9)看出,使用參數表如表(5-13),圖中可以看出本演算法的路徑收斂 情況。則粒子群集路徑規劃演算法的使用參數表如表(5-13)收斂情況可以從圖 (5-10)得知。. 表 5-13 收斂過程比較實驗參數使用表 類電磁演算法. 粒子群集演算法. 控制點數量. 6. 控制點數量. 6. 總疊代次數. 30. 總疊代次數. 100. 起始插值疊代. 5. 粒子數量. 200. 電子數量. 20. w. 1. 附近搜尋上限. 100. C1. 2. 附近搜尋範圍參數. 0.4. C2. 2. 重新分配控制點機率. 0.1. 58.

(70) 圖 5-9 類電磁路徑規劃演算法收斂情況圖. 圖 5-10 粒子群集路徑規劃演算法收斂情況圖 59.

參考文獻

相關文件

Selcuk Candan, ”GMP: Distributed Geographic Multicast Routing in Wireless Sensor Networks,” IEEE International Conference on Distributed Computing Systems,

Godsill, “Detection of abrupt spectral changes using support vector machines: an application to audio signal segmentation,” Proceedings of the IEEE International Conference

D.Wilcox, “A hidden Markov model framework for video segmentation using audio and image features,” in Proceedings of the 1998 IEEE Internation Conference on Acoustics, Speech,

Gen, &#34;Minmax earliness/tardiness scheduling in identical parallel machine system using genetic algorithms,&#34; Computers &amp; Industrial Engineering, vol. Cheng,

Harma, “Automatic identification of bird species based on sinusoidal modeling of syllables,” in Proceedings of IEEE International Conference on Acoustics, Speech,

Dragan , “Provably good global buffering using an available buffer block plan”, IEEE International Conference on Computer-Aided Design, pp.. Cong, “Interconnect performance

Kalker, “Speed-Change Resistant Audio Fingerprinting Using Auto-Correlation,” in IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. Kalker,

Card, ”Bird song identification using artificial neural networks and statistical analysis”, in Proceedings of Canadian Conference on Electrical and Computer