1.3 量子力學基本原理#
本章把後續章節需要用到的量子力學原理整理成「計算規則」。讀者不需要物理背景,只要把這些規則當作公理接受,就能推導出全書所有演算法。
原理一:態的疊加原理#
孤立量子系統的狀態由希爾伯特空間(本書只需有限維複數向量空間 \(\mathbb{C}^{2^n}\) )中的單位向量描述。若 \(|\psi_1\rangle\) 與 \(|\psi_2\rangle\) 都是可能的狀態,則任何歸一化的線性組合 \(a|\psi_1\rangle+b|\psi_2\rangle\) 也是可能的狀態。這就是疊加原理,也是 1.2 節的數學基礎。
原理二:演化由么正變換描述#
孤立系統的狀態隨時間連續演化,其演化由么正矩陣(unitary) \(U\) 描述: \(|\psi'\rangle = U|\psi\rangle\) ,滿足 \(U^\dagger U = I\) ( \(U^\dagger\) 是共軛轉置)。么正性保證兩件事:
- 內積(反之機率)守恆: \(\langle\psi'|U^\dagger U|\psi\rangle' = \langle\psi|\psi\rangle\) ;
- 演化可逆: \(U\) 的逆就是 \(U^\dagger\) ,且仍是么正的。
量子計算裡的閘就是么正矩陣。這條原理解釋了為什麼量子電腦不能直接做古典的 AND、OR(它們不可逆、把兩個輸入映射成一個輸出),而必須設計成可逆形式(第 3 章的 Toffoli 閘)。
原理三:測量的機率法則(Born 規則)#
對狀態 \(|\psi\rangle\) ,測量某觀察量 \(M\) 得到特徵值 \(m\) 的機率是
其中 \(|m\rangle\) 是 \(M\) 對應特徵值 \(m\) 的特徵向量。在量子計算的標準測量(computational basis measurement)裡, \(M\) 就是 \(Z\) 閘(Pauli-Z \(\text{diag}(1,-1)\) ), \(|0\rangle,|1\rangle\) 是其特徵向量,於是得到 1.2 節所述的 \(|\alpha|^2,|\beta|^2\) 規則。
測量後狀態坍縮:測得 \(m\) 之後,狀態立刻變成 \(|m\rangle\) 。這是不可逆過程,也是模擬器中 measure 函式需「抽樣並坍縮」的原因(第 4 章詳述)。
原理四:複合系統與糾纏#
兩個量子位元的聯合狀態存在於張量積空間 \(\mathbb{C}^2 \otimes \mathbb{C}^2 = \mathbb{C}^4\) 。若能把聯合狀態寫成 \(|\psi\rangle_A \otimes |\phi\rangle_B\) ,稱為可分離;否則稱為糾纏(entangled)。經典例子:
無法分解成兩個單位元狀態的乘積。糾纏是量子資訊最奇特、最有用的資源,第 3、4 章將大量使用。
原理五:不可克隆定理(預告)#
不存在一個物理過程能把任意未知量子態 \(|\psi\rangle\) 複製成兩份。這條定理可以由么正性直接推出(第 4.2 節給證明),是量子密碼學安全性的根據。
程式範例:驗證么正演化與 Born 規則#
import numpy as np
# 任取一個么正矩陣(此處用 Hadamard)
H = np.array([[1, 1], [1, -1]], dtype=complex) / np.sqrt(2)
# 檢查 U^dagger U = I
I = H.conj().T @ H
print(np.allclose(I, np.eye(2))) # True
# 檢查內積守恆
psi = np.array([1/np.sqrt(2), 1j/np.sqrt(2)])
psi2 = H @ psi
print(np.vdot(psi, psi).real, np.vdot(psi2, psi2).real) # 1.0 1.0
# Born 規則:|測得 1 的機率> = |<1|psi>|^2
ket1 = np.array([0, 1], dtype=complex)
p1 = abs(np.vdot(ket1, psi))**2
print(p1) # 0.5
# 模擬 10000 次測量
np.random.seed(0)
draws = np.random.choice([0, 1], size=10000, p=np.abs(psi)**2)
print(np.mean(draws)) # 約 0.5
這些原理如何串起全書#
| 原理 | 在演算法中的角色 |
|---|---|
| 疊加 | 一次操作作用在所有基底分量上(Deutsch-Jozsa 的第一步) |
| 么正演化 | 閘設計的合法性限制;干涉方向控制 |
| Born 規則 | 演算法最終讀出答案的方式;模擬器抽樣 |
| 糾纏 | 遙傳態、Grover 的多量子位元擴散、QFT |
| 不可克隆 | 安全性保證;也是錯誤糾正(第 9 章)需要 Unicode 技巧的原因 |
練習#
- 證明兩個么正矩陣的乘積仍是么正;矩陣 \(K=\text{diag}(1, e^{i\varphi})\) 是否么正?
- 給定 \(|\psi\rangle=(\frac{1}{\sqrt{3}}, \frac{2i}{\sqrt{3}})\) 並不合法,請求出使其合法的最小修正(把第一分量改為多少?)。
- 用程式驗證 \(|\Phi^+\rangle = (|00\rangle+|11\rangle)/\sqrt{2}\) 無法分解為兩個二維單位向量的 Kronecker 乘積。(提示:寫一個小迴圈列舉所有 \(\alpha,\beta\) 網格。)