Featured image of post 為什麼混合檢體檢測能用更少的次數找出陽性感染者:群測試(Group Testing)與組合搜尋的數學原理

為什麼混合檢體檢測能用更少的次數找出陽性感染者:群測試(Group Testing)與組合搜尋的數學原理

深入解析群測試(Group Testing)與組合搜尋的數學體系:從1943年多夫曼(Dorfman)的二階段混檢突破、香農資訊理論下界、12枚假幣天平問題與自適應二分搜尋,到考茨-辛格爾頓析取矩陣(Disjunct Matrix)、有限體里德-所羅門多項式混檢設計,以及壓縮感知與高通量基因篩檢應用。

假設在 \(1,000\) 人的群體中,恰好隱藏著 \(1\) 名某種傳染病的陽性感染者。為了以 \(100\%\) 的準確率找出這名陽性個體,至少需要進行多少次檢測?

直覺告訴我們需要逐一檢測全部 \(1,000\) 人,即進行 \(1,000\) 次檢測。然而,數學與資訊理論給出了截然不同的答案:如果我們允許將多人的生物檢體混合(Pooling)在一起檢測「混合檢體中是否至少含有一名陽性個體」,那麼採用分步縮小的自適應策略(Adaptive Group Testing)只需區區 \(10\) 次檢測;更令人驚嘆的是,即便在檢測開始前就完全固定所有混合方案、將全部檢測在同一批次平行完成(非自適應群測試,Non-Adaptive Group Testing),也僅僅需要幾十次檢測就能一步到位地精準鎖定陽性感染者。

這一看似魔術的方法,正是橫跨數理統計、離散數學、編碼理論與資訊理論的群測試(Group Testing,又稱分組檢測或池化檢驗)與組合搜尋(Combinatorial Search)理論。本文將從1943年羅伯特·多夫曼(Robert Dorfman)的二戰奠基論文出發,嚴格推導香農資訊理論下界,對比「12枚假幣天平稱重問題」與黃光明(Frank K. Hwang)廣義二分搜尋,剖析考茨與辛格爾頓(Kautz & Singleton)提出的析取矩陣(Disjunct Matrix / 疊加碼)與有限體里德-所羅門(Reed-Solomon)多項式設計,並揭示其與現代壓縮感知(Compressed Sensing)、多址通訊碰撞消解以及 COVID-19 高通量 P-BEST 核酸混檢之間的深刻數學對偶性。


1. 1943年的戰時突破:多夫曼二階段池化檢驗法(Dorfman Pooling)

1.1 二戰徵兵篩檢與瓦氏血液檢測瓶頸

群測試的數學史始於1943年12月。當時美國統計學家羅伯特·多夫曼(Robert Dorfman)在《數理統計年鑑》(The Annals of Mathematical Statistics)上發表了一篇僅6頁卻影響深遠的論文——“The Detection of Defective Members of Large Populations”(大規模母體中缺陷成員的檢測)。

第二次世界大戰期間,美國陸軍需要對數百萬應徵入伍的新兵進行梅毒(Syphilis)篩檢。當時的標準檢測手段是瓦氏反應血液檢測(Wassermann test),不僅試劑昂貴、操作繁瑣,而且在新兵群體中梅毒的真實盛行率 \(p\) 極低(通常在 \(p \approx 0.01\) 到 \(p \approx 0.001\) 之間)。這意味著如果對每個人單獨驗血,超過 \(99\%\) 的檢測資源都耗費在「確認健康人為陰性」這一重複勞動上。

多夫曼提出了一個極具洞察力的兩階段方案:不再逐一檢測,而是將 \(N\) 名新兵按每組 \(k\) 人劃分為若干個不相交的檢體池(Pool),將同組 \(k\) 人的血清各取一部分混合在一支試管中進行檢測。

1.2 多夫曼二階段演算法流程

