二十世紀(jì)最偉大的10大算法

1、1946 蒙特卡洛方法
[1946: John von Neumann, StanUlam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook upthe Metropolis algorithm, also known as the Monte Carlo method.]
1946年解孙,美國(guó)拉斯阿莫斯國(guó)家實(shí)驗(yàn)室的三位科學(xué)家John von Neumann,StanUlam 和 Nick Metropolis共同發(fā)明,被稱為蒙特卡洛方法胞皱。
它的具體定義是:在廣場(chǎng)上畫一個(gè)邊長(zhǎng)一米的正方形,在正方形內(nèi)部隨意用粉筆畫一個(gè)不規(guī)則的形狀,現(xiàn)在要計(jì)算這個(gè)不規(guī)則圖形的面積,怎么計(jì)算列?
蒙特卡洛(Monte Carlo)方法告訴我們廉羔,均勻的向該正方形內(nèi)撒N(N 是一個(gè)很大的自然數(shù))個(gè)黃豆,隨后數(shù)數(shù)有多少個(gè)黃豆在這個(gè)不規(guī)則幾何形狀內(nèi)部僻造,比如說有M個(gè),那么孩饼,這個(gè)奇怪形狀的面積便近似于M/N髓削,N越大,算出來的值便越精確镀娶。
在 這里我們要假定豆子都在一個(gè)平面上立膛,相互之間沒有重疊。(撒黃豆只是一個(gè)比喻梯码。) 蒙特卡洛方法可用于近似計(jì)算圓周率:讓計(jì)算機(jī)每次隨機(jī)生成兩個(gè)0到1之 間的數(shù)宝泵,看這兩個(gè)實(shí)數(shù)是否在單位圓內(nèi)。生成一系列隨機(jī)點(diǎn)轩娶,統(tǒng)計(jì)單位圓內(nèi)的點(diǎn)數(shù)與總點(diǎn)數(shù)儿奶,內(nèi)接圓面積和正方形面積之比為PI:4,PI為圓周率鳄抒。當(dāng)隨機(jī)點(diǎn)取 得越多(但即使取10的9次方個(gè)隨機(jī)點(diǎn)時(shí)闯捎,其結(jié)果也僅在前4位與圓周率吻合)時(shí)椰弊,其結(jié)果越接近于圓周率。

2瓤鼻、1947 單純形法
[1947: George Dantzig, at theRAND Corporation, creates the simplex method for linear programming.]
1947年秉版,蘭德公司的,GrorgeDantzig茬祷,發(fā)明了單純形方法清焕。
單純形法,此后成為了線性規(guī)劃學(xué)科的重要基石祭犯。
所謂線性規(guī)劃秸妥,簡(jiǎn)單的說,就是給定一組線性(所有變量都是一次冪)約束條件(例如a1x1+b1x2+c1*x3>0)盹憎,求一個(gè)給定的目標(biāo)函數(shù)的極值筛峭。
這么說似乎也太太太抽象了,但在現(xiàn)實(shí)中能派上用場(chǎng)的例子可不罕見——比如對(duì)于一個(gè)公司而言陪每,其能夠投入生產(chǎn)的人力物力有限(“線性約束條件”)影晓,而公司的目標(biāo)是利潤(rùn)最大化(“目標(biāo)函數(shù)取最大值”),看檩禾,線性規(guī)劃并不抽象吧挂签!
線性規(guī)劃作為運(yùn)籌學(xué)(operation research)的一部分,成為管理科學(xué)領(lǐng)域的一種重要工具盼产。而Dantzig提出的單純形法便是求解類似線性規(guī)劃問題的一個(gè)極其有效的方法饵婆。

3、1950 Krylov子空間迭代法
[1950: Magnus Hestenes,Eduard Stiefel, and Cornelius Lanczos, all from the Institute for NumericalAnalysis at the National Bureau of Standards, initiate the development ofKrylov subspace iteration methods.]
1950年:美國(guó)國(guó)家標(biāo)準(zhǔn)局?jǐn)?shù)值分析研究所的戏售,馬格努斯Hestenes侨核,愛德華施蒂費(fèi)爾和科尼利厄斯的Lanczos,發(fā)明了Krylov子空間迭代法灌灾。
Krylov子空間迭代法是用來求解形如Ax=b 的方程搓译,A是一個(gè)n*n 的矩陣,當(dāng)n充分大時(shí)锋喜,直接計(jì)算變得非常困難些己,而Krylov方法則巧妙地將其變?yōu)镵xi+1=Kxi+b-Axi的迭代形式來求解。
這里的K(來源于作者俄國(guó)人Nikolai Krylov姓氏的首字母)是一個(gè)構(gòu)造出來的接近于A的矩陣嘿般,而迭代形式的算法的妙處在于段标,它將復(fù)雜問題化簡(jiǎn)為階段性的易于計(jì)算的子步驟。

