2017年12月13日 星期三

[書評] 演算法星球:七天導覽行程,一次弄懂演算法

這本書的書名和封面設計都相當不錯,我現在有點後悔我只是因為這幾項因素就買了這本書。雖然這本書在許多方面的想法都不差,但在許多結構與講解上並不平易近人。儘管如此,作者似乎已經盡量從最簡單的觀點切入演算法最核心的本質,所以我很難斷定是作者文筆的問題還是學科本身的特性。但可以肯定的是讀者最好有一些基礎的程式概念後會更容易理解作者想呈現的觀念。

簡評:有些演算法基礎後會較適合閱讀本書,作者容易提及進階的觀念,對於已有基礎者可以更清楚瞭解其中的觀點的連結。

本書以星球七日旅遊的想法切入主題,作者作為導遊帶領讀者探索演算法星球。所以作者開宗明義就說「這是本旅遊書」,序言中就大致勾勒了這本書為期七天的旅遊將訪遍的景點。第一章介紹演算法星球,說出它其實幾乎黏在人類的這顆星球之中,生活中無處不在,各種流程如尋找電話號碼、整理書籍等皆是處處可見,這也說明造訪這顆星球的意義所在。第二章則探索演算法的本質(或說定義),不過作者認為這大概有兩種形式去談,一是單就定義去分析但他認為這往往不能夠給予啟發性的答案,因此他採取實際的例證去說明此即一種演算法的形式去界定。大概讀者在進入本章中就會開始發現作者會使用一些技術性的名詞有些會立即解釋,但亦有的會說後面在談。

第三與第四章則討論演算法的極限,這涉及到所謂的計算複雜度的理論。從數學上的角度而言,大部分問題的「難度」會隨著規模的大小而成長,而成長的幅度則按這樣的理論進行研究。由於作者避免了大量的數學細節,從而此處作者以界定問題的難易度為主要策略來說明。第四章的標題仍舊在計算複雜的裡面,作者用了一個有趣的標題名為「萬有引力的西邊」,我不是很確定這個的意思但我猜應該是這些複雜度並非只有阻礙人類的進展,人們也可以運用這些不可能在有效時間解開的特性來作為工具。

第五章介紹演算法奇蹟般地應用,如中國剩餘定理、搜尋引擎、去噪音化等項目,作者以這些例子可以讓大家發現在這些極度困難(甚至看起來無望)的問題中竟然可以找到一系列的流程解決問題,但這些問題也都需要一些數學工具來處理,作者僅簡單介紹歷史與思想讓讀者淺嚐。第六章則著重在公平性問題,這可以思考為多重規劃問題,亦即若有多項目標欲達成或最適化,但又不可能同時達到那麼應如何權重後始之盡量滿足要求。通常透過人工的方式必然沒有效率,那我們又需要什麼樣的演算機制呢?

至於最後的第七章,作者稱之為新觀點,我不是很確定作者想表達的內容(儘管他說這是要帶給我們新觀點,如果有其他人看過這本書並且瞭解這個段落的話麻煩告訴我QQ),我就不多作其餘評論。總之全書看來作者盡量以簡單的話講述複雜的演算法機制與現象,但在許多時候又不可避免提及一些既有的名詞,有些名詞作者會立即交代清楚,有的則否;關於沒有交代清楚的名詞大多數並不妨礙閱讀,建議讀者可以做些註記並配合之後提及時候的介紹回頭反思會有所收穫(不過如果本身就認識這些名詞的話大概就不需要這個流程了!)

ISBN:9789869335386
叢書系列:ALPHA
規格:平裝 / 272頁 / 13.5 x 21 cm / 普通級 / 單色印刷 / 初版
出版地:台灣
出版日期:2016/08/31

沒有留言:

張貼留言