Bootstrap

新冠检测的最优分组算法

为了应对疫情,全球各国都需要检测潜在感染者。由于检测试剂相对短缺,如何用尽量少的试剂进行检测就成为一个有意思的问题。这里假设采样量足够,且不考虑检测时间要求。

目前,很多国家采用的都是分组检测机制,即将待检测群体进行分组,同组内样本混合进行检测。如果某组结果为阳性,则对该组再进一步进行检测。

一个很自然的问题:该怎么分组才能节约试剂?

先来看两种极端的情况。

少量感染者

通常,群体内的感染者是少数。

假设群体一共 64 人,其中只有 1 个感染者,采用 2、4、8、64 等分法。

  • 2 分法,要测 6 轮,共 2*6=12 次;
  • 4 分法,要测 3 轮,共 4*3=12 次;
  • 8 分法,要测 2 轮,共 8*2=16 次;
  • 64 分法,要测 1 轮,共 64 次。

实际上,当人数很多时候,如 N 个人,采用 x 分法,其总测试次数大概为 y=x*log(x, N),容易知道该函数在 x=e 时取极小值。

此时应当取 e 附近的 x 值,例如 2 或 3,可以节约试剂。同时,人数 N 最好选为能整除 x 的值。

大量感染者

第二种场景,64 个人全部都是感染者,同样采用 2、4、8、64 等分法。

;