二十世紀最偉大的十大經典算法

2020-12-01 199IT

發明十大算法的其中幾位算法大師

一、1946 蒙特卡洛方法

[1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.]

1946年,美國拉斯阿莫斯國家實驗室的三位科學家John von Neumann,Stan Ulam 和 Nick Metropolis共同發明,被稱為蒙特卡洛方法。

它的具體定義是:在廣場上畫一個邊長一米的正方形,在正方形內部隨意用粉筆畫一個不規則的形狀,現在要計算這個不規則圖形的面積,怎麼計算列?蒙特卡洛(Monte Carlo)方法告訴我們,均勻的向該正方形內撒N(N 是一個很大的自然數)個黃豆,隨後數數有多少個黃豆在這個不規則幾何形狀內部,比如說有M個,那麼,這個奇怪形狀的面積便近似於M/N,N越大,算出來的值便越精確。在這裡我們要假定豆子都在一個平面上,相互之間沒有重疊。(撒黃豆只是一個比喻。)

蒙特卡洛方法可用於近似計算圓周率:
讓計算機每次隨機生成兩個0到1之間的數,看這兩個實數是否在單位圓內。
生成一系列隨機點,統計單位圓內的點數與總點數,內接圓面積和正方形面積之比為PI:4,PI為圓周率。

(多謝網友七裡河蠢才指出:S內接圓:S正=PI:4。具體,請看文下第99條評論。十六日修正),當隨機點取得越多(但即使取10的9次方個隨機點時,其結果也僅在前4位與圓周率吻合)時,其結果越接近於圓周率。

二、1947 單純形法

[1947: George Dantzig, at the RAND Corporation, creates the simplex method for linear programming.]

1947年,蘭德公司的,Grorge Dantzig,發明了單純形方法。單純形法,此後成為了線性規劃學科的重要基石。所謂線性規劃,簡單的說,就是給定一組線性(所有變量都是一次冪)約束條件(例如a1*x1+b1*x2+c1*x3>0),求一個給定的目標函數的極值。

這麼說似乎也太太太抽象了,但在現實中能派上用場的例子可不罕見——比如對於一個公司而言,其能夠投入生產的人力物力有限(「線性約束條件」),而公司的目標是利潤最大化(「目標函數取最大值」),看,線性規劃並不抽象吧!

線性規劃作為運籌學(operation research)的一部分,成為管理科學領域的一種重要工具。
而Dantzig提出的單純形法便是求解類似線性規劃問題的一個極其有效的方法。

三、1950 Krylov子空間迭代法

[1950: Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos, all from the Institute for Numerical Analysis at the National Bureau of Standards, initiate the development of Krylov subspace iteration methods.]

1950年:美國國家標準局數值分析研究所的,馬格努斯Hestenes,愛德華施蒂費爾和科尼利厄斯的Lanczos,發明了Krylov子空間迭代法。

Krylov子空間迭代法是用來求解形如Ax=b 的方程,A是一個n*n 的矩陣,當n充分大時,直接計算變得非常困難,而Krylov方法則巧妙地將其變為Kxi+1=Kxi+b-Axi的迭代形式來求解。這裡的K(來源於作者俄國人Nikolai Krylov姓氏的首字母)是一個構造出來的接近於A的矩陣,而迭代形式的算法的妙處在於,它將複雜問題化簡為階段性的易於計算的子步驟。

四、1951 矩陣計算的分解方法

[1951: Alston Householder of Oak Ridge National Laboratory formalizes the decompositional approach to matrix computations.]

1951年,阿爾斯通橡樹嶺國家實驗室的Alston Householder提出,矩陣計算的分解方法。這個算法證明了任何矩陣都可以分解為三角、對角、正交和其他特殊形式的矩陣,該算法的意義使得開發靈活的矩陣計算軟體包成為可能。

五、1957 優化的Fortran編譯器

[1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler.]

1957年:約翰巴庫斯領導開發的IBM的團隊,創造了Fortran優化編譯器。Fortran,亦譯為福傳,是由Formula Translation兩個字所組合而成,意思是「公式翻譯」。它是世界上第一個被正式採用並流傳至今的高級程式語言。這個語言現在,已經發展到了,Fortran 2008,並為人們所熟知。

六、1959-61 計算矩陣特徵值的QR算法

[1959–61: J.G.F. Francis of Ferranti Ltd, London, finds a stable method for computing

eigenvalues, known as the QR algorithm.]