假設母體總人數為 \(N\),每個個體獨立地以機率 \(p\) 呈陽性(\(1\)),以機率 \(q = 1 - p\) 呈陰性(\(0\))。多夫曼二階段混檢法對每個大小為 \(k\) 的檢體池執行以下兩步:

  1. 第一階段(混合池初篩):將池內 \(k\) 個檢體混合,僅進行 \(1\) 次檢測。
    • 若混合池呈陰性(Negative)(機率為 \((1 - p)^k\)):說明這 \(k\) 個人全部為陰性!僅用 \(1\) 次檢測就排除了 \(k\) 個人的感染可能,該組檢測直接結束。
    • 若混合池呈陽性(Positive)(機率為 \(1 - (1 - p)^k\)):說明這 \(k\) 人中至少有 \(1\) 人為陽性,進入第二階段。
  2. 第二階段(個體複核):對呈陽性的混合池內的全部 \(k\) 個原始留存檢體逐一進行單獨檢測(共消耗 \(1 + k\) 次檢測),從而精確定位所有陽性個體。
  flowchart TD
    A["將 N 個檢體劃分為大小為 k 的不相交檢體池"] --> B["第一階段:將 k 個檢體混合進行 1 次檢測"]
    B --> C{"混合池檢測結果如何?"}
    C -- "陰性:機率 (1 - p)^k" --> D["池內 k 人全部確認為陰性!<br/>(累計消耗檢測次數:1 次)"]
    C -- "陽性:機率 1 - (1 - p)^k" --> E["第二階段:對池內 k 人逐一單獨複檢<br/>(累計消耗檢測次數:1 + k 次)"]

1.3 期望檢測次數推導與最佳池大小 \(k^*\) 的解析解

如何選擇每組的人數 \(k\) 才能使總期望檢測次數最少?若 \(k\) 太小,第一階段的混合池數量過多;若 \(k\) 太大,幾乎每個混合池都會包含至少一名陽性感染者而呈陽性,導致幾乎所有人都要進行第二階段複檢。

對於一個大小為 \(k\) 的檢體池,其消耗的檢測次數 \(T_{\text{pool}}\) 的數學期望值為:

\[\mathbb{E}[T_{\text{pool}}] = 1 \cdot (1 - p)^k + (1 + k)\left[1 - (1 - p)^k\right] = 1 + k\left[1 - (1 - p)^k\right]\]

將其除以池大小 \(k\),即得到人均期望檢測次數 \(f(k) = \frac{\mathbb{E}[T]}{N}\)(當 \(k \ge 2\) 時):

\[f(k) = \frac{\mathbb{E}[T]}{N} = \frac{1}{k} + 1 - (1 - p)^k\]

當盛行率 \(p \ll 1\)(且 \(kp \ll 1\))時,利用一階泰勒展開(二項近似)\((1 - p)^k \approx 1 - kp\),上式簡化為:

\[f(k) \approx \frac{1}{k} + k p\]

利用算術幾何平均不等式(AM-GM 不等式)或對 \(k\) 求導並令導數為零,立即求得最佳池大小 \(k^*\) 與最小人均檢測次數:

\[\frac{d}{dk}\left(\frac{1}{k} + kp\right) = -\frac{1}{k^2} + p = 0 \implies k^* \approx \frac{1}{\sqrt{p}}, \qquad \frac{\mathbb{E}[T]_{\min}}{N} \approx 2\sqrt{p}\]

讓我們代入具體數值感受這一平方根法則的威力:

  • 當盛行率 \(p = 0.01\)(\(1\%\) 陽性率)時:最佳池大小 \(k^* \approx \frac{1}{\sqrt{0.01}} = 10\) 人(精確離散最佳解為 \(k^* = 11\))。此時人均檢測次數僅為 \(\frac{\mathbb{E}[T]}{N} \approx 2\sqrt{0.01} = 0.20\) 次(精確值為 \(0.1956\) 次)。這意味著篩檢 \(1,000\) 人只需要約 \(200\) 次(精確為 \(196\) 次)檢測,直接節省了 \(80\%\) 的檢測量!
  • 當盛行率 \(p = 0.0001\)(萬分之一陽性率)時:最佳池大小 \(k^* \approx \frac{1}{\sqrt{0.0001}} = 100\) 人,人均檢測次數降至 \(\frac{\mathbb{E}[T]}{N} \approx 2\sqrt{0.0001} = 0.02\) 次。篩檢 \(10,000\) 人僅需 \(200\) 次檢測,消除了整整 \(98\%\) 的檢測成本!
