那些提出新的演算法的人是如何做到的?

而新演算法中的數學知識常常是很久以前就出現了的,但是一直沒有人使用過。這些人是如何關注到數學領域的東西的呢?


小時候下圍棋,老師教了很多所謂的「定式」,我問老師,這麼多的定式,他都是怎麼都背會的。老師說,其實不需要背,如果你走的棋都是正確的,那自然就會走出定式來。

上圖像處理的課時,老師說,現在為了提出新演算法發論文,你可以跑到圖書館,找那些上面蓋著塵土的數學期刊,翻上幾天,總能找一個定理,然後套到一個圖像處理的應用中。


1,如果是數學背景轉學信號處理領域的人,他們在本科階段就有很紮實的數學基礎,特別是在概率論,線性代數等應用方向。後面遇到一些演算法很容易用以前的知識加以改進進而提出新的演算法。

2,如果是工科背景的人,比如我自己,首先我會花很長的時間去理解我要解決一個什麼樣的問題,這一階段是problem formulation。結束後,根據對這個問題的理解提出我認為可以的解決方案,如果要用到最優演算法,那麼就回頭再查優化理論,如果用到概率那就再回頭查概率。

對於大部分非數學背景的人,第二種方法更加有效率。對於工程學科,最重要的是理解你所要解決的問題,數學真的只是方法,需要的時候去查就可以了。


遇到問題,解決問題,然後如果有強大的數學背景和相關的分析方法,自然能利用上來。世間發明創造莫不如此。

我相信沒有誰是天天在紙堆里呆著,然後去想著去發明一個什麼演算法的。不過是同一個問題,有人提出了更好的解決方法。

大到計算機領域的經典演算法,小到工作中遇到的各種小問題,解決方案都是因人而異的,這些差異主要來源於這個人的思維,知識儲備等等綜合能力。


而新演算法中的數學知識常常是很久以前就出現了的,但是一直沒有人使用過

在兩千年前的古希臘,都有人使用蒸氣來推動小球運轉……

這些工程師,遇到問題,思考問題,解決問題。數學知識(不管是新的還是老的),對他們來說就是工具,別人創造了工具,而這些工程師來使用工具。

他們不是根據以前的數學知識發明了新演算法,而是他們解決問題的時候,發現這些知識正好可以用來解決此問題。

可以看一下我以前寫的一篇博客,浮點數(從驚訝到思考),其實很多人缺少的就是思考,那些知識都是幾年前,幾百年前,甚至幾千年前的。


推薦閱讀:

為什麼國內的手機通話通常沒有語音信箱?
认知无线电技术前景如何?
TD-LTE的網速和信號的強弱確實沒有關係嗎?
瑞士和非洲兩個工作地點各有什麼優劣,如何選擇?
簽華為客戶經理了,通信行業三大板塊,去哪個板塊比較好?

TAG:演算法 | 通信 | 數字信號處理 |