1959-61:倫敦費倫蒂有限公司的J.G.F. Francis,找到了一種穩定的特徵值的計算方法,
這就是著名的QR算法。

這也是一個和線性代數有關的算法,學過線性代數的應該記得「矩陣的特徵值」,計算特徵值是矩陣計算的

最核心內容之一,傳統的求解方案涉及到高次方程求根,當問題規模大的時候十分困難。

QR算法把矩陣分解成一個正交矩陣(希望讀此文的你,知道什麼是正交矩陣。:D。)與一個上三角矩陣的積,

和前面提到的Krylov 方法類似,這又是一個迭代算法,它把複雜的高次方程求根問題化簡為階段性的易於

計算的子步驟,使得用計算機求解大規模矩陣特徵值成為可能。
這個算法的作者是來自英國倫敦的J.G.F. Francis。

七、1962 快速排序算法

[1962: Tony Hoare of Elliott Brothers, Ltd., London, presents Quicksort.]
1962年:倫敦的,託尼埃利奧特兄弟有限公司,霍爾提出了快速排序。

哈哈,恭喜你,終於看到了可能是你第一個比較熟悉的算法~。

快速排序算法作為排序算法中的經典算法,它被應用的影子隨處可見。快速排序算法最早由Tony Hoare爵士設計,它的基本思想是將待排序列分為兩半,左邊的一半總是「小的」,右邊的一半總是「大的」,這一過程不斷遞歸持續下去,直到整個序列有序。說起這位Tony Hoare爵士,快速排序算法其實只是他不經意間的小小發現而已,他對於計算機貢獻主要包括形式化方法理論,以及ALGOL60 程式語言的發明等,他也因這些成就獲得1980 年圖靈獎。快速排序的平均時間複雜度僅僅為O(Nlog(N)),相比於普通選擇排序和冒泡排序等而言,

實在是歷史性的創舉。

八、1965 快速傅立葉變換

[1965: James Cooley of the IBM T.J. Watson Research Center and John Tukey of Princeton
University and AT&T Bell Laboratories unveil the fast Fourier transform.]

1965年:IBM 華生研究院的James Cooley,和普林斯頓大學的John Tukey,
AT&T貝爾實驗室共同推出了快速傅立葉變換。

快速傅立葉算法是離散傅立葉算法(這可是數位訊號處理的基石)的一種快速算法,其時間複雜度僅為O(Nlog(N));比時間效率更為重要的是,快速傅立葉算法非常容易用硬體實現,因此它在電子技術領域得到極其廣泛的應用。

日後,我會在我的經典算法研究系列,著重闡述此算法。

九、1977 整數關係探測算法

[1977: Helaman Ferguson and Rodney Forcade of Brigham Young University advance an integer

relation detection algorithm.]
1977年:Helaman Ferguson和 伯明罕大學的Rodney Forcade,提出了Forcade檢測算法的整數關係。整數關係探測是個古老的問題,其歷史甚至可以追溯到歐幾裡德的時代。具體的說:

給定—組實數X1,X2,…,Xn,是否存在不全為零的整數a1,a2,…an,使得:a1 x 1 +a2 x2 + . . . + an xn =0?

這一年BrighamYoung大學的Helaman Ferguson 和Rodney Forcade解決了這一問題。

該算法應用於「簡化量子場論中的Feynman圖的計算」。ok,它並不要你懂,了解即可。:D。

十、1987 快速多極算法

[1987: Leslie Greengard and Vladimir Rokhlin of Yale University invent the fast multipole

algorithm.]

1987年:Greengard,和耶魯大學的Rokhlin發明了快速多極算法。此快速多極算法用來計算「經由引力或靜電力相互作用的N 個粒子運動的精確計算——例如銀河系中的星體,或者蛋白質中的原子間的相互作用」。ok,了解即可。

自:36大數據