盛行率 \(p\)陽性比例漸近最佳池大小 \(1/\sqrt{p}\)精確最佳池大小 \(k^*\)人均期望檢測數 \(\mathbb{E}[T]/N\)(精確值)每 \(1,000\) 人期望檢測次數節省檢測比例
\(p = 0.10\)\(1/10\)\(3.16\)\(4\) 人\(0.5939\)\(594\) 次節省 \(40.6\%\)
\(p = 0.05\)\(1/20\)\(4.47\)\(5\) 人\(0.4262\)\(426\) 次節省 \(57.4\%\)
\(p = 0.01\)\(1/100\)\(10.0\)\(11\) 人\(0.1956\)\(196\) 次節省 \(80.4\%\)
\(p = 0.001\)\(1/1,000\)\(31.6\)\(32\) 人\(0.0628\)\(63\) 次節省 \(93.7\%\)
\(p = 0.0001\)\(1/10,000\)\(100.0\)\(101\) 人\(0.01995\)\(20\) 次節省 \(98.0\%\)

2. 香農資訊理論下界:檢測次數最少能壓縮到多少?

多夫曼方法將人均檢測數從 \(1\) 降到了 \(2\sqrt{p}\)(當總陽性人數為 \(d = Np\) 時,總檢測數為 \(2\sqrt{Nd}\))。但如果允許使用任意多階段或任意複雜的組合設計,物理定律所允許的絕對最少檢測次數是多少?

  1. 組合模型下的計數下界(Counting Bound): 假設 \(N\) 個檢體中恰好有 \(d\) 個陽性檢體(未知陽性集合 \(S \subset [N], |S| = d\))。共有 \(\binom{N}{d}\) 種可能的陽性集合。每次二元檢測的輸出僅為 \(\{0, 1\}\)(陰性或陽性),最多提供 \(1\) 位元(bit)的香農資訊量。經過 \(T\) 次檢測後,結果向量 \(\mathbf{y} \in \{0, 1\}^T\) 最多有 \(2^T\) 種可能取值。由鴿籠原理,要唯一區分所有 \(\binom{N}{d}\) 種狀態,必須滿足: \(2^T \ge \binom{N}{d} \implies T \ge \log_2 \binom{N}{d} \approx d \log_2 \frac{N}{d} + O(d)\)
  2. 機率模型下的香農熵下界(Shannon Entropy Bound): 若每個個體獨立以機率 \(p\) 呈陽性,則母體狀態向量 \(\mathbf{X} \in \{0, 1\}^N\) 的聯合香農熵為 \(H(\mathbf{X}) = N H_2(p)\)。由於每次檢測最多提取 \(1\) 位元資訊,任何無差錯群測試演算法的期望檢測次數必滿足: \(\frac{\mathbb{E}[T]}{N} \ge H_2(p) = -p\log_2 p - (1-p)\log_2(1-p)\)

以 \(N = 1,000, d = 1\)(\(p = 0.001\))為例:單獨檢測需 \(1,000\) 次,多夫曼二階段法需 \(63\) 次,而資訊理論下界僅為 \(\lceil \log_2 1000 \rceil = \mathbf{10}\) 次!


3. 自適應群測試 vs. 非自適應群測試兩大範式

3.1 自適應群測試:黃氏廣義二分搜尋與「12枚假幣問題」

