遺傳演算法(genetic algorithm, ga)是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜尋最優解的方法。遺傳演算法以一種群體中的所有個體為物件,並利用隨機化技術指導對乙個被編碼的引數空間進行高效搜尋。
遺傳演算法基本思想
核心是達爾文優勝劣汰適者生存的進化理論的思想。假設乙個種群,通過長時間的繁衍,種群的基因會向著更適應環境的趨勢進化,適應性強的個體基因被保留,後代越來越多,適應能力低個體的基因被淘汰,後代越來越少。經過幾代的繁衍進化,留下來的少數個體,就是相對能力最強的個體了。
1、初始化
先初始化一堆染色體,也就是一組編碼,常見的編碼方式有二進位制、浮點數編碼。
2、適應度函式
根據要達成的目標進行乙個適應度排序(比如求要求乙個函式的最小值,那麼染色體所代表的資料越小,適應度越高),適應度決定了下乙個階段--選擇中它們被使用的概率。
3、選擇
一種比較常見的選擇方法是使用輪盤選擇法,根據適應度算出每條染色體在輪盤上所佔的面積(百分比),根據這個比例隨機選取要操作的兩個親本染色體。
4、交叉
兩個染色體各選取長度相等的一部分進行交換,得到兩個新的染色體,當然交叉的發生是有一定概率的,這個概率是可以設定的。
5、變異
一條染色體的某一位發生變異,如0->1或1->0,變異的概率也是可以設定的。
6、對新生成的染色體和原有的染色體進行適應度評估,剔除適應度較小的染色體,如果不符合終止條件,則跳轉至步驟3,這裡的終止條件是達到了預定的遺傳次數, 也就是適應度達到了要求。
遺傳演算法的特點
1、ga是對問題引數的編碼組進行計算,而不是針對引數本身。
2、ga的搜尋是從問題解的編碼組開始搜素、而不是從單個解開始。
3、ga使用目標函式值(適應度)這一資訊進行搜尋,而不需導數等其他資訊。
4、ga演算法使用的選擇、交叉、變異這三個運算元都是隨機操作,而不是確定規則。
遺傳演算法的優點
1、與問題領域無關且快速隨機的全域性搜尋能力。
2、搜尋從群體出發,具有潛在的並行性,魯棒性高。
3、搜尋使用評價函式啟發,過程簡單。
4、使用概率機制進行迭代,具有隨機性。
5、具有可擴充套件性,容易與其他演算法結合。
6、具有極強的容錯能力。
遺傳演算法的缺點
遺傳演算法的程式設計實現比較複雜,對初始種群的選擇有一定的依賴性,且區域性搜尋能力較差,導致單純的遺傳演算法比較費時。在進化後期搜尋效率較低。在實際應用中,遺傳演算法容易產生過早收斂的問題,採用何種選擇方法既要使優良個體得以保留,又要維持群體的多樣性,一直是遺傳演算法中較難解決的問題。
遺傳演算法的應用
揹包問題(knapsack problem)是一種組合優化的np完全問題。問題可以描述為:給定一組物品,每種物品都有自己的重量和**,在限定的總重量內,我們如何選擇,才能使得物品的總**最高。問題的名稱**於如何選擇最合適的物品放置於給定揹包中。
模擬遺傳演算法
遺傳演算法的手工模擬計算示例 為更好地理解遺傳演算法的運算過程,下面用手工計算來簡單地模擬遺傳演算法的各 個主要執行步驟。例 求下述二元函式的最大值 1 個體編碼 遺傳演算法的運算物件是表示個體的符號串,所以必須把變數 x1,x2 編碼為一種 符號串。本題中,用無符號二進位制整數來表示。因 x1,x...
遺傳演算法模擬解決TSP問題
include include include include include define cities 10 城市的個數 define maxx 100 迭代次數 define pc 0.8 交配概率 define pm 0.05 變異概率 define num 10 種群的大小 int bes...
CI 模擬進化與遺傳演算法
模擬進化計算 simulated evolutionary computation 是近二十年來資訊科學 人工智慧與電腦科學的一大研究領域,由此所派生的求解優化問題的仿生類演算法 遺傳演算法 演化策略 進化程式 由於其鮮明的生物背景 新穎的設計原理 獨特的分析方法和成功的應用實踐,正日益形成全域性搜...