4炉奴、1951 矩陣計(jì)算的分解方法
[1951: Alston Householder of Oak Ridge National Laboratoryformalizes the decompositional approach to matrix computations.]
1951年逼庞,阿爾斯通橡樹嶺國(guó)家實(shí)驗(yàn)室的Alston Householder提出,矩陣計(jì)算的分解方法瞻赶。這個(gè)算法證明了任何矩陣都可以分解為三角往堡、對(duì)角械荷、正交和其他特殊形式的矩陣,該算法的意義使得開發(fā)靈活的矩陣計(jì)算軟件包成為可能虑灰。

5吨瞎、1957 優(yōu)化的Fortran編譯器
[1957: John Backus leads a team at IBM in developing theFortran optimizing compiler.]
1957 年:約翰巴庫斯領(lǐng)導(dǎo)開發(fā)的IBM的團(tuán)隊(duì),創(chuàng)造了Fortran優(yōu)化編譯器穆咐。Fortran颤诀,亦譯為福傳,是由Formula Translation兩個(gè)字所組合而成对湃,意思是“公式翻譯”崖叫。它是世界上第一個(gè)被正式采用并流傳至今的高級(jí)編程語言。這個(gè)語言現(xiàn)在拍柒,已經(jīng)發(fā)展到了心傀,F(xiàn)ortran 2008,并為人們所熟知拆讯。

6脂男、1959-61 計(jì)算矩陣特征值的QR算法
[1959–61: J.G.F. Francis of Ferranti Ltd, London, finds astable method for computing eigenvalues, known as the QR algorithm.]
1959-61:倫敦費(fèi)倫蒂有限公司的J.G.F. Francis,找到了一種穩(wěn)定的特征值的計(jì)算方法种呐,這就是著名的QR算法宰翅。這也是一個(gè)和線性代數(shù)有關(guān)的算法,學(xué)過線性代數(shù)的應(yīng)該記得“矩陣的特征值”爽室, 計(jì)算特征值是矩陣計(jì)算的最核心內(nèi)容之一汁讼,傳統(tǒng)的求解方案涉及到高次方程求根,當(dāng)問題規(guī)模大的時(shí)候十分困難阔墩。
QR 算法把矩陣分解成一個(gè)正交矩陣(希望讀此文的你嘿架,知道什么是正交矩陣。:D啸箫。)與一個(gè)上三角矩陣的積眶明,和前面提到的Krylov 方法類似,這又是一個(gè)迭代算法筐高,它把復(fù)雜的高次方程求根問題化簡(jiǎn)為階段性的易于計(jì)算的子步驟,使得用計(jì)算機(jī)求解大規(guī)模矩陣特征值成為可能丑瞧。這個(gè)算法的作者是來自英國(guó)倫敦的J.G.F. Francis柑土。

7、1962 快速排序算法
[1962: Tony Hoare of Elliott Brothers, Ltd., London,presents Quicksort.]
1962年:倫敦的绊汹,托尼埃利奧特兄弟有限公司稽屏,霍爾提出了快速排序。哈哈西乖,恭喜你狐榔,終于看到了可能是你第一個(gè)比較熟悉的算法~坛增。
快速排序算法作為排序算法中的經(jīng)典算法,它被應(yīng)用的影子隨處可見薄腻∈盏罚快速排序算法最早由Tony Hoare爵士設(shè)計(jì),它的基本思想是將待排序列分為兩半庵楷,左邊的一半總是“小的”罢艾,右邊的一半總是“大的”,這一過程不斷遞歸持續(xù)下去尽纽,直到整個(gè)序列有序咐蚯。
說 起這位Tony Hoare爵士,快速排序算法其實(shí)只是他不經(jīng)意間的小小發(fā)現(xiàn)而已弄贿,他對(duì)于計(jì)算機(jī)貢獻(xiàn)主要包括形式化方法理論春锋,以及ALGOL60 編程語言的發(fā)明等,他也因這些成就獲得1980 年圖靈獎(jiǎng)差凹∑诒迹快速排序的平均時(shí)間復(fù)雜度僅僅為O(Nlog(N)),相比于普通選擇排序和冒泡排序等而言直奋,實(shí)在是歷史性的創(chuàng)舉能庆。