在自適應群測試(Adaptive Group Testing)中,每一次檢測都可以根據前一次檢測的結果動態調整檢體池:

  • 當 \(d = 1\) 時,經典的二分搜尋(Binary Splitting)每次將候選集對半切分,每次檢測陽性與陰性機率均為 \(1/2\)(滿載 \(1\) 位元資訊),僅需 \(\lceil \log_2 N \rceil\) 次(\(1,000\) 人僅需 \(10\) 次)即可鎖定陽性者。
  • 當 \(d > 1\) 時,黃光明(Frank K. Hwang, 1972)的廣義二分搜尋演算法(Generalized Binary Splitting)每次從剩餘 \(n\) 個檢體中切出大小為 \(2^\alpha \approx n/d\) 的子池進行測試(使得該池呈陰性的機率接近 \(1/2\))。若呈陰性則一次排除 \(2^\alpha\) 人;若呈陽性則在該子池內進行 \(\alpha\) 次二分搜尋找出 \(1\) 名陽性者。總檢測次數達到 \(T = d \log_2(N/d) + O(d)\),完美逼近資訊理論下界!

這一「最大化單次測試資訊熵」的思想在1945年著名的「12枚假幣天平問題」中得到了最精彩的展現:12枚硬幣中有1枚假幣(不知偏重還是偏輕,共 \(12 \times 2 = 24\) 種可能狀態)。天平每次稱重具有左傾(\(-1\))、平衡(\(0\))、右傾(\(+1\))三種輸出(三元測試,每次最多提供 \(\log_2 3 \approx 1.585\) 位元資訊),因此 \(3\) 次稱重最多可區分 \(3^3 = 27 \ge 24\) 種狀態。若第一次在左右盤各放6枚,天平必然傾斜(不可能平衡),三元測試退化為二元測試(剩12種狀態 \(> 3^2 = 9\)),導致無解;唯有第一次在左盤放4枚、右盤放4枚、盤外留4枚,將24種狀態均勻分割為 \(8 : 8 : 8\) 三支,並在第二次稱重時將「疑似偏重」與「疑似偏輕」的硬幣在左右盤之間交叉輪換,才能在3次內100%鎖定假幣及其輕重!

自適應方法的致命工程瓶頸:在 RT-PCR 核酸檢測或基因定序中,每一輪 PCR 擴增需要 \(2 \sim 3\) 小時。若對 \(1,000\) 個檢體執行 \(10\) 輪自適應二分搜尋,必須串列等待 \(10 \times 3 = 30\) 小時,且反覆開蓋移液極易造成交叉污染。因此,實際高通量篩檢迫切需要將所有測試在同一輪(單階段)平行完成!


4. 非自適應組合群測試(NAGT)與析取矩陣(Disjunct Matrix)

4.1 布林測試矩陣 \(\mathbf{M}\) 與邏輯或(OR)疊加模型

1964年,考茨與辛格爾頓(Kautz & Singleton)創立了非自適應群測試(NAGT)與疊加碼(Superimposed Codes)的代數理論。我們將 \(T\) 次平行混檢與 \(N\) 個檢體的關係表示為一個 \(T \times N\) 的二元測試矩陣 \(\mathbf{M} \in \{0, 1\}^{T \times N}\),其中 \(M_{i, j} = 1\) 表示檢體 \(j\) 被加入第 \(i\) 個混合池。

設未知的個體狀態向量為 \(\mathbf{x} \in \{0, 1\}^N\)(陽性集合 \(S = \{j \mid x_j = 1\}, |S| \le d\)),則觀測到的 \(T\) 維檢測結果向量 \(\mathbf{y} \in \{0, 1\}^T\) 是矩陣 \(\mathbf{M}\) 中對應於陽性集合 \(S\) 的各行向量(column vectors)的按位元布林邏輯或(Boolean OR)疊加:

\[\mathbf{y} = \mathbf{M} \odot \mathbf{x} = \bigvee_{j \in S} \mathbf{M}_{*, j} \quad \left(y_i = \bigvee_{j=1}^N (M_{i, j} \land x_j)\right)\]