相關焦點

  • 20世紀最偉大的算法有哪些呢?
    20世紀最偉大的算法有哪些呢?作為一名數據分析師,經常會用到一些算法,這些算法為日常的工作帶來了很大的便利。本文介紹了經典算法,一起來看看有沒有你熟悉的吧~蒙特卡洛方法統計模擬方法蒙特·卡羅方法,也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的發展和電子計算機的發明,而被提出的一種以概率統計理論為指導的一類非常重要的數值計算方法。
  • 二十世紀最偉大的10大算法!
    【數盟倡導「數據創造價值」,致力於打造最卓越的數據科學交流平臺,為企業、個人提供最卓越的服務】參考文獻:The Best of the
  • 盤點20世紀最偉大的十大算法
    這個算法證明了任何矩陣都可以分解為三角、對角、正交和其他特殊形式的矩陣,該算法的意義使得開發靈活的矩陣計算軟體包成為可能。Francis,找到了一種穩定的特徵值的計算方法,這就是著名的QR算法。這也是一個和線性代數有關的算法,學過線性代數的應該記得「矩陣的特徵值」,計算特徵值是矩陣計算的最核心內容之一,傳統的求解方案涉及到高次方程求根,當問題規模大的時候十分困難。QR算法把矩陣分解成一個正交矩陣(希望讀此文的你,知道什麼是正交矩陣。:D。)
  • 誰是二十世紀最偉大的科學家?你們覺得是誰?
    談及20世紀最偉大的科學家,BBC這部紀錄片從上萬名科學家中選了四位。屠呦呦堅定信心,冒著生命危險,親自住院服藥,用自己的生命做實驗,後來確定可以入藥,何其偉大?她的青蒿素藥物從80年代量產問世以來,拯救了數百萬人的生命,而她在國內幾乎也是籍籍無名,我們的教材也鮮有題及。直到歐洲《細胞》雜誌的披露,她才為人所認識,獲得84歲諾貝爾獎後,似乎才「一夜成名」。有時候我們不禁要問,為何我們中國不能讓她「成名」?這麼多年了連個院士也不給她?
  • 二十世紀最偉大的化學家,號稱天使與魔鬼的化身,也是諾獎得主!
    二十世紀最偉大的化學家之一,1918年諾獎得主——弗裡茨·哈伯;卻在戰爭中製造生化武器,奪走了數百萬人的生命。弗裡茨·哈伯是公認的二十世紀最偉大的化學家之一,但是他在戰爭中的罪行遺臭萬年;關於弗裡茨·哈伯的事跡,也被記錄在英國BBC紀錄片歷史頻道《愛因斯坦》一集當中,本文所有圖片均截取自該紀錄片。
  • 細數20世紀最偉大的10大算法
    發明十大算法的其中幾位算法大師一、1946 蒙特卡洛方法[1946: John von Neumann, Stan
  • 20世紀最偉大的10大算法
    無意中看到了july發布,由後來高手補充的10大經典算法,限於本人運用經驗不足,只是感覺相當不俗,先記下來,等有用到在慢慢補充。。。Francis,找到了一種穩定的特徵值的計算方法,這就是著名的QR算法。這也是一個和線性代數有關的算法,學過線性代數的應該記得「矩陣的特徵值」,計算特徵值是矩陣計算的最核心內容之一,傳統的求解方案涉及到高次方程求根,當問題規模大的時候十分困難。QR算法把矩陣分解成一個正交矩陣(希望讀此文的你,知道什麼是正交矩陣。:D。)
  • 二十世紀十大書法家都有誰?
    1999年,《中國書法》雜誌,組織群眾和專家無記名投票,評選出了「二十世紀十大傑出書法家」。經過專家及群眾的投票評選,2000年8月,中國書法家協會公布了專家組評選的結果。20世紀十大書法家這十人中吳昌碩被譽為詩書畫印「四絕」;林散之作為「當代草聖」是中國畫一代宗師黃賓虹的得意弟子;康有為、于右任、毛澤東、謝無量都是政治人物,同樣多才多藝;沈尹默曾是北大教授,「五四」新文化運動的先驅之一(本人極其喜愛沈老書法,得益甚多);沙孟海曾任西泠印社社長,西泠書畫院院長,浙江省博物館名譽館長,中國書法家協會副主席;齊白石自稱:「我的詩第一,印第二,字第三
  • 二十世紀的數學
    是一些可以寫下來的東西.隨著事物的發展,解不必是一個顯函數,人們不一定必須用好的公式來描述它們。解的奇異性是真正決定其整體性質的東西。與發生在複分析中的一切相比,這種精神是多麼的類似,只不過在細節上有些不同罷了。 在微分幾何中,Gauss和其他人的經典工作描述了小片的空間,小塊的曲率以及用來描述局部幾何的局部方程。
  • 二十世紀最偉大雕塑作品的秘密花園:保羅·海姆珍藏
    「阿杜爾河右岸的沿河路是我最喜歡的,亦是我經常快樂地陶醉其中的一條路;這是一條古老的纖路,路邊有很多農場和漂亮的建築。我深愛沿路的自然風光,它結合了高貴氣息和熟悉感,這種氣質是西南部獨有的......」 成長於此並曾住在保羅對面的法國哲學家羅蘭·巴特(Roland Barthes)這樣回憶道。花園極少對外開放,平時只有少數貴客有幸到訪。
  • 二十世紀最偉大的航天科學家,到底是魔鬼還是天才?
    最終,美國用馮·布勞恩設計的土星五號火箭成功將兩名太空人送上了月球,而「土星五號」的成功,讓他至今仍舊是火箭界的巨無霸,甚至五十年內無法超越,馮·布勞恩也因此成為二十世紀最偉大的航天先驅,史上最偉大的火箭科學家。
  • 十大經典數據挖掘算法—Apriori
    打開APP 十大經典數據挖掘算法—Apriori 發表於 2018-02-04 09:37:56 因此,關聯規則分析可分為下列兩個步驟: 生成頻繁項集F=X∪Y; 在頻繁項集F中,找出所有置信度大於最小置信度的關聯規則X⟶Y。
  • 2020.11.25 二十世紀最偉大的足球運動員 球王馬拉度納與世長辭
    1978年,成為阿根廷甲級聯賽聯賽歷史上最年輕的最佳射手。1982年7月,馬拉度納轉會至西甲球隊巴塞隆納。1984年7月,馬拉度納以創紀錄的750萬美元轉會費加盟義大利那不勒斯隊。1986年6月,馬拉度納率領阿根廷隊獲得世界盃冠軍。
  • Michael Atiyah:二十世紀的數學
    世紀是一個大約的數字概念。我們不會真地認為在過整整一百年的時候,有些事情會突然停下來,再重新開始,所以當我描述二十世紀的數學時,有些內容實際上可能是跨世紀的,如果某件事件發生在十九世紀九十年代,並持續到二十世紀初,我將不去計較這種時間方面的細節。我所做的就象一個天文學家,工作在一個近似的數字環境中。實際上,許多東西始於十九世紀,只不過在二十世紀才碩果纍纍。
  • 我出軌花心逛怡紅院,但我是二十世紀最偉大天才!
    條姐介紹過最貴畫家席勒,今天劇主來聊聊畢卡索。他是20世紀最偉大的十個畫家之首,作品總計近37000件,包括1885幅油畫,7089幅素描,20000多幅版畫,6121幅平版畫。對這個畫家界的勞模,你了解多少?大多數人會說,我在中學課本上看過《格爾尼卡》。
  • 二十世紀最偉大的十位吉他手,毫無爭議!
    他最出名的地方在於吸收其他樂手的優勢,再加以發揮。在他臨終前最後發布的音樂專輯In Step裡亦可見他對生命和音樂的認真和熱愛。4.天之驕子──約翰·伏許安 約翰·伏許安(John Frusciante)是紅辣椒樂隊主音吉他手。
  • 二十世紀最偉大的10大算法
  • 吳信東:數據挖掘算法的經典與現代
    中科院計算所研究員沈華偉幾位特邀專家帶領了大家重溫經典,解讀他們心目中的經典機器學習與數據挖掘算法,並與大家分享了這些算法的起源、應用與影響。早期最有代表性的算法是Apriori,作為關聯規則挖掘(Association rule mining)的代表性算法,其主要任務就是設法發現事物之間的內在聯繫。另一個代表性的算法是華人學者韓嘉煒在2000年提出的關聯分析算法—FP樹,其效率比Apriori提高了一個數量級。上面三個是數據挖掘領域裡面最有代表性的三個領域,只有了解了這三類領域才算數據挖掘基本入門。
  • 偉人霍金的十張經典照片和十大經典語錄
    史蒂芬·威廉·霍金(Stephen William Hawking,1942年1月8日至2018年3月14日),男,出生於英國牛津,英國劍橋大學著名物理學家,現代最偉大的物理學家之一、20世紀享有國際盛譽的偉人之一。2018年3月14日,霍金逝世,享年76歲。霍金逝世後,引發全球各界悼念。
  • 二十世紀的數學Sir麥可·阿提亞(Michael Atiyah)(21k字)
    「世紀」是一個大約的數字概念.我們不會真地認為在過整整一百年的時候,有些事情會突然停下來,再重新開始,所以當我描述二十世紀的數學時,有些內容實際上可能是跨世紀的,如果某件事件發生在十九世紀九十年代,並持續到二十世紀初,我將不去計較這種時間方面的細節.我所做的就象一個天文學家,工作在一個近似的數字環境中.實際上,許多東西始於十九世紀,只不過在二十世紀才碩果纍纍.