• 沒有找到結果。

4.1 基因演算法

4.1.1 問題分析

基因演算法是常被使用在龐大的搜尋空間中找出最佳解的演算法,且染色體的設計 彈性以及具有許多基因操作參數的可調整性 ,使之成為許多學者愛用的搜尋演算法 。 本 研究的地標關聯最佳化的搜尋空間計算如下 :

m(m + 1) × Ix × Iy × Iθ

= 512 × 513 × 30 × 30 × 60

= 14183424000

≈ 234

其中m 為當前時刻地標個數(512個雷射掃描點) , m + 1 為可關聯的對象 (前一時刻 m 個地標加上1個隨意項) , Ix 為機器人左右移動的區間[-15, 15]公分 , Iy為機器人前後 移動的區間 [-15, 15] 公分 , Iθ 為機器人旋轉角度的區間 [30, 30] 度 。 由於有這麼大的 搜尋空間,故我們使用特徵點擷取技術大大的減少特徵點的個數 ,使搜索空間大幅降低, 並更進一步依照地標關聯的特性過濾掉一些不合理的可能 , 故在地標關聯的問題上使用 基因演算法是有一定的優勢 。

本研究是將地標關聯的問題最佳化並利用基因演算法來解決 ,藉由地標關聯來解出

• 地標關聯錯誤:地標的錯誤關聯將會利用適應性函式加以控制 ,使關聯度較好的地 標組合被保留下來,關聯度較差的地標組合則被淘汰 。

• 誤將移動的物體偵測為地標:由於本研究目前並未在實驗場地內安排移動的物體, 故此點並不納入本研究的影響範圍內 。

• 無法每次都偵測到相同的地標:在染色體內必須加入隨意項 ( don’t care ) 表示符 號,已表示未對應到的地標 。

由以上的敘述本研究把地標關聯利用染色體編碼表示 ,關聯的正確於否取決於適應性函 數的高低 ,由適應性函數計算出來的若越高 ,則表示此地標關聯組合的染色體,地標關 聯較正確,反之 ,則地標關聯較不正確 。 當演化式的地標關聯結束後 ,將未關聯到的新 地標,儲存在地標資料庫中 ,並從最靠近新地標的舊地標依序把雷射環境點畫入地圖 ,已 完成地圖建立 。

4.1.2 染色體編碼

在最佳化的地圖關聯中 ,最先要處理的是如何利用染色體來表示此最佳化問題 ,即 染色體編碼 。 地標關聯首先需有兩個時刻的雷射環境感測圖方可實行 ,由圖4.1中箭頭表 示兩不同時刻中相同地標的對應關係 ,是故如何表達出箭頭所代表意義即為染色編碼的 要點 。 由公式 (2.5),我們把染色體分為兩部分, 一部分是匹配基因組,代表公式中 P 。 另一部份是機器人旋轉移動參數組,代表公式中 θ 、 ∆x∆y 的關係 。 如圖4.2所 示 。 為方便將地標對應關係實現於程式中,我們將使用陣列來表示箭頭的關聯,首先利 用陣列的位置當作 t+ ∆t 時的特徵點編號 ,而其陣列位置內的值表示 t 時的特徵點編 號,故使得箭頭的關聯方式與機器人旋轉位移參數可以一併在陣列中表示 。

4.1: 地標關聯的關係

(a)地標完整對應

(b) 地標不完整對應

4.3: 陣列表示箭頭關係

4.1.3 適應函數訂定

如何判斷染色體中所內涵的訊息是否為程式設計者所需要的解答,就必須就由適應 度函數來評估好壞,因此合理客觀的適應度函數是影響基因演算法好與壞中決定性的關

鍵 。 由最佳化的誤差公式 (2.6) ,定義本研究的適應度定義函數為:

f itness(ǫ(t)) = 1 1 + m1Σjǫj

ǫj = kfj(t) − fcj(t)k

• gj(t) : 時間為 t 時的特徵點 。

• gcj(t) : 時間為 t 時的特徵點藉由旋轉與平移矩陣得出的轉換後特徵點 。

• ǫj : 為兩特徵點間的歐幾里德距離 。

利用當下的特徵點平移旋轉推估前一時刻的特徵點位置 ,並對應前一時間的特徵點並計 算歐幾里德距離,距離越近表示旋轉與平移參數對這組地標關聯越是正確,最後把所有 地標關聯組的距離累加起來取平均之後,加 1 取倒數正規化當作是這整組染色體的適應 值 。若有隨意項出現時,將會將會有一預先擬定好的隨意項誤差作為平衡,防止隨意項 過多或過少 。

4.1.4 交配突變機制

由於染色體分為匹配基因與旋轉位移基因兩部分,故交配與突變方式較一般傳統的 基因演算法不同 。 且匹配基因部分更需注意交配與突變之後地標關聯的合理性 ,細節說 明如下 :

• 交配:本研究中採用基因演算法的方式為兩點交配,其一為在匹配基因部分隨機選 取一個基因為交配點,並交換此交配點後的所有匹配基因 ,其二是旋轉與平移基因

, 。

ϭ Ϯ ϯ ϰ ϱ ϲ Ϭ Ϭ ϱ

Ͳϭ ϭ Ϯ Ͳϭ ϰ ϱ ϯ ϰ Ϭ

ϭ Ϯ ϯ Ͳϭ ϰ ϱ ϯ ϰ Ϭ

Ͳϭ ϭ Ϯ ϰ ϱ ϲ Ϭ Ϭ ϱ WĂƌĞŶƚс

WĂƌĞŶƚс

ŚŝůĚс

ŚŝůĚс

4.4: 交配示意圖

4.5: 突變示意圖

• 突變:本研究突變的方式為隨機選取 ,在匹配基因處移動旋轉參數組隨機選取一點 , 作為突變點 。 若突變點為隨意項(−1) 則往左邊格子取最小數字取碰到 (−1) 或陣 列開頭為止,往右取最大數字, 取碰到 (−1) 或陣列結尾為止,將此一大一小的數 字當作隨機突變地標的上下界 。 若突變點不為隨意項(−1) 則判斷是否以達最高隨 意項的數量 ,若未達則變成 (−1) ,若達成則不予突變如圖4.5

在上述的交配與突變的過程中,由於地標關聯具有順序型 、 不重複性,固有許多不合邏 輯或不允許的子代產生,如圖4.6 這些不符合邏輯的子代將會保留至適應函數中 ,由適應 函數先行檢查染色體的順序性與重複性 ,並給予極低的適應度,使這些不合理的染色體 自然淘汰 。

(a)交配: 地標重複 (b)交配: 地標順序有誤

(c) 突變:地標重複 (d) 突變:地標順序有誤

4.6: 不合邏輯的交配與突變

4.1.5 重置機制

為了加大染色體的多元性以及加速尋找較佳的區域最佳解,我們設定了每 10 代便 會執行一次重置機制 ,每次重新啟動將會留下兩條最優秀的染色體以保留較佳的基因得 以傳承,接下來便是以亂數的方式來產生染色體 ,以增加搜尋範圍的多樣性 。

相關文件