機器學習 遺傳演算法

2022-06-15 17:12:08 字數 606 閱讀 9167

它把問題可能的解編碼為乙個向量,稱為個體,向量的每乙個元素稱為基因,並利用目標函式(相應於自然選擇標準)對群體(個體的集合)中的每乙個個體進行評價,根據評價值(適應度)對個體進行選擇、交換、變異等遺傳操作,從而得到新的群體。

遺傳演算法適用於非常複雜和困難的環境,比如,帶有大量雜訊和無關資料、事物不斷更新、問題目標不能明顯和精確地定義,以及通過很長的執行過程才能確定當前行為的價值等。

就像人類的基因有agct 4種鹼基序列一樣。不過在這裡我們只用了0和1兩種鹼基,然後將他們串成一條鏈形成染色體。乙個位能表示出2種狀態的資訊量,因此足夠長的二進位制染色體便能表示所有的特徵。這便是二進位制編碼。如下:

1110001010111

編碼、解碼操作簡單易行

交叉、變異等遺傳操作便於實現

合最小字符集編碼原則

利用模式定理對演算法進行理論分析。

二進位制編碼的缺點是:對於一些連續函式的優化問題,由於其隨機性使得其區域性搜尋能力較差,如對於一些高精度的問題(如上題),當解迫近於最優解後,由於其變異後表現型變化很大,不連續,所以會遠離最優解,達不到穩定。

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

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

遺傳演算法學習

今天學習遺傳演算法 首先我學習的教程裡的案例是利用遺傳演算法這個群優化演算法來優化bp神經網路的權值和閾值。但它是直接呼叫的工具箱,於是我打算不呼叫工具箱寫乙個詳細點的來加深自己對演算法的理解。原理 簡而言之就是模仿達爾文的演化論,生成種群,通過變異交叉來進化種群,最後得到一群適應度高的優秀種群。我...

遺傳演算法學習

遺傳演算法 ga 是模擬生物在自然環境中的遺傳和精華的過程形成的自適應全域性優化搜尋演算法。通過自然選擇,交叉 遺傳 變異等步驟來產生新一代種群,並逐步使種群精華到包含近似最優解的狀態。種群是生物進化過程中的乙個集團,表示可行解的集合。個體是組成種群的單個生命體,表示可行解。染色體是包含生命體的所有...