• 沒有找到結果。

第三章、 研究方法

3.4 基因規劃法

基因規劃法源自於基因演算法(genetic algorithms, GA),為 John Koza 在 1992 年首先提出,基本架構遵循演化式計算的精神,模擬生物演化過程中「物競天擇,

適者生存」的概念,自隨機產生的初代個體中,透過突變、互交、複製等演化過 程,並且經過與其他個體的互相競爭,逐漸演化留下個體適應度高的個體。經由 一代一代的演化,最後留下來適應度最高的個體,即代表了此問題領域的最佳可 能解。

基因規劃法分為五個主要部份:

1. 產生初代個體 (initial population)、

2. 適應函數 (fitness function)、

3. 母代挑選機制 (selection)、

4. 演化運算子 (genetic operator)、

5. 終止條件 (termination criterion)。

系統從得到的二級結構中擷取初代個體,計算所有個體的適應分數,透過挑 選機制產生母代,並經由演化運算子得到子代個體,直到個體數目達到族群數 量。再如此反覆的一代一代得進行演化,直到滿足終止條件為止。最後則輸出最 佳的幾個個體。

本系統的基因規劃法流程如下:

圖 20. 基因規劃法流程圖

以下各小節將詳述故部分的實作方法:

3.4.1 產生初代個體

在演化的過程中,有個良好的演化起點可以加快搜尋的效率。由於共同結構 元表示會出現在各序列上的相似結構,因此我們從輸入序列的候選結構中擷取子 結構來做為第一代。而取子結構的方法,則相當於在候選結構的 RNA dual graph 概念圖中取出子圖一樣,先在圖中隨機取一個頂點,然後隨機沿著邊走向其他頂 點,然後將走過的頂點與和這些點相關的邊取出來構成子圖,並將子圖調整成一 個合理 RNA dual graph。最後再將子結構中的每個長度隨機往外拓展,形成一長 度區間。

圖 21. 產生初代個體:左圖為候選結構,中圖為隨機取得之子結構,右圖則為將中圖補上適當邊 之後所得之合理的 RNA dual graph。

我們取前面候選結構的概念圖(如上圖 21 左圖)來做例子,假設我們隨機取到 的點為頂點 3,而從頂點 3 出發,沿著邊隨機走的路徑為:3Æ7Æ8Æ8Æ2Æ3,

依此路徑取得了子圖(如上圖 21 中圖),接著補上應該有的邊,並計算其長度,再 重新調整頂點編號(如上圖 21 右圖),得到一個合理的 RNA dual graph。則此子圖 的資料結構表示法如下:

圖 22. 對應圖 21 右圖之資料結構表示法

其表示的子結構如下圖方框部份。

圖 23. 方框內表示取得之子結構,亦即所產生之初代個體

最後我們將此子結構中的每個長度隨機向外拓展,所得即為演化的初代個

其中M 代表輸入序列中,包含結構元I的個數;N 代表背景序列包含結構元I

3.4.4 演化計算子

以下各小節介紹本研究所使用的各演化運算子:

3.4.4.1 突變(mutation)

突變包含了長度突變與結構突變:長度突變是在挑選的結構中,隨機挑選其 概念圖中的一個點或一個邊,然後改變其長度範圍。

而結構突變則是隨機改變挑選結構的結構形狀,或是在原本結構多加一個點 其對應邊。

Æ 改變結構

Æ 加點及對應邊

3.4.4.2 互交(crossover)

隨機選擇兩個結構,各選擇其中一個點,依此為依據,交換部分子結構,其 概念圖如下。

Æ

Æ

互交不僅可以改變結構拓璞,莖幹數也隨之改變,而當挑選到的莖幹恰好是 共同結構元上的不同子結構時,透過互交將兩者結合起來,可以使跳脫區域最佳 解的機會大增。

3.4.4.3 重製

除了保留適應分數高的個體外,我們也保留一些機會讓母代能完整保留下 來,以增加族群的多樣性。

3.4.4.4 清除重複個體

當演化到一定程度後,可能會往某幾個區域最佳解逼近,而使整個族群充斥 著特定的個體。而族群變異度太小,缺乏多樣性,容易使演化結果侷限在區域最 佳解,因此我們每五代之後,會將過多的重複個體清除,而再以產生初代個體的 方法,隨機產生新的個體,補足刪除掉的個體。

3.4.5 終止條件

通常系統在 20 代內即能收斂到不錯的結果,並且考量時間因素,我們將中 止條件設定在演化 20 代。

3.4.6 後處理

我們透過基因規劃法找出找到輸入序列的共同結構元後,找出共同結構元在 每條序列上的位置,然後考慮配對的莖幹能否往外或往內延伸幾個鹼基對。另外 再針對沒被找出結構的序列,搜尋判斷是否可能有共同結構元的存在。最後再將 完整的結果輸出給使用者。

相關文件