一句話解釋

隨機演算法擴展了複雜度理論:RP 允許單向錯誤、BPP 允許雙向錯誤、ZPP 是 Las Vegas,都在多項式時間內。


Turing Machine 基礎

Deterministic Turing Machine (DTM)

組成:

  • 無限長紙帶(tape)
  • 讀寫頭(head)
  • 有限狀態控制(finite control)
  • 轉移函數 $\delta(q, a) = (q’, a’, D)$
    • $q$: 當前狀態,$a$: 讀到的符號
    • $q’$: 新狀態,$a’$: 寫入符號,$D$: 移動方向

Probabilistic Turing Machine (PTM)

加入隨機選擇

轉移函數變成機率分佈: $$ \delta(q, a) = \{(q'_1, a'_1, D_1, p_1), (q'_2, a'_2, D_2, p_2), \dots\} $$ 其中 $\sum_i p_i = 1$ 等價於:機器可以「擲硬幣」來決定下一步。

傳統複雜度類別

P(Polynomial Time)

定義: 可在**確定性**多項式時間內解決的決策問題集合。 $$ \text{P} = \bigcup_{k \geq 0} \text{DTIME}(n^k) $$ 範例: - 最短路徑(Dijkstra) - 排序(Merge Sort) - 線性規劃(Ellipsoid Method)

NP(Nondeterministic Polynomial Time)

定義: 可在多項式時間內**驗證**解的決策問題集合。 等價定義:**非確定性** Turing Machine 可在多項式時間內解決。 $$ \text{NP} = \bigcup_{k \geq 0} \text{NTIME}(n^k) $$ 範例: - SAT(Boolean Satisfiability) - TSP(Traveling Salesman,判定版本) - Graph Coloring

co-NP

定義: 補問題(complement)在 NP 的問題集合。 $$ L \in \text{co-NP} \iff \bar{L} \in \text{NP} $$ 範例: - UNSAT(不可滿足性) - TAUTOLOGY(永真式)

關係

P ⊆ NP
P ⊆ co-NP
P = NP ∩ co-NP (已知)

未知: P ?= NP, NP ?= co-NP

隨機複雜度類別

RP(Randomized Polynomial Time)

定義: Monte Carlo 演算法,**單向錯誤**(one-sided error)。 對語言 $L$: - 若 $x \in L$:$\Pr[\text{Accept}] \geq \frac{1}{2}$ - 若 $x \notin L$:$\Pr[\text{Accept}] = 0$(**不會誤判**) 特性: - Yes 答案一定對 - No 答案可能錯(但重複可降低錯誤率)

範例:質數測試(某些版本)

  • 若 $n$ 是質數:高機率通過測試
  • 若 $n$ 是合數:一定不通過測試

co-RP

定義: RP 的補類別。 對語言 $L$: - 若 $x \in L$:$\Pr[\text{Accept}] = 1$ - 若 $x \notin L$:$\Pr[\text{Reject}] \geq \frac{1}{2}$ 特性: - No 答案一定對 - Yes 答案可能錯

ZPP(Zero-error Probabilistic Polynomial)

定義: Las Vegas 演算法,**期望**多項式時間。 $$ \text{ZPP} = \text{RP} \cap \text{co-RP} $$ 特性: - 總是給出正確答案 - 運行時間隨機,期望多項式

範例:Randomized Quicksort
期望時間 $O(n \log n)$,總是正確排序。

BPP(Bounded-error Probabilistic Polynomial)

定義: Monte Carlo,**雙向錯誤**(two-sided error)。 對語言 $L$: - 若 $x \in L$:$\Pr[\text{Accept}] \geq \frac{2}{3}$ - 若 $x \notin L$:$\Pr[\text{Reject}] \geq \frac{2}{3}$ 關鍵: 錯誤率可透過重複降到任意小。

💡 為什麼用 2/3?
任何常數 $> 1/2$ 都可以(透過 amplification 達到任意接近 1)。
2/3 只是慣例,計算方便。