8、1965 快速傅立葉變換
[1965: James Cooley of the IBM T.J. Watson Research Centerand John Tukey of Princeton University and AT&T Bell Laboratories unveilthe fast Fourier transform.]
1965 年:IBM 華生研究院的James Cooley脚线,和普林斯頓大學(xué)的John Tukey搁胆,AT&T貝爾實(shí)驗(yàn)室共同推出了快速傅立葉變換∮事蹋快速傅立葉算法是離散傅立葉算法(這可是數(shù)字信號(hào)處理的基石)的一種快速算法渠旁,其時(shí)間復(fù)雜度僅為O(Nlog(N));比時(shí)間效率更為重要的是船逮,快速傅立葉算法非常容易用硬件實(shí)現(xiàn)顾腊,因此它在電子技術(shù)領(lǐng)域得到極其廣泛的應(yīng)用。日后挖胃,我會(huì)在我的經(jīng)典算法研究系列杂靶,著重闡述此算法。

9酱鸭、1977 整數(shù)關(guān)系探測(cè)算法
[1977: Helaman Ferguson and Rodney Forcade of BrighamYoung University advance an integerrelation detection algorithm.]
1977年:Helaman Ferguson和 伯明翰大學(xué)的Rodney Forcade吗垮,提出了Forcade檢測(cè)算法的整數(shù)關(guān)系。
整數(shù)關(guān)系探測(cè)是個(gè)古老的問題凹髓,其歷史甚至可以追溯到歐幾里德的時(shí)代烁登。具體的說:給定—組實(shí)數(shù)X1,X2,...,Xn,是否存在不全為零的整數(shù)a1,a2,...an蔚舀,使得:a1 x 1 +a2 x2 + . . . + an xn=0?
這一年BrighamYoung大學(xué)的Helaman Ferguson 和Rodney Forcade解決了這一問題饵沧。該算法應(yīng)用于“簡(jiǎn)化量子場(chǎng)論中的Feynman圖的計(jì)算”锨络。ok,它并不要你懂狼牺,了解即可羡儿。:D

10、1987 快速多極算法
[1987: Leslie Greengard and Vladimir Rokhlin of YaleUniversity invent the fast multipole algorithm.]
1987年:Greengard锁右,和耶魯大學(xué)的Rokhlin發(fā)明了快速多極算法失受。此快速多極算法用來計(jì)算“經(jīng)由引力或靜電力相互作用的N 個(gè)粒子運(yùn)動(dòng)的精確計(jì)算——例如銀河系中的星體,或者蛋白質(zhì)中的原子間的相互作用”咏瑟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拂到,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子码泞,更是在濱河造成了極大的恐慌兄旬,老刑警劉巖余寥,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绪撵,死亡現(xiàn)場(chǎng)離奇詭異音诈,居然都是意外死亡细溅,警方通過查閱死者的電腦和手機(jī)喇聊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窜骄,“玉大人啼辣,你說我怎么就攤上這事党远」涤椋” “怎么了济似?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)台舱。 經(jīng)常有香客問我,道長(zhǎng)拆宛,這世上最難降的妖魔是什么浑厚? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮贡这,結(jié)果婚禮上盖矫,老公的妹妹穿的比我還像新娘辈双。我一直安慰自己湃望,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布废士。 她就那樣靜靜地躺著,像睡著了一般矗蕊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上没龙,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音筝家,去河邊找鬼。 笑死值骇,一個(gè)胖子當(dāng)著我的面吹牛道伟,可吹牛的內(nèi)容都是我干的蜜徽。 我是一名探鬼主播拘鞋,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼灰蛙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蹭越!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤忿项,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后城舞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轩触,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年家夺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脱柱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拉馋,死狀恐怖榨为,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煌茴,我是刑警寧澤随闺,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蔓腐,受9級(jí)特大地震影響矩乐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜合住,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一绰精、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧透葛,春花似錦笨使、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽繁调。三九已至,卻和暖如春靶草,著一層夾襖步出監(jiān)牢的瞬間蹄胰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工奕翔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裕寨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓派继,卻偏偏與公主長(zhǎng)得像宾袜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子驾窟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容