演算法 遺傳演算法基礎

2022-05-11 06:23:27 字數 1147 閱讀 4642

1.遺傳演算法的概念

遺傳演算法是模仿自然界生物進化機制發展起來的隨機全域性搜尋和優化方法,它借鑑了達爾文的演化論和孟德爾的遺傳學說。其本質是一種高效、並行、全域性搜尋的方法。

2.遺傳演算法的特點

2.1遺傳演算法的優點

(1)對可行解的表示具有廣泛性

(2)具有較好的全域性搜尋效能,使得遺傳演算法本身易於並行化

(3)不需要輔助資訊

(4)內在啟發式隨機搜尋特性

(5)在搜尋過程中不容易陷入區域性最優,即使在所定義的適應度函式是不連續的、非規則的或者有雜訊的情況下,也能以很大的概率找到全域性最優解

(6)遺傳演算法採用自然進化機制來表現複雜的現象,能夠快速可靠地解決求解非常困難的問題

(7)遺傳演算法具有固定的並行性和平行計算的能力

(8)遺傳演算法具有可擴充套件性,易於同別的技術混合

2.2遺傳演算法的不足之處

(1)編碼不規範及編碼存在表示的不確定性

(2)單一的遺傳演算法編碼不能全面地將優化問題的約束表示出來。考慮約束的乙個方法就是對不可行解採用閾值,這樣,計算時間必然增加

(3)效率比其他傳統的優化方法低

(4)容易出現過早收斂

(5)對演算法的精度、可信度、計算複雜性等方面,還沒有有效的定量分析方法

1.3遺傳演算法基本術語

3.遺傳演算法運算流程

4.針對實際問題,效果比較好的遺傳演算法的運算流程如下:

注意:選擇運算一般為輪盤賭選擇

交叉運算一般為單點交叉

變異運算一般為基本位變異

種群大小一般為20-100

迭代次數一般為100-500

交叉概率一般為0.4-0.99

變異概率一般為0.001%-0.1%           

增大變異概率可以防止早熟

交叉運算決定了遺傳演算法的全域性搜尋能力

變異運算決定了遺傳演算法的區域性搜尋能力

python遺傳演算法 Python 遺傳演算法實現

關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...

遺傳演算法 python 簡書 遺傳演算法

優化的演算法有很多種,從最基本的梯度下降法到現在的一些啟發式演算法,如遺傳演算法 ga 差分演化演算法 de 粒子群演算法 pso 和人工蜂群演算法 abc 舉乙個例子,遺傳演算法和梯度下降 梯度下降和遺傳演算法都是優化演算法,而梯度下降只是其中最基礎的那乙個,它依靠梯度與方向導數的關係計算出最優值...

遺傳演算法 變異演算法

遺傳演算法系列 4 變異演算法 在基因交叉之後產生的子代個體,其變數可能以很小的概率或者步長發生轉變,這個過程稱為變異 mutation 如果進化的目標函式極值是單峰值的,那麼,將變異概率p設定為種群數量n的倒數是乙個比較好的選擇。如果變異概率很大,那麼整個搜尋過程就退化為乙個隨機搜尋過程。所以,比...