遺傳演算法的運算過程

2021-08-28 16:47:09 字數 1000 閱讀 6368

遺傳演算法(genetic algorithm)是一類借鑑生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜尋方法。它是由美國的j.holland教授2023年首先提出,其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定;具有內在的隱並行性和更好的全域性尋優能力;採用概率化的尋優方法,能自動獲取和指導優化的搜尋空間,自適應地調整搜尋方向,不需要確定的規則。遺傳演算法的這些性質,已被人們廣泛地應用於組合優化、機器學習、訊號處理、自適應控制和人工生命等領域。它是現代有關智慧型計算中的關鍵技術。

對於乙個求函式最大值的優化問題(求函式最小值也類同),一般可以描述為下列數學規劃模型:式中x為決策變數,式2-1為目標函式式,式2-2、2-3為約束條件,u是基本空間,r是u的子集。滿足約束條件的解x稱為可行解,集合r表示所有滿足約束條件的解所組成的集合,稱為可行解集合。

遺傳演算法也是電腦科學人工智慧領域中用於解決最優化的一種搜尋啟發式演算法,是進化演算法的一種。這種啟發式通常用來生成有用的解決方案來優化和搜尋問題。進化演算法最初是借鑑了進化生物學中的一些現象而發展起來的,這些現象包括遺傳、突變、自然選擇以及雜交等。遺傳演算法在適應度函式選擇不當的情況下有可能收斂於區域性最優 [1] ,而不能達到全域性最優。

遺傳演算法的基本運算過程如下:

a)初始化:設定進化代數計數器t=0,設定最大進化代數t,隨機生成m個個體作為初始群體p(0)。

b)個體評價:計算群體p(t)中各個個體的適應度。

遺傳演算法

遺傳演算法

c)選擇運算:將選擇運算元作用於群體。選擇的目的是把優化的個體直接遺傳到下一代或通過配對交叉產生新的個體再遺傳到下一代。選擇操作是建立在群體中個體的適應度評估基礎上的。

d)交叉運算:將交叉運算元作用於群體。遺傳演算法中起核心作用的就是交叉運算元。

e)變異運算:將變異運算元作用於群體。即是對群體中的個體串的某些基因座上的基因值作變動。

群體p(t)經過選擇、交叉、變異運算之後得到下一代群體p(t+1)。

f)終止條件判斷:若t=t,則以進化過程中所得到的具有最大適應度個體作為最優解輸出,終止計算。

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

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

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

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

遺傳演算法歸納

遺傳演算法 genetic algorithm 是一類借鑑生物界的進化規律 適者生存 優勝劣汰遺傳機制 演化而來的隨機化搜尋方法。其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定 具有內在的隱並行性和更好的全域性尋優能力 採用概率化的尋優方法,能自動獲取和指導優化的搜尋空間,自適應地...