本書從「什麼是計算機」這個看似簡單的問題出發,追溯計算的本質如何從機械運動演進到電子電路,為後續章節奠定哲學與數學基礎。

什麼是計算機#

計算機的三個核心要素:

  • 計算單元:負責運算
  • 存儲單元:負責記憶資料
  • 指令序列:控制計算流程

中國算盤之所以被視為計算機,關鍵在於它透過「珠算口訣」這套指令序列來控制機械運動完成計算,而非依賴人腦心算。古希臘算盤只是輔助計算的工具,因為它缺少指令控制。

機械計算機、布爾代數和開關電路#

從帕斯卡到巴貝奇,機械計算機的發展揭示了一個根本矛盾:用複雜的方法解決複雜的問題,終將走入死胡同

關鍵突破來自三位人物:

  • 喬治·布爾:發明布爾代數,將數學邏輯統一為簡單的 AND、OR、NOT 運算
  • 克勞德·香農:證明布爾代數與開關電路等價,奠定數字電路設計基礎
  • 康拉德·楚澤:獨立發現相同原理,製造了人類第一台可編程計算機 Z1

香農的電路設計思想可歸納為兩個核心概念:

  • 模組化:用少量簡單模組搭建各種複雜功能
  • 等價性:只要實現了後者,就可以間接實現前者

圖靈機:計算的本質是機械運動#

圖靈從根本問題出發:什麼問題是可計算的?

圖靈機的四個組成部分:

  1. 一條無限長的紙帶,每格記錄符號或數字
  2. 一個讀寫頭,可在紙帶上左右移動並改寫內容
  3. 一套規則表,根據當前狀態和讀取的符號決定下一步動作
  4. 一個寄存器,記錄有限個狀態(包含「停機」狀態)

圖靈機的三大意義:

  • 將數學問題分為可計算不可計算兩類
  • 為後人設計計算機提供了行之有效的原則(存儲地址、狀態、規則表、讀寫頭)
  • 將計算過程與機械運動對應,今天的電子計算機本質仍是機械運動

人工智能的極限#

世界上的問題可分為層層嵌套的子集:

  • 所有問題 ⊃ 數學問題 ⊃ 可判定的問題 ⊃ 有答案的問題 ⊃ 可計算問題 ⊃ 工程可解問題

計算機能解決的問題只是所有問題中很小的一部分。計算複雜度等於或超過指數函數的問題,在工程上屬於無法解決的問題。

人工智能的邊界取決於問題本身的可計算性,而非硬體的算力。理解這些邊界,是成為高水平計算機工程師的前提。