本書從「什麼是計算機」這個看似簡單的問題出發,追溯計算的本質如何從機械運動演進到電子電路,為後續章節奠定哲學與數學基礎。
什麼是計算機#
計算機的三個核心要素:
- 計算單元:負責運算
- 存儲單元:負責記憶資料
- 指令序列:控制計算流程
中國算盤之所以被視為計算機,關鍵在於它透過「珠算口訣」這套指令序列來控制機械運動完成計算,而非依賴人腦心算。古希臘算盤只是輔助計算的工具,因為它缺少指令控制。
機械計算機、布爾代數和開關電路#
從帕斯卡到巴貝奇,機械計算機的發展揭示了一個根本矛盾:用複雜的方法解決複雜的問題,終將走入死胡同。
關鍵突破來自三位人物:
- 喬治·布爾:發明布爾代數,將數學邏輯統一為簡單的 AND、OR、NOT 運算
- 克勞德·香農:證明布爾代數與開關電路等價,奠定數字電路設計基礎
- 康拉德·楚澤:獨立發現相同原理,製造了人類第一台可編程計算機 Z1
香農的電路設計思想可歸納為兩個核心概念:
- 模組化:用少量簡單模組搭建各種複雜功能
- 等價性:只要實現了後者,就可以間接實現前者
圖靈機:計算的本質是機械運動#
圖靈從根本問題出發:什麼問題是可計算的?
圖靈機的四個組成部分:
- 一條無限長的紙帶,每格記錄符號或數字
- 一個讀寫頭,可在紙帶上左右移動並改寫內容
- 一套規則表,根據當前狀態和讀取的符號決定下一步動作
- 一個寄存器,記錄有限個狀態(包含「停機」狀態)
圖靈機的三大意義:
- 將數學問題分為可計算與不可計算兩類
- 為後人設計計算機提供了行之有效的原則(存儲地址、狀態、規則表、讀寫頭)
- 將計算過程與機械運動對應,今天的電子計算機本質仍是機械運動
人工智能的極限#
世界上的問題可分為層層嵌套的子集:
- 所有問題 ⊃ 數學問題 ⊃ 可判定的問題 ⊃ 有答案的問題 ⊃ 可計算問題 ⊃ 工程可解問題
計算機能解決的問題只是所有問題中很小的一部分。計算複雜度等於或超過指數函數的問題,在工程上屬於無法解決的問題。
人工智能的邊界取決於問題本身的可計算性,而非硬體的算力。理解這些邊界,是成為高水平計算機工程師的前提。