改變世界的九大演算法 : 讓今日電腦無所不能的最強概念 (Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers)

約翰.麥考米克(John MacCormick) 著、陳正芬 譯

買這商品的人也買了...

商品描述

<內容簡介>

榮獲美國出版人協會(Association of American Publishers)電腦資訊科學最佳書籍獎

電腦網路技術無所不在:每天,我們從海量的資訊中搜尋到所要的資訊、我們上傳照片到臉書上、我們運用公鑰加密來傳送私人資訊例如信用卡號碼等等、我們使用數位簽章來確認所造訪的網站的真偽
……

這本書介紹了讓電腦網路世界得以運作,塑造今日人類生活的九種最重要的演算法(algorithm)。作者挑選這九大演算法的標準是:


1.每天會被一般電腦使用者用到的演算法。
2.必須能解決現實世界的具體問題。
3.主要是與資訊科學理論有關的演算法。
4. 美、簡潔、優雅。

本書所介紹的九大演算法是:搜尋引擎的索引(search engine indexing)、網頁排序(page rank)、公鑰加密(public-key cryptography)、錯誤更正碼(error-correcting codes)、模式辨識(pattern recognition,如手寫辨識、聲音辨識、人臉辨識等等)、資料壓縮(data compression)、資料庫(databases)、數位簽章(digital signature),以及一種如果存在的話將會很了不起的偉大演算法,並探討電腦能力的極限。


作者將我們日常生活會用到的電腦功能背後的道理,以淺顯易懂的方式介紹,不具備資訊科學的背景也可以了解。而且令人驚喜的是,每一種演算法,都是一個解決問題的創意與線索,也讓我們得以一窺近代數學家、資訊科學家的努力探索成果。面對越來越科技化的現代生活與職場挑戰,這些基本原理和概念值得我們去了解、吸收,為未來世界做好準備。 

 

<章節目錄>

推薦序 當演算法改變世界,認識演算法就是義務 / 鄭國威
前言


1章 引言:讓今日電腦威力無窮的神奇概念

演算法:天才就在彈指間

偉大演算法的條件是什麼?

這些偉大的演算法為什麼重要?


2章 搜尋引擎的索引:配對與排序

AltaVista:第一個網路規模的配對演算法
古早時代的陽春式索引

文字位置技法

排序與相鄰

元詞技法

光是標註索引和配對技法還不夠


3章 網頁排序:讓谷歌起飛的技術

超連結技法

權威性技法

隨機漫遊技法

網頁排序的實作


4章 公鑰加密:用明信片寄送祕密

用共同的祕密來加密

設定一個公開的共同祕密

實務上的公鑰加密


5章 錯誤更正碼:錯誤可以自己修正!

偵錯與改正的必要性

重複的技法

冗餘技法

校驗技法

定點目標技法
真實世界中的糾錯與偵錯


6章 模式辨識:從經驗中學習

問題是什麼?

最近鄰居技法

二十個問題技法:決策樹

神經網路

模式辨識:過去、現在、未來


7章 資料壓縮:白吃的午餐

無損失的壓縮:終極的白吃午餐

有損失的壓縮:不是白吃的午餐,但很划算

壓縮演算法的由來


8章 資料庫:追求一致性

交易與待辦事項清單技法

複製資料庫所用的「準備然後承諾技法」

關聯式資料庫與虛擬表格技法

資料庫的人性面


9章 數位簽章:這軟體到底是誰寫的?

數位簽章究竟用來做什麼?

書面簽字

上鎖的簽字

利用乘法鎖來簽字

利用指數型鎖來簽字

數位簽章的實務

解決矛盾


10章 什麼是可計算的?

程式錯誤、毀壞和軟體的可靠度

反證法

用於分析其他程式的程式

有些程式不可能存在

尋找當機的程式不可能存在

電腦的極限給我們的啟示


11章 結論:未來會如何呢?

頗具潛力的演算法

偉大的演算法可能失去光彩嗎?

我們學到了什麼?

旅程的結束


資料來源與延伸閱讀

<序>

 推薦序


