遺傳演算法,模擬退火演算法,粒子群演算法,神經網路等智能演算法的作用?

matlab只是一個工具而已,方便學習研究這些學術上的理論演算法,在現實工程化應用中應該就得用手寫代碼了。至於這些理論演算法的工程意義,看具體的行業。這些演算法基本上都是源於生物方面研究而開發出來的,當然適用於生物工程。神經網路在當今火熱的互聯網行業更加猖狂了。看一個理論演算法是否適合某特定行業,個人覺得還是多掃論文吧,之後再動手實踐


幾種方法比較類似,一通全通吧 建議先把遺傳演算法看懂原理


有沒有裝逼演算法 這些都只是特定工程應用領域的近似演算法,看到這些名詞堆砌在一起,感覺胸口堵得慌,祖國裝逼層次越來越低 不盡感到深深的憂慮。

相隔十萬八千里的兩門三門幾門末支小道,硬是堆到一塊,離大道甚遠矣。

過早過多接觸別門大道末端 會耽誤領悟屬於自己的真正的道


大神都回答過了,前三個演算法是啟發式演算法(heuristic)的一類方法,主要是面對最優化問題計算量耗費過多時候應用的一種方法,得出來的是近似解。最後一種主要用在機械學習,深度學習和圖像識別上,簡單講是一種模型。


之前有個老師和我說,有前三個演算法的求解時間,還不如在那個時間內不斷生成隨機解然後比較,最後得到的解比前三個演算法求得的解更優,?_? 心塞。

不過我沒試過,權且一笑


簡單點來說,我們做發動機性能的,直到現在用牛頓迭代法都是主流,但是,全包線性能計算時總有那麼幾個點不收斂,看著煩啊!所以對於這些點,我們用遺傳演算法來算初值,具體參見蘇三買教授的博士論文。另外,做多學科優化時,傳統演算法有時候搞不定,所以就上這些演算法,尹澤勇院士有本書里講的很詳細。


在理論上來說,啟發式演算法什麼都不是(即遺傳演算法等),其意義在於解決從計算上來說真正困難的問題,即NP完全問題與NP難問題。這些問題在多項式時間內難以找到有用的演算法,即從計算上來說,這些問題本質上是困難的,故只能退而求其次,使用啟發式演算法(隨機演算法+搜索策略)來找到一些還不錯的結果。

對這類問題更具體的分析,可參閱阿羅拉的書《計算複雜性-現代方法》


打個比喻吧,有點類似一個戴眼鏡的人眼鏡被放在了房間的某個地方,他不能一眼看到眼鏡在哪,只能一點點的摸,他不可能從房間的第一個角落摸到最後一個角落。肯定是這裡摸一下會,沒找到,然後又換一處在那附近找下,找不到又換一處,這樣的效率會比較高。

這些搜索演算法就是模仿生物、自然界中的一些機制,選擇一種偏抽樣而儘力非窮舉的途徑去搜索以提高效率


推薦閱讀:

TAG:人工智慧 | 編程 | 科研 | 機器學習 |

分頁阅读: 1 2