演算法正在形成新型生態系統,它將生生不息,次元書摘@《終極演算法》
我們生活在演算法的時代。
演算法不僅存在於你的手機或筆記本電腦,還存在於你的汽車、房子、家電以及玩具當中。
演算法就是一系列指令,告訴計算機該做什麼。計算機是由幾十億個微小開關(稱為晶體管)組成的,而演算法能在一秒內打開並關閉這些開關幾十億次。
最簡單的演算法是觸動開關。
一個晶體管的狀態就是一個比特信息:如果開關打開,信息就是1;如果開關關閉,信息就是0。
第二簡單的演算法是:把兩個比特結合起來。
如果A晶體管只有在B和C晶體管都打開時才打開,那麼這時它就是在做小型的邏輯運算。
信不信由你,所有演算法,無論有多複雜,都能分解成這三種邏輯運算:且、或、非。
通過組合許多這樣的邏輯運算,我們可以進行極其複雜的邏輯推理。
人們往往認為計算機只和數字有關,其實並非如此,它完全關於邏輯。
數學和算術都是由邏輯構成的,而計算機的所有其他部分也是如此。
一種演算法不僅是簡單的一套指令,這些指令必須精確且不能模糊,這樣計算機才能夠執行。
例如,食譜並不算一種演算法,因為食譜沒有明確給出做事的順序,或者具體每一步是怎樣的。
如果我們想對廚用機器人編程,讓它來做蛋糕,我們要通過視頻教它如何辨認白糖、如何拿起勺子等(我們現在仍然在努力)。
計算機必須知道如何執行演算法,直到打開及關閉指定的晶體管。因此,食譜離演算法還很遠。
演算法是一套嚴格的標準。人們常說,你沒法真正了解某樣東西,直到你能用一種演算法來將其表達出來(理查德·費曼曾說,「如果我無法創造某樣東西,那麼也就無法理解它」)。
設計演算法並沒有那麼簡單。這個過程充滿陷阱,什麼事都不能想當然。
演算法最重要的一點就是,你得用一種計算機能理解的語言來將演算法記錄下來,比如Java或者Python(從這個角度看,就是一個程序)。
接下來,你得對其進行糾錯:找出每個誤差並修正,直到計算機能夠運行程序,而不至於搞砸。
一旦你有了能完成你心愿的程序,就輕鬆多了。計算機會以飛快的速度,按我們的要求辦事,而且毫無怨言。
有朝一日,計算機科學家會互相依賴各自的成果,然後為新事物創造演算法。
這些演算法會與其他演算法相結合,目的是利用其他演算法的成果,反過來產生能服務更多演算法的成果。
每一秒鐘,數十億計算機里的數十億晶體管會打開關閉數十億次。
演算法形成新型生態系統,它將生生不息,具有無可比擬的生命多樣性。
本文內容整理自《終極演算法》,作者佩德羅·多明戈斯,中信出版集團
推薦閱讀:
※??讀書筆記 |《未來簡史》簡直就是一部哈姆雷特,一千個人讀過之後都會產生自己對未來不一樣的看法
※結對編程的分配問題
※Yann LeCun力挺觀點:演算法對AI提升不大,奇點仍然很遙遠
※從列表中原位刪除部分元素的正確方法