遺傳演算法應用步驟
ga是一種仿生全域性優化演算法,通過選擇(selection
),交叉(crossover
)與變異(mutation
)等機制,使得種群中個體的適應性(fitness
)不斷提高.
核心思想:物競天擇,適者生存
適應度函式(fitness function
)
稱s =l
s=\^l
s=l為個體空間,個體空間元素a=a
0,a1
,…,a
l−1∈
sa=a_0, a_1, \dots, a_\in s
a=a0,
a1,
…,al
−1∈
s成為個體,是染色體帶有特徵的實體,分量aj∈
a_j\in\
aj∈
成為基因,l
ll表示基因的長度.
稱個體空間s
ss中n
nn個個體組成的乙個子集(個體可重複)成為乙個種群,記為
a =(
a1,a
2,…,
an
)a=(a_1, a_2, \dots, a_n)
a=(a1
,a2
,…,a
n)其中aj(
j=1,
2,…,
n)∈s
a_j(j=1, 2, \dots, n)\in s
aj(j=
1,2,
…,n)
∈s,n
nn成為種群規模.
適應度函式衡量個體的適應度高低.
將乙個帶求解問題的實際可行解從其解空間轉換到ga的搜尋空間(個體空間)的過程.
解碼是將ga所搜尋到的最優個體的染色體轉換為帶求解問題的實際最優解的過程,即編碼逆過程.
根據各個個體的適應度,按照一定的規則,從第t
tt代群體p(t
)p(t)
p(t)
中選擇出一些優良的個體遺傳到下一代p(t
+1
)p(t+1)
p(t+1)
中,一般通過選擇運算元(selection operator)進行.
將群體p(t
)p(t)
p(t)
內的各個個體隨機搭配成對,對每一對個體,以某個交叉概率(crossover rate
)遵循某種規則交換部分染色體.
對群體p(t
)p(t)
p(t)
中的每乙個個體,以某一變異概率(mutation rate
)改變某乙個或者某一些基因.
確定決策變數以及各種約束條件,即確定出個體表現型x
xx和問題的解空間.
建立優化模型,確定出目標函式的型別以及數學描述形式或者量化方法.
確定表示可行解的染色體的編碼方法,即確定個體的基因型x
∗x^*
x∗,以及遺傳演算法的搜尋空間.
遺傳演算法摘錄1
遺傳演算法 ge ic algorithm 是一類借鑑生物界的進化規律 適者生存,優勝劣汰遺傳機制 演化而來的隨機化搜尋方法。它是由美國的j.holland教授1975年首先提出,其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定 具有內在的隱並行性和更好的全域性尋優能力 採用概率化的...
python遺傳演算法 Python 遺傳演算法實現
關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...
遺傳演算法 python 簡書 遺傳演算法
優化的演算法有很多種,從最基本的梯度下降法到現在的一些啟發式演算法,如遺傳演算法 ga 差分演化演算法 de 粒子群演算法 pso 和人工蜂群演算法 abc 舉乙個例子,遺傳演算法和梯度下降 梯度下降和遺傳演算法都是優化演算法,而梯度下降只是其中最基礎的那乙個,它依靠梯度與方向導數的關係計算出最優值...