當演算法改變世界,認識演算法就是義務
看完本書書稿,回頭繼續盯著電腦工作的我,有點感動,彷彿跟網路世界交上了心。
科普書的市場準則:出現的算式越多,賣得越差。曾經聽一位出版社編輯說,即使是在書名上出現「E=mc2」,都會讓他們猶豫再三,深怕影響銷量,這也難怪針對電腦科學或演算法的科普書那麼的少。即便我們的世界已經被電腦科學所顛覆,絕大多數的人,包括我在內,都只是傻傻地看著奇蹟變成慣習。
《改變世界的九大演算法》是本我願意大力讚許跟推薦的好書,不僅因為這本書勇於碰觸科普書出版的禁忌,而是因為本書作者,美國迪金森學院數學暨電腦科學系教授約翰˙麥考米克(John MacCormick)俐落的文筆跟清晰的鋪陳,足以抹消非專業人士對演算法的恐懼。
搜尋引擎到底是如何在百億個網頁之中,於零點幾秒之內找到我們想要的那個連結?讓數十億人感到滿意的網頁排序是如何實現的?如何在網路上傳輸隱私資訊,而不被中間無數節點看得一清二楚?如何驗證收到的資料是正確,無篡改的版本?人工智慧的基本原理是什麼?…… 如同作者所說,看完本書並不會讓你我可以即刻動手寫程式,變成演算法大師,但了解其運作原理,足以讓人感到任督二脈暢通,擁有了練內力的根基。
作者善於用簡單的小案例開始,一層層地將演算法的精神跟實際應用堆疊而上,讓我們從邏輯上去了解演算法的設計因由,至於繁複的計算過程在本書其實並非主角,除了幾個掰掰手指就能算出的範例外,作者並未給讀者太多負擔,因為在真實情況下,要展現演算法的能耐,也只能交由電腦去算。只要邏輯通了,演算法的設計美感就自然浮現,而這就是作者每一章節由淺入深,幾乎可說是循循善誘的寫作想要帶領我們進入的境界。
近來最熱門的科技產業關鍵詞「大數據」,讓產官學無不趨之若鶩,但大數據跟青少年的性經驗一樣:每個人都在談,每個人都宣稱自己做了,然而真正讓數據展現出價值的並非空談,而是演算法。從股市到戰爭,從自動交易到自動使用武力,背後都是演算法,而儘管實際做法不同,但看完本書,你都能更加理解演算法何以改變世界,也比較能理性地看待許多吹得上天下地的大數據忽悠文。
從另一方面來看,演算法本身即是戰場。無數網路高手抱持著挑戰或是為惡的心態,試圖打穿演算法之牆(或是悄悄繞過),有趣的是,台灣正是核心戰場之一。「誰說台灣是個沒有天然資源的國家?台灣最大的天然資源就是病毒樣本」這句話來自於一位知名台灣駭客 Birdman。台灣面對的入侵跟資安事件多不勝數,在世界上僅次於美國,是病毒(惡意程式)樣本數量最多的地方,既然如此,那麼對我們來說,多去認識電腦科學與演算法,就更是一種義務了。

鄭國威/PanSci泛科學總編輯


前言
電腦運算(computing)正在改變我們的社會,影響之深一如物理學和化學在過去兩百年為人類帶來的改變。數位科技幾乎全面影響你我的生活乃至於掀起革命,有鑑於電腦運算對現代社會的重要性,然而人們對造就這一切事物的基本概念所知卻如此有限,就顯得有些矛盾了。電腦科學的核心正是在研究這些概念,而這本約翰.麥考米克(John MacCormick)的新書,就是將這些概念傳達給一般讀者的少數書籍之一。
一般人對於電腦科學做為一門學科的體認相對欠缺,理由之一是在高中階段很少教導這些東西。物理和化學的入門課通常是必修,然而通常要到了大專、大學階段,才真正有電腦科學這門課。此外學校教的電腦運算或資訊與通信技術(Information and communication technology,簡稱ICT),通常只是使用套裝軟體的技術訓練,也難怪學生會覺得乏味。即使學生很自然地對於電腦技術應用在娛樂和通訊方面感到興趣,但卻因為印象中這些技術的創造缺乏學術的深度,使得他們的興趣沒有進一步發展。或許這就是過去十年來,美國研讀電腦科學的大學生人數減少了50%的原因。基於數位科技對現代社會的關鍵重要性,現在正是讓人們對電腦科學的奧祕重燃起興趣的最佳時機。
2008年,我有幸被選中在第180屆英國皇家科學院聖誕講座(Royal Institution Christmas Lectures)上台報告,這個活動是由偉大科學家法拉第(Michael Faraday)於1826年所發起。2008年的演講首度以電腦科學為主題,我在準備時花了很多時間思索該如何向普羅大眾介紹電腦科學,結果發現資源很少,幾乎沒有科普書能滿足這樣的需要,也因此這本書特別令人期待。
作者將複雜的電腦科學觀念很完美地傳達給讀者大眾,其中一些觀念的美與優雅,本身就值得大眾的關注。舉個例子:過去幾十年來,在公開管道上進行安全通訊一直是個棘手問題,直到人們想出了如何在網路上安全地傳送機密資訊(例如信用卡卡號),才造就了電子商務爆炸性的成長。在本書中,作者是以比喻的方式來說明這些優雅的解決方案的來龍去脈,讀者不須具備電腦科學知識就可以理解。諸如此類的優點,使本書成為不可多得的科普書籍,我極力推薦。

畢夏普(Chris Bishop)
微軟劍橋研究中心卓越科學家
英國皇家學院副院長
愛丁堡大學資訊科學教授