工程上,實用價值最高的智能優化演算法有哪些?

常遇到一般性的非線性規劃問題:
min f(x)
xin Re^n, quad f:Re^n
ightarrow Re
s.t.
g(x)le0
h(x)=0

具體工作(逗比小電工)中,一般有
5le nle 20
而約束條件經常只是
x>0
但是目標函數f較為複雜,
類似這樣的問題,有什麼比(yue)較(ding)好(su)的(cheng)演算法嗎?考慮因素有
1. 希望在各種隨(bu)機(fu)選(ze)取(ren)的初值下都能找到優化點,
2. 開發的速度,中間可能會調用多個商業軟體,所以越簡單越好,
3. 演算法的速度,越快越好,但這不是決定性的。

看到有人推薦用Differential Evolution,但這貨不保證能得到全局優化解。Excel帶了個solver包,用了簡單粗暴的Generalized Reduced Gradient和另一個類似GA(?)的演算法,試過效果很一般,似乎LS問題都處理不好。還有Down Hill Simplex似乎能保證找得到全局最優,但為什麼有這樣的演算法存在,人們還不斷另闢蹊徑呢?

其他高大上的就沒見過了。豹紙喵也是這個領域的新人,只從書上看到過Simulated Anealing,Genetic Algorithm和Artificial Neural Network,卻從來沒見過什麼地方實用過的。曾被高人提示過把SA加到Down Hill Simplex裡面,寫出來的程序運行起來一塌糊塗……


演算法是創造智能應用/智能產品的基石

基於仿生/模擬演算法:

人工神經網路

深度學習

遺傳演算法

人工免疫演算法

蟻群演算法

粒子群演算法

人工魚群演算法

文化演算法

禁忌搜索演算法

模擬退火演算法

基於數學理論演算法:

線性規劃

回歸分析

梯度下降

K近鄰演算法

SVM支持向量機

樸素貝葉斯

決策樹

圖論演算法

並行演算法

模糊數學

混沌演算法

馬爾可夫鏈


智能優化演算法都沒法保證全局最優吧,代碼簡單算得快可以用PSO。這些演算法實現上都不難啊,關鍵得具體問題具體分析,多試試就知道哪個最適合解決你的問題咯


如果你問工程上實用價值最高,那就必須考慮演算法計算量和複雜度。 粒子群這種意味著有很多例子很多採樣,而實際系統這樣可以實現嗎?畢竟是現有系統硬體再有演算法應用。 總不能為了演算法去大改硬體。 如果這樣考慮,建議試試天牛須搜索演算法,也是類似粒子群優化,但是本質區別是1.只需要一隻天牛,而非一群。2. 收斂很快,精度很高。3最關鍵的是核心代碼只有4行,其他演算法可能只能電腦上跑,別想去單篇機實現,而天牛須只有4行核心代碼,不需要調用任何庫函數,所以,你可以輕鬆的在單片機實現。作為工程應用,或許這很重要。 天牛須搜索演算法(BAS) 核心代碼只有4行


推薦閱讀:

遺傳演算法有哪些有趣應用?

TAG:演算法 | 遺傳演算法 |