讓今日電腦無所不能的最強概念,你知道如何運用演算法解決問題嗎?

九大演算法

【我們為什麼選這本書】

當我們每天要從廣大的電腦網路世界中搜尋到所要的資訊,臉書、推特、Instagram 上傳照片等社群網站的運用,或是我們在網路上運用公鑰加密來傳送私人資訊,這些電腦能力的背後,每種演算的背後其實充滿了解決問題的創意與線索。(責任編輯:辜秋兒)

二十一世紀的人類享受科技的驚人進步,像是目前威力最強的機器群組或最新最時尚的手持式裝置,然而人們在使用電子運算裝置的同時,也要仰賴二十世紀所發現的電腦科學基礎概念。不妨想一下:

你是否曾經在數十億份資料中搜尋,然後挑出兩三份最合乎你需求的資料?

你是否儲存或傳輸了數百萬筆資訊,沒有一次發生錯誤,即使所有的電子器材都遭到電磁干擾?

你是否成功地完成一筆線上交易,即使還有數千個人也同時把資料敲進同一台伺服器?

你是否在電纜線上安全地傳輸機密資訊(如信用卡卡號),哪怕有幾十台電腦可能透過纜線窺伺你的一舉一動?

你是否運用神奇的壓縮技術,把一張數 MB 大的照片壓縮成方便電郵傳送的大小?

最後,你是否利用手持裝置那小小鍵盤上,針對你輸入的字詞進行自動偵錯的人工智慧而不自知?

超連結(hyperlink)是網頁上的「片語」,只要用滑鼠點它就會帶你到另一個網頁。 大部分的網頁瀏覽器會用藍色底線標示來凸顯。

令人意外的是,超連結並不是新概念。1945 年,就在大約電子計算機最初被開發出來的同時,美國工程師布希(Vannevar Bush)發表了一篇眼光遠大的文章,名為 〈如我們所想〉(As We May Think)。布希在這篇文章中談到許多有潛力的新技術,包括一台他稱之為 memex 的機器,memex 會儲存文件然後自動標註索引,不只如此,它還能做「聯想式索引……人們可以隨意讓任何一個項目立即且自動去挑選另一個項目」,換言之,這是早期的超連結形式!

1945 年以來,超連結不斷地發展,如今不但是搜尋引擎排序的最重要工具,谷歌的網頁排序技術也以它為基礎。接下來就來一探究竟。

要了解網頁排序,第一步是了解「超連結技法」這個簡單概念。假設你想知道如何炒蛋,於是上網搜尋。真正上網搜尋炒蛋會出現上百萬筆符合條件的資料,但為了簡化起見,姑且想像結果只有兩個網頁,一個叫做「爾尼的炒蛋食譜」,另一個是「伯特的炒蛋食譜」。再次為了簡化起見,想像整個網路上只有四個網頁連結到這兩種炒蛋食譜,超連結以畫線的內文呈現,箭頭表明所連結到的網頁。

九大演算法插圖_副本

超連結技法。上面六個框框各代表一個網頁,其中兩頁是炒蛋食譜,另外四頁是有超連結到這兩個食譜的網頁。超連結技法將伯特的網頁排在爾尼之前,是因為有三個網頁連結到伯特的網頁,連到爾尼的只有一個。

問題是,伯特和爾尼的炒蛋食譜網頁,究竟誰該排在前面?對人類來說,直接去閱讀這兩個食譜的頁面來做判斷並不難──看來這兩份食譜都不差,但是伯特的食譜遠比爾尼的受歡迎。因此,在欠缺其他資訊的情況下,將伯特排在爾尼前面應該是比較合理的做法。

可惜,電腦無法輕易了解某個網頁真正的意思,因此搜尋引擎無法檢視這四個連結到食譜的網頁,來評估每個食譜受好評的狀況。幸好電腦很會計數,所以一個簡單的方法是去計算每個食譜分別有幾個外來的連結──在此例中爾尼有一頁、伯特三頁──然後根據這個數量來排序。當然,這方法比不上人去閱讀所有網頁再以人工方式排序,但卻不失為一種有用的方法。

結果發現,在沒有其他資訊的情況下,一個網頁所擁有的外來連結數,可能足以成為該網頁實用性與權威性的指標,在此伯特的網頁得到三分,爾尼得到一分,於是搜尋引擎在呈現結果時,會將伯特的網頁排在爾尼前面。

你大概已經看出這種超連結技法的排序方式有哪些問題,其中之一就是有時候不好的網頁反而得到較多連結數。舉例來說,想像有個連結到爾尼食譜的網頁寫著:「我試了爾尼的食譜,難吃死了。」類似這種批評而非推薦的連結,利用超連結技法排序時,的確會給予這種網頁過高的排序,但是還好在實務上,超連結的褒多於貶,因此這種技法還是有用的。

列印

(本文書摘內容摘錄自《改變世界的九大演算法》,由合作夥伴經濟新潮社授權轉載,並同意 TechOrange 編輯導讀與修訂標題。圖片來源:經濟新潮社)


點關鍵字看更多相關文章: