遺傳算法是模擬達爾文自然選擇與孟德爾遺傳機制的啟發式優化算法,擅長處理高維、非線性、多峰值、不可導的複雜優化問題。本文系統梳理GA框架、編碼策略、適應度函數、選擇/交叉/變異三大算子、參數設置與收斂判斷。
GA()
t ← 0
P(t) ← 初始種群 (M個體)
while t ≤ T:
評價 P(t) 中每個體適應度
P'(t) ← 選擇操作(P(t))
P''(t) ← 交叉操作(P'(t))
P(t+1) ← 變異操作(P''(t))
t ← t + 1
return 最優個體

L,精度(b-a)/2ᴸ。將目標函數f(x)映射為非負適應度F(x),驅動自然選擇。
常見轉換:F(x) = f(x) - f_min + ε(最小化問題)、F(x) = 1/(1+f(x))、線性歸一化/指數歸一化。
設計原則:保持選擇壓力適中,避免早熟或停滯。
個體選中概率pᵢ = Fᵢ / ΣFⱼ。
實現:計算累積概率分布,生成[0,1)隨機數,二分查找落入區間。
優點:期望保留比例選擇;缺點:早期超優個體霸佔種群(早熟),後期選擇壓力不足。
改進:鍦標選擇、排序選擇、錦標賽選擇(工程首選)。
P(保留模式) = 1 - δ/L(δ為模式定義長度)。k個點,交替交換段,擾動性更強。0.5概率交換,最大擾動,適合實數編碼(算術交叉:x' = αx + (1-α)y)。交叉概率p_c通常0.6~0.9。
p_m(0.001~0.1)翻轉。x' = x + N(0,σ)或多項式變異。作用:維持種群多樣性,跳出局部最優,補充交叉丟失的等位基因。
| 參數 | 典型範圍 | 說明 |
|---|---|---|
| 種群規模 M | 50~500 | 問題維度越高越大 |
| 最大代數 T | 100~5000 | 或適應度收斂閾值 |
| 交叉概率 p_c | 0.7~0.9 | 實數編碼可更高 |
| 變異概率 p_m | 0.001~0.05 | 二進制按位,實數按維度 |
| 精英保留 | 1~2個體 | 防止最優解丟失 |
T。k代改善<ε。優點:全域搜索、並行性好、無需梯度、編碼靈活。
缺點:參數敏感、收斂慢、無嚴格最優保證、易早熟。
適用:參數優化、調度規劃、神經網絡結構搜索、特徵選擇、黑箱優化。
不適用:凸優化/可導問題(梯度下降更快)、強實時要求場景。
| 算法 | 核心隱喻 | 優勢場景 |
|---|---|---|
| 遺傳算法 (GA) | 生物進化 | 離散/混合編碼、多峰值 |
| 模擬退火 (SA) | 金屬退火 | 單解軌跡、易跳出局部最優 |
| 禁忌搜索 (TS) | 記憶搜索 | 組合優化、鄰域結構清晰 |
| 粒子群 (PSO) | 鳥群覓食 | 連續空間、收斂快 |
| 蟻群 (ACO) | 蟻群覓食 | 路徑規劃、離散組合 |
遺傳算法是啟發式優化的「瑞士軍刀」,理解其編碼-適應度-算子三位一體的設計邏輯,即可針對具體問題靈活定制高效求解器。