4.2 \(d\)-可分矩陣 vs. \(d\)-析取矩陣(\(d\)-Disjunct Matrix)與 COMP 解碼

  • \(d\)-可分矩陣(\(d\)-Separable Matrix):任意兩個不同的大小不超過 \(d\) 的行子集 \(S_1 \neq S_2\) 的邏輯或疊加結果均不相同。雖然資訊理論上可唯一還原 \(S\),但解碼需要遍歷 \(\binom{N}{d}\) 種組合,計算複雜度高達 \(O(N^d)\)。
  • \(d\)-析取矩陣(\(d\)-Disjunct Matrix):任意一個行 \(j_0 \notin S\) 的非零位置集合(支撐集 \(\text{supp}(\mathbf{M}_{*, j_0})\)),絕不完全包含於任意其他 \(d\) 個行的支撐集之聯集: \(\text{supp}(\mathbf{M}_{*, j_0}) \not\subseteq \bigcup_{j \in S} \text{supp}(\mathbf{M}_{*, j}) \qquad (\forall |S| \le d, \; \forall j_0 \notin S)\) 這意味著:對於每一個陰性個體 \(j_0 \notin S\),必定至少存在一個「見證測試列 \(i^*\)」,使得 \(j_0\) 參與了測試 \(i^*\)(\(M_{i^*, j_0} = 1\)),而所有 \(d\) 名陽性個體均未參與測試 \(i^*\)(從而測試 \(i^*\) 的結果必為陰性 \(y_{i^*} = 0\))!
  flowchart TD
    subgraph DisjunctTW["d-析取矩陣(d-Disjunct Matrix)的幾何保證"]
        ColS["d 個陽性行的布林或疊加向量<br/>y = ⋁_{j ∈ S} M_{*, j}"]
        ColJ["任意陰性檢體 j0 ∉ S 的行向量<br/>M_{*, j0}"]
        Witness["必然存在見證測試列 i*:<br/>M_{i*, j0} = 1 且 y_{i*} = 0(該池檢測呈陰性!)"]
        ColS --> Witness
        ColJ --> Witness
        Witness --> Result["陰性個體 j0 絕不會被陽性行掩蓋:<br/>線性時間 COMP 解碼實現零偽陽性與零偽陰性!"]
    end

憑藉 \(d\)-析取性質,我們可以使用極簡的 COMP(組合正交匹配追蹤)演算法在 \(O(TN)\) 線性時間內完成解碼:凡是參與過任何一次陰性測試(\(y_i = 0\))的檢體全部排除為陰性,剩餘未被排除的檢體即100%為全部真陽性個體! 組合學定理(D’yachkov-Rykov / Ruszinkó / Füredi)證明了零誤差 \(d\)-析取矩陣的列數下界為 \(T = \Omega\left(\frac{d^2}{\log d} \log N\right)\),而機率構造與顯式構造均可達到 \(T = O(d^2 \log N)\)。

4.3 二維網格混檢的「幽靈陽性」與有限體里德-所羅門多項式設計

在實驗室中,若將 \(N = 100\) 個檢體排成 \(10 \times 10\) 網格,按 \(10\) 橫列與 \(10\) 直行分別混合得到 \(T = 20\) 個測試池:當只有 \(d = 1\) 名陽性(如座標 \((3, 7)\))時,第3列與第7行呈陽性,交點唯一確定陽性者(\(1\)-析取矩陣)。但若有 \(d = 2\) 名陽性位於 \((2, 4)\) 和 \((6, 9)\),則橫列 \(R_2, R_6\) 與直行 \(C_4, C_9\) 均呈陽性,除了真陽性外,對角交點 \((2, 9)\) 和 \((6, 4)\) 也會出現「橫列與直行皆為陽性」的假象(幽靈陽性 / 影子陽性)!