PP(Probabilistic Polynomial Time)

定義: 成功率 $> 1/2$(但可以非常接近 1/2)。 - 若 $x \in L$:$\Pr[\text{Accept}] > \frac{1}{2}$ - 若 $x \notin L$:$\Pr[\text{Accept}] < \frac{1}{2}$ 問題: 錯誤率可能是 $1/2 - 1/2^{n^{100}}$,無法有效 amplify!

類別關係圖

已知關係:

P ⊆ ZPP ⊆ RP ⊆ NP
P ⊆ ZPP ⊆ co-RP ⊆ co-NP
RP ⊆ BPP ⊆ PP
co-RP ⊆ BPP ⊆ PP
BPP ⊆ PSPACE

猜測(未證明):
P = BPP (多數人相信)
RP ≠ NP

比較表

類別 模型 錯誤類型 範例
**P** 確定性 無錯誤 排序、最短路
**RP** 隨機 單向(Yes 對) 質數測試(某些)
**co-RP** 隨機 單向(No 對) 多項式等價測試
**ZPP** 隨機 無錯誤(Las Vegas) Randomized Quicksort
**BPP** 隨機 雙向(可 amplify) 多項式等價測試
**PP** 隨機 雙向(難 amplify) Majority-SAT

Amplification:降低錯誤率

BPP 的 Amplification

原始: 錯誤率 $\leq 1/3$ 重複 $k$ 次,取多數決(Majority Vote): 錯誤率降為: $$ \epsilon_k \leq e^{-\Omega(k)} $$ 具體地,Chernoff Bound 給出: $$ \epsilon_k \leq 2^{-\Omega(k)} $$ 範例: 重複 $k = O(\log n)$ 次 → 錯誤率 $\leq 1/n^c$(多項式小)

RP 的 Amplification

原始: 成功率 $\geq 1/2$ 重複 $k$ 次: 失敗率(全部失敗): $$ (1/2)^k \leq 2^{-k} $$ 範例: 重複 $k = O(\log n)$ 次 → 失敗率 $\leq 1/n^c$

Coin Transformation

問題

只有有偏硬幣(bias coin),如何模擬公平硬幣

Von Neumann Trick

假設: 硬幣正面機率 $p \in (0, 1)$(未知) 方法: 1. 擲兩次,觀察結果 2. 若 $(H, T)$ → 輸出 $0$ 3. 若 $(T, H)$ → 輸出 $1$ 4. 若 $(H, H)$ 或 $(T, T)$ → 重擲 分析: $$ \Pr[(H,T)] = p(1-p) = \Pr[(T,H)] $$ 所以輸出 0 和 1 的機率相等($1/2$)! 期望擲幣次數: $$ \mathbb{E}[\text{擲幣次數}] = \frac{2}{2p(1-p)} = \frac{1}{p(1-p)} $$

逆問題:模擬有偏硬幣

用公平硬幣模擬機率 $p = k/2^n$ 的事件:

  • 擲 $n$ 次公平硬幣,得二進位數 $m \in [0, 2^n-1]$
  • 若 $m < k$,輸出 1;否則輸出 0

總結

隨機複雜度類別擴展了計算理論:

  1. RP: 單向錯誤(Yes 對),如質數測試
  2. co-RP: 單向錯誤(No 對)
  3. ZPP = RP ∩ co-RP: 無錯誤但時間隨機(Las Vegas)
  4. BPP: 雙向錯誤,但可 amplify(最廣泛使用)
  5. PP: 雙向但難 amplify(較不實用)

大猜想: P = BPP(隨機不真的增加計算能力?)


參考資料

  • Arora & Barak, Computational Complexity: A Modern Approach, Chapter 7
  • Goldreich, Computational Complexity: A Conceptual Perspective
  • Sipser, Introduction to the Theory of Computation, Chapter 10