-
差分進化
鎖定
- 中文名
- 差分進化
- 外文名
- Differential Evolution
- 性 質
- 一種新興的進化計算技術
- 特 點
- 一種模擬生物進化的隨機模型
目錄
- 1 基本定義
- 2 詳細簡介
- 3 Python實現
- ▪ Step1:定義問題
- ▪ Step2:調包並求解
差分進化基本定義
Differential Evolution(DE)
同時,DE特有的記憶能力使其可以動態跟蹤當前的搜索情況,以調整其搜索策略,具有較強的全局收斂能力和魯棒性,且不需要藉助問題的特徵信息,適於求解一些利用常規的數學規劃方法所無法求解的複雜環境中的優化問題。目前,DE已經在許多領域得到了應用,譬如人工神經元網絡、化工、電力、機械設計、機器人、信號處理、生物信息、經濟學、現代農業、食品安全、環境保護和運籌學等。
差分進化詳細簡介
DE 算法主要用於求解連續變量的全局優化問題,其主要工作步驟與其他進化算法基本一致,主要包括變異(Mutation)、交叉(Crossover)、選擇(Selection)三種操作。算法的基本思想是從某一隨機產生的初始羣體開始,利用從種羣中隨機選取的兩個個體的差向量作為第三個個體的隨機變化源,將差向量加權後按照一定的規則與第三個個體求和而產生變異個體,該操作稱為變異。然後,變異個體與某個預先決定的目標個體進行參數混合,生成試驗個體,這一過程稱之為交叉。如果試驗個體的適應度值優於目標個體的適應度值,則在下一代中試驗個體取代目標個體,否則目標個體仍保存下來,該操作稱為選擇。在每一代的進化過程中,每一個體矢量作為目標個體一次,算法通過不斷地迭代計算,保留優良個體,淘汰劣質個體,引導搜索過程向全局最優解逼近。
差分進化Python實現
差分進化Step1:定義問題
DE算法非常擅長求解有約束最優化問題,定義一個有約束最優化問題如下:
差分進化Step2:調包並求解
from sko.DE import DEde = DE(func=obj_func, n_dim=3, size_pop=50, max_iter=800, lb=[0, 0, 0], ub=[5, 5, 5], constraint_eq=constraint_eq, constraint_ueq=constraint_ueq) best_x, best_y = de.run()
- 參考資料
-
- 1. scikit-opt .GitHub.2019-06-06[引用日期2019-12-02]