數(shù)學(xué)技術(shù)之算法概論篇(7)
5.影響算法世界的十位大師
大家熟知,任何時代,任何領(lǐng)域,無名英雄總比有名英雄多的多。所以,這里從眾多算法大師中篩選出的十位大師,他們是眾多算法大師的代表,既非全部,也非最大,僅供參閱。從對十位大師的簡短介紹中不難看出,他們的杰出貢獻(xiàn)多集中在新算法、程序語言及它們的普及、教育和推廣等方面,只涉及算法中的部分領(lǐng)域,遠(yuǎn)非算法的全部。
入選這一名單的十位算法大師是:
Don E.Knuth(美)高德納,《計算機(jī)程序設(shè)計藝術(shù)》的作者;
Edsger Wybe(荷蘭)Dijkstra算法(最短路徑算法)發(fā)明者;
George Dantzing(俄國)運(yùn)籌學(xué)大師;
James Cooley(美)用于數(shù)字信號處理技術(shù)的快速傅利葉變換(FFT)算法發(fā)明者;
John Backus(美)FORTRAN之父,又提出規(guī)范描編程語言語法的Backus-Naur Form(BNF);
Jon Bentley(美)《編程珠璣》(Programming Pearls)的作者,精于軟件工程;
Nicklaus Wirth(瑞士)PASCAL之父,提出了“算法+數(shù)據(jù)結(jié)構(gòu)=程序”;
Robort Sedgewick(美) 算法講解大師;
Tony Hoare(英) 快速排序算法(Quick Sort)發(fā)明者;
Udi Manber(美) Google副總裁,首席算法官。
下面,對這十位大師分別進(jìn)行一些簡單介紹。
1. Don E.Knuth
偉大的智者——Don E.Knuth,中譯名:高德納(1938-),算法和程序設(shè)計技術(shù)的先驅(qū)者。
他的經(jīng)典著作《計算機(jī)程序設(shè)計藝術(shù)》被譽(yù)為算法中“真正”的圣經(jīng),像KMP和LR(K)這樣令人不可思議的算法,在此書比比皆是。難怪連Bill Gates都說:“如果能做對書里所有的習(xí)題,就直接來微軟上班吧!”對于Don E.Knuth本人,一生中獲得的獎項和榮譽(yù)不計其數(shù),包括圖靈獎,美國國家科學(xué)金獎,美國數(shù)學(xué)學(xué)會斯蒂爾獎(AMS Steel Prize),以及發(fā)明先進(jìn)技術(shù)榮獲的極受尊重的京都獎(Kyoto Prize)等等,寫過19部書和160余篇論文,每一篇著作都能用影響深遠(yuǎn)來形容。Don E.Knuth也被公認(rèn)是美國最聰明的人之一,當(dāng)年上大學(xué)的時候,常寫些各種各樣的編譯器來掙外快,只要是他參加過的編程比賽,總是第一名,同時也是世上少有的編程達(dá)到40年以上的程序員之一。他除了是技術(shù)與科學(xué)上的泰斗外,更是無可非議的寫作高手,技術(shù)文章堪稱一絕,文風(fēng)細(xì)膩,講解透徹,思路清晰而且沒有學(xué)究氣,估計這也是《計算機(jī)程序設(shè)計藝術(shù)》被稱為圣經(jīng)的原因之一。
2. Edsger Wybe Dijkstra
謙遜的長者——Edsger Wybe Dijkstra,1930年出生于荷蘭阿姆斯特丹,2002年逝世于荷蘭紐南。
他在祖國荷蘭獲得數(shù)據(jù)和物理學(xué)學(xué)士,理論物理博士學(xué)位,2000年退休前一直是美國Texas大學(xué)的計算機(jī)科學(xué)和數(shù)學(xué)教授。以發(fā)現(xiàn)了圖論中的最短路徑算法(Dijkstra算法)而聞名于世,1972年因?yàn)锳LGOL第二代編程語言而獲得圖靈獎?!癎o To Statement Considered Harmful”(EWD215)也是被廣為傳頌的經(jīng)典之作。除了科學(xué)研究之外,他最喜歡做的事情就是教學(xué),被人稱作“一天教學(xué)24小時”的教授。且不說Dijkstra算法對計算科學(xué),網(wǎng)絡(luò)科學(xué)發(fā)展的深遠(yuǎn)影響,單從他在1972年獲得圖靈獎時的演講“The Humble Programmer”就不得不肅然起敬,在獲得計算機(jī)科學(xué)中至高無上的獎項時,Edgs Wybe Dijkstra仍然謙稱自己不過是一個普通的程序員,何等胸襟,舉世之中能有幾人可比。
3. George Dantzig
運(yùn)籌學(xué)大師——George Dantizig可謂是由父親一手培養(yǎng)出的天才。
George的父親是俄國人,曾在法國師從著名的科學(xué)家Henri Poincare。他曾經(jīng)這樣回憶自己的父親:“在我還是個中學(xué)生時,他就讓我做幾千道幾何題……解決這些問題的大腦訓(xùn)練是父親給我的最好禮物。這些幾何題,在發(fā)展我分析能力的過程中,起了最最重要的作用。”在伯克利學(xué)習(xí)的時候,有一天George上課遲到,只看到黑板上寫著兩個問題,他只當(dāng)是課堂作業(yè),隨即將問題抄下來并做出解答。六個月后,這門課的老師——著名的統(tǒng)計學(xué)家Jerzy Neyman——幫助他把答案整理了一下,發(fā)表為論文,George這才發(fā)現(xiàn)自己解決了統(tǒng)計學(xué)領(lǐng)域中一直懸而未決的兩個難題。George后來在運(yùn)籌學(xué)建樹極高,獲得了包括“馮.諾伊曼理論獎”在內(nèi)的諸多獎項。他在Linear programming and extensions一書中研究了線性編程模型,為計算機(jī)語言的發(fā)展做出了不可磨滅的貢獻(xiàn)。
4. James Cooley
推動時代前進(jìn)的人——James Cooley(1926-),美國數(shù)學(xué)家,哥倫比亞大學(xué)數(shù)學(xué)博士。
以他所創(chuàng)造的快速傅立葉變換(FFT)而著名,不能不說是意義極其重大,F(xiàn)FT的數(shù)學(xué)意義不光在于使大家明白了傅立葉變換計算起來是多么容易,而且使得數(shù)字信號處理技術(shù)取得了突破性的進(jìn)展,對于現(xiàn)在的網(wǎng)絡(luò)通信,圖形圖像處理等等領(lǐng)域的發(fā)展與前進(jìn)奠定了基礎(chǔ)。傅立葉變換的意義在于將電能變?yōu)榱斯I(yè)的命脈,而FFT的意義更是在于他推動了整個社會信息化的進(jìn)程。在IBM研究中心主要從事數(shù)字信號處理的研究一直到1992年退休,同時他還是IEEE的數(shù)字信號處理委員會的成員。1980年獲得ASSP's Meritorious Service Award,1984年獲得ASSP Society Award以及IEEE Centennial Medal。
5. John Backus
FORTRAN之父——John Backus,早年在Hill School學(xué)習(xí)的時候因?yàn)橛憛拰W(xué)習(xí),成績一踏糊涂而不得不在暑假補(bǔ)課。1943年他在父親的要求下到維吉尼亞大學(xué)學(xué)習(xí)化學(xué),隨后參軍、照顧頭部受傷的傷員、在醫(yī)學(xué)學(xué)校學(xué)習(xí)治療,可是最后又都放棄了。不過還好,戰(zhàn)后Backus進(jìn)入紐約哥倫比亞大學(xué)學(xué)習(xí)數(shù)學(xué),并于1949年畢業(yè)。在畢業(yè)前夕,他跑到了麥迪遜大街的IBM計算機(jī)中心參觀。事情湊巧,和導(dǎo)游聊天的時候Backus談到自己正在找工作,在導(dǎo)游的鼓勵下,他和中心一位主管的面談,成為了一名IBM的程序員。在IBM,Backus的才華得到了施展,發(fā)明了人類歷史上第一個高級語言——FORTRAN。接著,又提出了規(guī)范描述編程語言語法的Backus-Naur Form(BNF)。這位當(dāng)年的“差生”終于被整個計算機(jī)世界肯定——美國計算機(jī)協(xié)會于1977年授予John Backus圖靈獎。
6. Jon Bentley
實(shí)踐探索先鋒——Jon Bentley,1974年獲得了斯坦福大學(xué)的學(xué)士學(xué)位,1976年獲得北卡羅萊納大學(xué)的碩士和博士學(xué)位。畢業(yè)后在卡耐基梅隆大學(xué)教授了6年計算機(jī)科學(xué)課程,1982年進(jìn)入貝爾實(shí)驗(yàn)室。2001年退休后加入了現(xiàn)在的Avaya實(shí)驗(yàn)室,他還曾作為訪問學(xué)者在西點(diǎn)軍校和普林斯頓大學(xué)工作。他的研究領(lǐng)域包括編程技術(shù)、算法設(shè)計、軟件工具和界面設(shè)計等等。
他寫過三本編程書籍,其中最著名的就是涵蓋從算法理論到軟件工程各種主題的Programming Pearls(《編程珠璣》),這其實(shí)是他發(fā)表過的文章的合集。在這些文章里,Bentley從工程實(shí)現(xiàn)的角度出發(fā),為程序員們提供了一個個艱難問題的解決方案,猶如一顆顆閃閃發(fā)亮的珍珠。Bentley的珍珠超出了可靠工程學(xué)的范疇,利用他的洞察力和創(chuàng)造力為那些惱人的問題提供了獨(dú)特而巧妙的解決方案。
7. Nicklaus Wirth
Pascal之父——Nicklaus Wirth,1934年出生于瑞士,1963年在加州大學(xué)伯克利分校取得博士學(xué)位。
如果說有一個人因?yàn)橐痪湓挾玫搅藞D靈獎,那么這個人應(yīng)該就是Nicklaus Wirth,這句話就是他提出的著名公式“
算法 + 數(shù)據(jù)結(jié)構(gòu) = 程序”。這個公式對計算機(jī)科學(xué)的影響程度足以類似物理學(xué)中愛因斯坦的“
E = MC2”——一個公式展示出了程序的本質(zhì)。Nicklaus Wirth,取得博士學(xué)位后直接被斯坦福大學(xué)聘到剛成立的計算機(jī)科學(xué)系工作。在斯坦福大學(xué)成功的開發(fā)出Algol以及PL360后,愛國心極強(qiáng)的Nicklaus Wirth于1967年回到祖國瑞士,第二年在他的母校蘇黎世工學(xué)院他創(chuàng)建與實(shí)現(xiàn)了Pascal語言-——當(dāng)時世界上最受歡迎的語言之一。后來他的學(xué)生Philipe Kahn畢業(yè)后和Anders Hejlsberg(Delphi之父)創(chuàng)辦了Borland公司靠Turbo Pascal起家,很快成為了將Borland發(fā)展成為全球最大的開發(fā)工作廠商,這一切都不得不說要?dú)w工于Pascal語言的魅力。Pascal已經(jīng)影響了整整幾代的程序員,Nicklaus Wirth的思想還將會繼續(xù)指引現(xiàn)在和以后的程序員前進(jìn)的方向。
8. Rebort Sedgewick
算法的講解者——Robert Sedgewick,斯坦福大學(xué)獲得博士學(xué)位,普林斯頓大學(xué)的計算機(jī)科學(xué)教授。
Robert Sedgewick是Adobe Systems的一名主管,也曾作為訪問學(xué)者在Xerox PARC、IDA和INRIA工作。他的著作包括Algorithmin C、Algorithmin C++、Algorithmin Java等系列書籍,這些都再版多次?!皼]有人能夠?qū)⑺惴ê蛿?shù)據(jù)結(jié)構(gòu)解釋得比Robert Sedgewick更清楚易懂了!”很多讀過他著作的程序員這樣說。他善于通過數(shù)學(xué)方法評估和預(yù)測算法性能,設(shè)法發(fā)現(xiàn)算法、數(shù)據(jù)結(jié)構(gòu)的通用機(jī)制,例如使用逼近方法尋找更快速更高效的算法。另外,他還將算法和圖形學(xué)結(jié)合起來,例如使用可視化方法評估算法效率,算法的圖形化模擬,用于出版物的高質(zhì)量算法表現(xiàn)方法等等。
9. Tony Hoare
計算機(jī)領(lǐng)域的爵士——Tony Hoare,1934年出生于英國,1959年博士畢業(yè)于俄羅斯莫斯科國立大學(xué),獲得語言機(jī)器翻譯專業(yè)學(xué)士學(xué)位。1960年發(fā)布了使他聞名于世的快速排序算法(Quick Sort),這個算法也是當(dāng)前世界上使用最廣泛的算法之一。
Tony Hoare在取得博士學(xué)位后,就職于Elliott Brothers,領(lǐng)導(dǎo)了Algol 60第一個商用編譯器的設(shè)計與開發(fā),由于其出色的成績,最終成為該公司首席科學(xué)家。從1977年開始,Tony Hoare博士任職于牛津大學(xué),投身于計算系統(tǒng)的精確性的研究、設(shè)計及開發(fā)。因其對Algol 60程序設(shè)計語言理論、互動式系統(tǒng)及APL的貢獻(xiàn),1980年被美國計算機(jī)協(xié)會授予“圖靈獎”。1999年在牛津大學(xué)退休后,Tony Hoare博士被微軟劍橋研究院聘請擔(dān)任高級程序員,從事微軟劍橋研究院研究生成果的工業(yè)化應(yīng)用以及協(xié)助其它研究人員進(jìn)行服務(wù)于軟件產(chǎn)業(yè)及用戶的長期基礎(chǔ)研究項目。2000年因?yàn)槠湓谟嬎銠C(jī)科學(xué)與教育上做出的貢獻(xiàn)被封為爵士。
10. Udi Manber
首席算法官——Udi Manber,國際公認(rèn)的算法大師,在線信息搜索引擎的先驅(qū),曾是美國亞利桑那大學(xué)的計算機(jī)專業(yè)的教授,他提出的UDI測試已經(jīng)成為衡量搜索引擎質(zhì)量的評估標(biāo)準(zhǔn)。
首席算法官,世界上還有如此奇怪的職位?但是對于Amazon乃至Google來說,這一點(diǎn)也不奇怪。Udi Manber,這位前Amazon的“首席算法官”,現(xiàn)在是Google負(fù)責(zé)工程事務(wù)的副總裁。他研究WWW的應(yīng)用程序、搜索以及隱藏在這背后的算法設(shè)計。在此期間,他與其他人共同開發(fā)了Agrep、Glimpse和Harvest等Unix上的搜索軟件。1998年,Udi成為了Yahoo的首席科學(xué)家。2002年,Amazon創(chuàng)造性地給了Udi“首席算法官”的職位,和Udi為Amazon的“Search Inside the Book”搜索項目所做的工作相得益彰。Udi還因?yàn)樗腎ntroduction to Algorithms——A Creative Approach而被大家稱道。