• 沒有找到結果。

基因演算法

在文檔中 中 華 大 學 碩 士 論 文 (頁 33-39)

第二章 文獻探討

第四節 基因演算法

基因演算法(Genetic Algorithm, GA)是由密西根大學的John Holland(1975)教 授所提出,其基本概念是依據達爾文所提出的物競天擇與生物界中的適者生存的道 理。而此種搜尋方法採用隨機搜尋方式,因此可避免在求解時陷入局部最佳解(Local optimum),並可求得所謂的全域最佳解(Global optimum),基因演算法它能夠選擇物 種 中 較 優 良 之 父 代 並 進 行 所 謂 的 複 製(Reproduction) 、 交 配 (Crossover)以 及 突 變 (Mutation)等,以此種方式產生比父代更強更優良之子代。Goldberg(1989)指出這些遺 傳運算是模擬自然界的演化程序,包括有複製 (Reproduction)、交配 (Crossover) 與 突變(Mutation) 等等。因此 GA 具有下列幾點特性:

1.GA 是將參數編碼進行演化運算,而不是使用參數本身做搜尋。

2.GA 是高度平行搜尋,同時考慮空間的多個點而不是單一點,避免陷入區域最佳解。

3.GA 只使用適應函數做為本體的知識,沒有其他繁瑣的數學計算。

4.GA 使用“機率規則”而不是使用“明確規則”來導引搜尋方向,因此可適用於不同類 型的問題上。

因此在運用基因演算法在尋找所謂的最佳化問題之前,首先必須先將問題的控制 參數進行編碼,此步驟稱為染色體(Chromosome),而編碼的型態又可分為數值型與二 位元字串,並且同時透過適應函數(Fitness Function)計算其適合度是否為佳,若符合 則為本問題之最佳解,反之則再次進行所謂的複製、交配與突變等過程找出新的參數 組合,並且再次計算其適合度是否符合要求,不斷重複計算直到尋找到最佳解才停 止,其基因演算法流程架構如圖14所示:

14 基因演算法執行流程圖

關於基因演算法的運作,以下做進一步詳細說明:

一、編碼(Encoding)

根據問題與精確度需求來決定字串編碼的長度,長度越長則精確度越高相同的所 需浪費太多資源進行編碼、解碼。反之長度太短有可能導致無法取得最佳解。編碼方 式主要分為二位元 (Binary)編碼法和順序(Order)編碼法,說明如下:

1.二位元編碼法

二位元編法法為一種傳統的編碼方式,以0與1來表示基因。如可用0011表示數 字3,用1100表示數字12。

2.順序編碼法

以流程順序之方式表達基因,如工廠的生產排程問題、旅行者問題(TSP)…等,

以直接數列的方式來進行表示順序。

二、產生初始族群(Initial Population)

初始族群即為第一代染色體之組合,亦可稱母體,為演化的開始點。在基因演算 法中,一般產生起始解的方法有兩種:一是隨機產生組合、二是啟發式產生與問題想 關之組合。由於基因演算法本身就是以隨機產生作為其演算法之基本法則,倘若採用 啟發式產生起始解,則容易陷入所謂的區域最佳解,近年許多研究皆採用啟發式產生 起始解,再隨機產生一些起始解成為初始族群,提高了求解之效益及效率。

三、解碼計算適應函數

解碼流程與編碼流程正好相反,將基因轉換為編碼前之的數值,且運用二位元編 碼之基因轉換為十進制數值,並將其數值代入適應函數中計算其適合度,藉此作為判 斷適應能力之指標,適應函數之定義為越接近使用者訂定之目標即為其適應力。在眾 多染色體中,我們必須判斷染色體適應環境的能力,而此判斷的標準或準則之函數即 為適應函數,可能是極小化問題,如成本、花費時間以及行程問題等;也可能是極大 化問題,如利潤。

四、複製

在基因演算法之運算過程中,會複製前一代較佳之物種至交配池中,主要是為了 將較優良之物種留下提供下一代進行挑選,主要可分為(1)輪盤式選擇、(2)競爭式選 擇,個別介紹如下:

1.輪盤式選擇

所謂輪盤式選擇,計算所有基因之適合度,並根據適合度大小決定在輪盤上所 佔之面積比例,越優良之物種在輪盤上所佔之面積越大,即表示配複製之交配 池機率也越大。

2.競爭式選擇

每一代之演化過程中,隨機選取兩個或以上之物種,並計算其適合度,從中挑 選較佳適合度之物種送入下一代之交配池中。此種方式可確保下一代交配池中 皆為比較過之物種加速演算法之收斂。

五、交配

交配之過程為在交配池中隨機選取兩個父代物種,並交換彼此位元,產生出另一 新物種。藉此期望產生比 前一代更優秀之子代。而交配所發生之機率由交配率所決 定。可分為1.單點交配、2.兩點交配與3.字罩交配。其說明如下:

1.單點交配

在隨機選取兩父代物種字串中,隨機選取一點作為交配點,並交換兩字串於交 配點後之全部位元,其過程如圖15所示:

15 單點交配過程

2.兩點交配

在隨機選取兩父代物種字串中,隨機選取兩點作為交配點,並交換兩交配點中 全部位元。其過程如圖16所示:

16 兩點交配過程

3.字罩交配

隨機產生一組長度與物種字串相同的字罩,字罩與物種字串一樣由0與1所組 成,而只要字罩中為1的位元則隨機選取之兩組父代即進行交換。其過程如圖17 所示:

17 兩點交配過程

六、突變

突變在基因演算法中扮演這非常重要之功能,其被視為跳脫區域最佳解之重 要關鍵。突變的過程可針對單一位元進行突變稱為單點突變,或是種個物種字串運用 字罩方式進行突變。而突變運算的機率則是經由突變率來控制調整的,一般突變率設 定都很低,倘若設定太高將會失去基因演算法物種演化之意義。其突變過程如圖18 所示:

18 單點突變圖

在文檔中 中 華 大 學 碩 士 論 文 (頁 33-39)

相關文件