Python优化算法06——人工鱼群算法
生活随笔
收集整理的這篇文章主要介紹了
Python优化算法06——人工鱼群算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?參考文檔鏈接:scikit-opt
本章繼續Python的優化算法系列。
優化算法,尤其是啟發式的仿生智能算法在最近很火,它適用于解決管理學,運籌學,統計學里面的一些優化問題。比如線性規劃,整數規劃,動態規劃,非線性約束規劃,甚至是超參數搜索等等方向的問題。
但是一般的優化算法還是matlab里面用的多,Python相關代碼較少。博主在參考了很多文章的代碼和模塊之后,決定學習 scikit-opt? ?這個模塊。這個優化算法模塊對新手很友好,代碼簡潔,上手簡單。而且代碼和官方文檔是中國人寫的,還有很多案例,學起來就沒什么壓力...
缺點是包裝的算法種類目前還不算多,只有七種:(差分進化算法、遺傳算法、粒子群算法、模擬退火算法、蟻群算法、魚群算法、免疫優化算法)? ? ? /(其實已經夠用了)
本次帶來的是 蟻群算法和免疫優化算法的使用演示。數學原理就不多說了。由于這個包里面好像目前只有解決商旅問題的版本。使用本次使用這兩個算法解決商旅問題。
首先安裝模塊,在cmd里面或者anaconda prompt里面輸入:
pip install scikit-opt這個包很小,很快就能裝好。
人工魚群算法解決函數優化問題
定義要優化的目標函數
def func(x):x1, x2 = xreturn 1 / x1 ** 2 + x1 ** 2 + 1 / x2 ** 2 + x2 ** 2調用AFSA求解
from sko.AFSA import AFSAafsa = AFSA(func, n_dim=2, size_pop=50, max_iter=300,max_try_num=100, step=0.5, visual=0.3,q=0.98, delta=0.5) best_x, best_y = afsa.run() print(best_x, best_y)?參數說明
輸入參數
輸出參數
?
?
總結
以上是生活随笔為你收集整理的Python优化算法06——人工鱼群算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode][第100题][JA
- 下一篇: [Leetcode][第141、142题