第三章 研究方法
3.2 演算法
演算法如下:
是 否
否
是
是
否 否
圖 2 演算法流程圖 是
根據上述演算法流程圖,可將本文之演算法敘述如下:
步驟一:將未分類的物種放在未分類的群組中,即是所有物種。
步驟二:在所有物種中,隨機挑出兩個物種。
步驟三:將挑出的兩物種建立為一個群組。
步驟四:選取兩物種以外的物種進入此群組進行比對。
步驟五:判斷加入的物種是否滿足4-對偶規則。
若滿足4-對偶規則,則跳入步驟六。
否則跳回步驟四,將未比對過的物種依序加入群組比對;若無剩餘 未比對之物種,則跳入步驟八。
步驟六:將滿足4-對偶規則的物種放入群組。
步驟七:判斷是否將所有物種比對完畢。
若比對完畢,則跳入步驟八。
否則跳回步驟五,將尚未比對過的物種放入是否滿足4-對偶規則中。
步驟八:判斷是否每個物種皆有分到群組。
若每個物種皆有群組,則結束。
否則跳回步驟二,將剩餘未分到群組的物種隨機挑出兩物種建立群 組。
本研究所提出的演算法是屬於啟發式的演算法。近年來觀察自然界的生物行 為,獲得概念來設計求解啟發式演算法的精確性問題已成為熱門的研究領域,而 這類型的演算法概念不僅是模仿自然界行為,更是藉由觀察自然界所獲得的靈 感,一般大家所聽過的例子有:基因演算法是源自於生物演化所提出、Ant 演算 法是透過蟻群的覓食行為、粒子演算法為效法鳥類覓食行為、模擬退火演算法是 藉由觀察固體加熱後控制降溫使分子重新排列等...。由於這些演算法非常的具有
27
題上,也能求出不錯的解,但是沒辦法確定它最壞的情況;它通常也可在合理的 時間內解出答案,但也沒辦法保證它是否每次都能以同樣的速度求解。
本研究演算法的設計構想是來自於Berger-Wolf et al.(2005)的最小集合涵蓋 法。透過了解最小集合涵蓋法後,可發現逐步作基因比對的效果很緩慢,循序比 對比完後才能重啟新的一個樣本繼續與其他基因型進行的比對。從這個方法可以 很直覺的想到,若事先取兩個成一群當樣本,再與其他基因進行比對,其速度上 的增加本研究將透過實驗來進行驗證。任兩個物種事先成一群作樣本的目的在於 加快分群比對的速度。
如下舉例說明本研究的演算法步驟。首先給定一群物種 N={1, 2, 3, 4, 5, 6, 7, 8},每一個物種的基因具有兩個基因座,每個基因座含有兩個對偶基因,如表 6 所示。開始對 N 進行分群,隨機抽取兩物種 S={2, 3}得到一分群,將其他未分 類物種放入此進行比對(需滿足4 對偶基因的限制),若無法足特性,便回到 N。
如表7 所示為此種分群也是最佳的分群結果。
1. 八個物種 N={1, 2, 3, 4, 5, 6, 7, 8}。
2. 基於孟德爾遺傳法則,隨機將任兩樣本當作同一個親緣群集 S1={2, 3}。
3. 把其餘樣本 N={1, 4, 5, 6, 7, 8}一個一個放進親緣群集 S1進行比對,能 夠滿足4 對偶基因的限制則留在親緣群集 S1,而最佳分群情況則是 S1
={2, 3, 4, 5, 6},能以最少的群數,容納最多的樣本。
4. 而未分類的樣本 N 中尚有{1, 7, 8},將任兩樣本作為親緣群集 S2={7,
8},將剩下的樣本 1 放入親緣群集 S2比對,滿足 4 對偶基因的限制則
留在親緣群集 S2,輸出產成兩個分群 S1={2, 3, 4, 5, 6}、S2={1, 7, 8}。
表 7 針對本研究演算法之樣本資料範例
Animal
Locus 1 Locus 2 allelel1/allele2 1
2 3 4 5 6 7 8
149/167 243/255 149/155 245/267 149/177 245/253 155/155 253/253 149/155 245/267 149/155 245/277 149/151 251/255 149/173 255/255
表 8 本研究演算法之分群結果 Sibling Groups:
2,3,4,5,6 1,7,8
29