1948 夏農資訊論與維納控制論#
案發現場#
1948 年,兩篇論文在同一年出版,把「資訊」第一次變成可度量的科學對象:
- 7 月與 10 月,貝爾實驗室的夏農(Claude Shannon, 1916–2001)在《貝爾系統技術期刊》連載〈通訊的數學理論〉(A Mathematical Theory of Communication);
- 同年,麻省理工的維納(Norbert Wiener, 1894–1964)出版《控制論》(Cybernetics: Or the Control and Communication in the Animal and the Machine)。
在此之前,「資訊」是哲學、圖書館學、日常語言的模糊概念——訊息的「意義」千頭萬緒,誰也無法量化。夏農的天才一擊:拋棄意義,只問不確定性。一則訊息的資訊量,等於它消除的不確定性——而「不確定性」可以用機率(1926-薛丁格方程.md 時代已成熟的機率論)精確度量。
這是第八幕的理論基石:迴路的載體從能量換成資訊之後,資訊本身需要一門物理學。
偵查過程#
線索一:熵的第二次出場。 熱力學的熵(1850-克勞修斯第二定律.md)度量系統的混亂度。夏農發現:訊息源的不確定性,數學形式與熱力學熵一模一樣:
夏農不知如何命名,數學家馮紐曼建議:「就叫熵。理由有二:第一,你的不確定性函數在統計力學裡已經叫這個名字;第二,沒有人真的懂熵,你在辯論中永遠佔上風。」——1 bit 就是一次二元選擇(擲硬幣)所消除的不確定性。
線索二:通道容量。 夏農證明:任何有雜訊的通道,都有一個容量極限 C = B log₂(1 + S/N)(B 為頻寬,S/N 為訊雜比)——只要傳輸速率低於 C,就存在編碼方式讓錯誤率任意低;超過 C,則必不可能。這是資訊時代的「光速極限」:所有數據壓縮、糾錯碼、通訊系統都在這條定理的陰影下運轉。
線索三:維納的控制論。 維納從防空炮火的自動瞄準問題出發(二戰時為預測飛機軌跡設計濾波器),提出核心洞見:生物與機械同構——兩者都靠「回饋(feedback)」與「資訊交換」維持秩序。恆溫器、導航系統、生物體的體溫調節、市場經濟,在控制論眼中是同一類系統。維納的詞源「cybernetics」源自希臘語「掌舵人(kybernetes)」——與「governor(治理者)」同源,暗示這門學問將統治一切回饋系統。
線索四:資訊與物理的合流。 夏農熵與熱力學熵的同構,戰後引出「資訊是物理的」這一深遠問題——蘭道爾(Landauer)1961 年證明「資訊擦除必然耗能(kT ln 2 每比特)」,把兩個熵真正綁在一起。夏農的理論加上電晶體(1947-電晶體.md),直接孵化出 1970-光纖.md、資料壓縮、糾錯碼,乃至 1989-全球資訊網.md 的整條資訊路。
結案報告#
夏農資訊論與維納控制論屬於迴路的理論環節——資訊與控制成為可度量的科學對象,迴路載體從能量換成資訊之後的理論支柱。其深遠遺產:
- 資訊的物理學——比特成為與焦耳、安培並列的基本量;所有通訊與儲存系統都在夏農極限下運轉。
- 回饋成為科學對象——控制論催生自動控制、機器人學、神經網路(2012-深度學習革命.md 的思想源頭之一)。
- 理論與技術的雙向迴路——夏農的理論在貝爾實驗室與電晶體研發同步孕育;理論→技術、技術→理論在此迴路中同時運轉。
- 熵的兩次出場——從蒸汽機的熱損耗(1824-卡諾熱機理論.md、1850-克勞修斯第二定律.md)到通訊的不確定性,「熵」把能量迴路與資訊迴路串成一根線。
證據與工具#
# 偵查證物一:夏農熵 — 資訊的不確定性度量
import math
def entropy(probs):
# H = -Σ p·log2(p),夏農熵(單位:bit)
return -sum(p*math.log2(p) for p in probs if p > 0)
print("--- 夏農熵 H = -Σ p·log2(p) ---")
print(f"公平硬幣(50/50):H = {entropy([0.5,0.5]):.2f} bit")
print(f"偏歪硬幣(90/10):H = {entropy([0.9,0.1]):.3f} bit")
print(f"確定事件(100/0):H = {entropy([1.0,0.0]):.2f} bit")
print("→ 越不確定,資訊量越大;確定事件零資訊")
# 偵查證物二:夏農通道容量 — C = B·log2(1 + S/N)
B = 3000 # 頻寬 3 kHz(電話線)
snr = 30 # 訊雜比 30 dB → S/N = 1000
S_N = 10**(snr/10)
C = B * math.log2(1 + S_N)
print(f"\n電話線(3 kHz、30 dB):通道容量 C = {C/1000:.1f} kbit/s")
print("→ 數據機速度的理論極限,所有通訊系統都在此陰影下運轉")
# 偵查證物三:蘭道爾極限 — 資訊擦除的最小能耗
kB, T = 1.381e-23, 300
E_bit = kB * T * math.log(2)
print(f"\n室溫下擦除 1 bit 的最小能耗 = kT·ln2 = {E_bit:.2e} J")
print("→ 資訊是物理的:夏農熵與熱力學熵在此匯合")