為了徹底消除幽靈陽性,Kautz 與 Singleton 提出了有限體 \(\mathbb{F}_q\) 上的里德-所羅門(Reed-Solomon)多項式混檢設計:將每個檢體 \(j\) 映射為有限體 \(\mathbb{F}_q\) 上次數不超過 \(k-1\) 的多項式 \(P_j(x) \in \mathbb{F}_q[x]\)(共可容納 \(N = q^k\) 個檢體),並在 \(w\) 個不同方向(求值點 \(x_1, \dots, x_w \in \mathbb{F}_q\))上按照 \(y = P_j(x_m) \pmod q\) 進行分組混檢。因為兩個不同 \((k-1)\) 次多項式至多在 \(k-1\) 個點相交,只要選取方向數滿足 \(w \ge d(k-1) + 1\)(例如 \(q=11, k=2\) 時僅取橫列、直行、斜對角線 \(w=3\) 個方向共 \(T = 33\) 個測試池),就能在單輪測試中無歧義地分離任意 \(d=2\) 名陽性者!


5. 雜訊群測試、壓縮感知與現代工程應用

維度 / 特徵自適應群測試(Hwang 二分搜尋)非自適應群測試(NAGT / \(d\)-析取矩陣)壓縮感知(Compressed Sensing)
代數運算空間布林邏輯樹 \((\{0, 1\}, \lor, \land)\)布林半環矩陣乘法 \(\mathbf{y} = \mathbf{M} \odot \mathbf{x}\)實數體線性投影 \(\mathbf{y} = \mathbf{\Phi}\mathbf{x} + \mathbf{e} \in \mathbb{R}^T\)
矩陣幾何條件動態平衡二分(每步資訊熵 \(\approx 1\) bit)\(d\)-析取性(\(d\)-Disjunctness)有限等距性質(RIP) / 低互相關
最少測試次數 \(T\)\(d \log_2(N/d) + O(d)\)(達到香農下界)\(O(d^2 \log N)\)(零誤差)/ \(O(d \log N)\)(高機率)\(O(d \log(N/d))\)
核心解碼演算法序貫二分搜尋樹COMP / DD / SCOMP / 置信傳播(BP)OMP / 基追蹤(\(\ell_1\) 最小化 LASSO)
  1. 稀釋效應與抗噪群測試(Noisy Group Testing):針對混合過多檢體導致病毒濃度稀釋(PCR 的 \(\text{Ct}\) 值上升 \(\log_2 k\))及偽陰性/偽陽性雜訊,透過構造具有 \(2e+1\) 個見證列的容錯析取矩陣並結合 NCOMP 演算法、置信傳播(Belief Propagation)或線性規劃解碼(LP Decoding),可自動糾正多達 \(e\) 次檢測錯誤。
  2. 與壓縮感知(Compressed Sensing)的對偶性:坎德斯(Candès)、陶哲軒(Tao)與多諾霍(Donoho)建立的壓縮感知理論,本質上是將群測試從布林邏輯或(OR)推廣到了實數體上的稀疏線性測量 \(\mathbf{y} = \mathbf{\Phi}\mathbf{x}\)。當利用 PCR 螢光定量 \(\text{Ct}\) 值進行定量群測試(Quantitative Group Testing)時,測試次數可突破 \(d^2 \log N\) 瓶頸,進一步壓縮至 \(O(d \log(N/d))\)。
  3. 多址通道碰撞消解與 COVID-19 P-BEST 篩檢:從無線通訊中的樹形碰撞分解協定(Capetanakis, 1979)、高速路由器識別巨量流量的 Count-Min Sketch,到 2020 年以色列團隊發表於 Science Advances 的 P-BEST 新冠核酸混檢方案(利用 \(48 \times 384\) 的 Kautz-Singleton 矩陣,僅用 \(48\) 個測試池在單輪 PCR 中同時篩檢 \(384\) 人,通量提升 \(8\) 倍),群測試與組合搜尋的數學智慧正在現代資訊與生命科學中持續閃耀。
comments powered by Disqus