• 沒有找到結果。

基因演算法 (Genetic Algorithm,GA)

第三章 粒子群演算法

3.4 基因演算法 (Genetic Algorithm,GA)

基因演算法,又稱遺傳演算法,核心理念可以追朔至 1859 年達爾文(Charles Darwin)「On the Origin of Species by Means of Nature Selection」一書所 提及的「適者生存,不適者淘汰」(Natural selection, survival of the fitness),

其中包含了演化及淘汰之概念[38],仿效自然界生物遺傳以及根據生存環境調整 自身基因組合以適應環境的進化現象;在 1965 年,德國 Rechenberg 為了求解流 體力學中的模型控制參數最佳化之問題,第一次使用了演化式的方法,正式開啟 了演化式計算的應用;在 1966 年,美國 Von Neumann,John 提出自我複製 (Self-Reproducing)之理論,奠定了基因演算法的基礎。之後,在 1975 年由 John Holland 等人正式將此基因演算法運用於計算機上模擬物種生存模式[7]。基因 演算法仿效自然界生物基因選擇、複製、交配、突變等方式來進行最佳化之搜尋,

該流程如圖 15 所示,並且步驟大致可舉列如下:

(1)隨機產生 n 個染色體。

(2)利用適應性函數計算所有染色體之適應度。

(3)依照每個染色體之適應性地選擇、複製染色體。

(4)留下之染色體進行交配或者選擇。

(5)重複(2)-(4)之動作達到收斂,獲得最佳解。

24

圖 15. 基因演算法流程示意圖

基因演算法(Genetic Algorithm,GA)中,最小單位的遺傳因子為基因 (Genetic),染色體(族群)則是由一串(數個)基因所組成,代表解空間的某一解。

在該方法初始化種群的過程中,基因被視為 1bit 的 0 或 1,染色體則是一串 n-bits 的二進位數值,並且需要針對問題的解空間進行不同的編碼設計,例如:

(0000000000)2表示為(0)10,(1111111111)2表示為(1)10,而(0110001110)2則 可以表示為(0.38)10…等等,其中 n 為字串長度(l, string length),亦為 GA 的參數之一。根據圖 15 可以得知,基因演算法使用三種主要方式控制染色體尋 找解空間的最佳解,分別是複製、交配、突變。複製,目的用於篩選(Selection) 族群中的染色體,促使較高適應值的染色體擁有較高的機率得以保留,並且同時 淘汰較差適應值的染色體。因此在下一代子族群中,適應值低的染色體將逐漸減

25

少,較優良的子帶則隨之產生。交配,亦解釋為交叉(Crossover),透過隨機挑 選兩個染色體交換各自的基因以達到產生更優良的後代的目的。由於染色體若是 單純透過篩選(Selection)所繁衍的後代無法有效地演化出更佳的品種,因此需 要藉助其他染色體上的基因進行互換,發展出更完善的下一代,為基因演算法的 核心理念。突變(Mutation),提供一種跳出目前空間,避免陷入局部最佳解的方 式。突變的目的有兩種,第一種為開發新的搜尋空間,第二種是讓基因重新回到 演化過程中有可能忽略的優良基因組合,是基因演算法中一個特別的機制。

基因演算法(Genetic Algorithm,GA)與其他生物式計算如出一轍,皆擅長 解決全局最優以及最佳排程的問題,例如:時間安排、工程規劃…等等,然而,

GA 演算法中,模擬自然界突變(Mutation)現象的機制除了彌補篩選(Selection) 過程中淘汰基因所造成的收斂至局部最佳解的可能性之外,與其他生物式計算相 比,基因演算法更能跳脫局部最佳解,找出全域最佳解。

26

第四章 以改良式演化計算為基礎

相關文件