UA MATH ECE636 信息论10 Group Testing简介
UA MATH ECE636 信息論10 Group Testing簡(jiǎn)介
- Group Testing
- AGT
- Dworfman算法
- Binary Search
- Generalized Binary Search
- Lower Bound
Group testing在工程、醫(yī)學(xué)、統(tǒng)計(jì)等領(lǐng)域都有廣泛的應(yīng)用。一個(gè)group testing的比較直觀的例子:假設(shè)有NNN個(gè)串聯(lián)的燈泡,其中有ddd個(gè)燒掉了,所以整串燈泡都不亮了。現(xiàn)在想把這ddd個(gè)燈泡檢測(cè)出來(lái),如果每個(gè)燈泡都檢查的話就需要檢測(cè)NNN個(gè),而group testing想要回答的問(wèn)題是最少需要檢測(cè)幾個(gè)燈泡才能把這ddd個(gè)燒掉的檢測(cè)出來(lái)?
Group Testing
假設(shè)X1,?,XNX_1,\cdots,X_NX1?,?,XN?是一組隨機(jī)樣本,X1,?,XN~iidBer(p),p<<1X_1,\cdots,X_N \sim_{iid} Ber(p),p<<1X1?,?,XN?~iid?Ber(p),p<<1。記
d=∑i=1NXid = \sum_{i=1}^N X_id=i=1∑N?Xi?
ddd表示所有取值為1的樣本數(shù)(假設(shè)ddd已知),記TTT表示需要做的檢測(cè)的數(shù)量。對(duì)應(yīng)上面的例子,這NNN個(gè)樣本就是NNN個(gè)串聯(lián)的燈泡,ddd就是燒掉的燈泡的數(shù)量,一次檢測(cè)可以就是用電壓表測(cè)一下每個(gè)燈泡兩端的電壓,TTT就是需要檢測(cè)的燈泡的數(shù)量,顯然T≤NT \le NT≤N。考慮到p<<1p << 1p<<1,也就是燒掉的燈泡數(shù)量很少,我們比較容易想到的是pooling的思想,也就是檢測(cè)多個(gè)燈泡兩端的電壓,如果是220V就說(shuō)明其中有燒掉的,如果明顯小于220V說(shuō)明沒(méi)問(wèn)題。
用pooling的思想做Group testing的方法分為兩大類,adaptive group testing和non-adaptive group testing。Adaptive group testing(AGT)的做法是序貫地對(duì)樣本的子集做檢測(cè)。。因?yàn)锳GT的序貫性,它的速度是比較慢的,所以樣本數(shù)目比較大的時(shí)候一般不用這個(gè)。Non-adaptive group testing(NAGT)的做法是并行地對(duì)樣本的子集做檢測(cè),所以速度較快,大樣本時(shí)一般用這種操作。但相比AGT,NAGT需要的檢測(cè)的數(shù)量更多。
AGT
Dworfman算法
這個(gè)算法是1943年就提出來(lái)了的,比較古老的一種算法。它的思想是把NNN個(gè)樣本分成Nd\sqrt{Nd}Nd?組,每一組有N/d\sqrt{N/d}N/d?個(gè)樣本,對(duì)每一組做一次檢測(cè),一共需要做Nd\sqrt{Nd}Nd?次檢測(cè)。假設(shè)檢測(cè)到kkk組取值為1的樣本,則1≤k≤d1 \le k \le d1≤k≤d,接下來(lái)對(duì)這kkk組中的每一個(gè)樣本做檢測(cè),找出所有取值為1的樣本,一共需要做kN/dk\sqrt{N/d}kN/d?次檢測(cè)。從而這個(gè)算法需要做的檢測(cè)次數(shù)為
T=Nd+kNdT = \sqrt{Nd} + k\sqrt{\frac{N}ozvdkddzhkzd}T=Nd?+kdN??
顯然
Nd+Nd≤T≤2Nd\sqrt{Nd} + \sqrt{\frac{N}ozvdkddzhkzd} \le T \le 2\sqrt{Nd}Nd?+dN??≤T≤2Nd?
Binary Search
如果d=1d=1d=1:首先對(duì)NNN個(gè)樣本做檢測(cè),如果結(jié)果是0,說(shuō)明d=0d=0d=0,如果結(jié)果是1,將樣本均分為兩個(gè)group,每個(gè)group有N/2N/2N/2個(gè)元素,然后對(duì)每個(gè)group做檢測(cè),如果結(jié)果是0,說(shuō)明這個(gè)group沒(méi)有取值為1的樣本,如果結(jié)果是0,再將樣本均分為兩個(gè)group。。。重復(fù)這個(gè)操作,最終找到取值為1的那個(gè)樣本。根據(jù)這個(gè)算法,我們需要
2T=N?T=ceil(log?2N)2^T = N \Rightarrow T = ceil(\log_2 N)2T=N?T=ceil(log2?N)
其中ceil()ceil()ceil()表示不超過(guò)括號(hào)內(nèi)的數(shù)的最小整數(shù)。因此Binary滿足
T=ceil(log?2N)T = ceil(\log_2 N)T=ceil(log2?N)
如果d>1d>1d>1:檢測(cè)到第一個(gè)取值為1的樣本,將它移走,對(duì)剩下的N?1N-1N?1個(gè)樣本做Binary Search,重復(fù)這個(gè)過(guò)程,直到找到ddd個(gè)取值為1的樣本。因此
T=ceil(log?2N)+?ceil(log?2N?d)≤d×ceil(log?2N)=O(dlog?2N)T = ceil(\log_2 N) + \cdots ceil(\log_2 N-d) \le d\times ceil(\log_2 N) = O(d \log_2 N)T=ceil(log2?N)+?ceil(log2?N?d)≤d×ceil(log2?N)=O(dlog2?N)
因?yàn)?span id="ozvdkddzhkzd" class="katex--inline">d<<Nd << Nd<<N,所以通常Binary Search需要的檢測(cè)數(shù)目比Dworfman算法更少。
Generalized Binary Search
將NNN個(gè)樣本分為ddd個(gè)group,則每個(gè)group中有N/dN/dN/d個(gè)樣本,在每個(gè)group中做binary search,假設(shè)第jjj個(gè)group中有kjk_jkj?個(gè)樣本取值為1,則
T=k1log?2Nd+?+kdlog?2Nd=dlog?2NdT = k_1 \log_2 \frac{N}ozvdkddzhkzd + \cdots + k_d \log_2 \frac{N}ozvdkddzhkzd = d \log_2 \frac{N}ozvdkddzhkzdT=k1?log2?dN?+?+kd?log2?dN?=dlog2?dN?
顯然這個(gè)比Binary Search更優(yōu)秀。
Lower Bound
下面的定理給出了GT最優(yōu)的可能性,由此可以看出generalized binary search是AGT中一種最優(yōu)的算法。
定理
T≥dlog?2NdT \ge d \log_2 \frac{N}ozvdkddzhkzdT≥dlog2?dN?
證明
我們嘗試用信息論的語(yǔ)言來(lái)描述這個(gè)問(wèn)題。假設(shè)我們用了TTT個(gè)檢測(cè),則每個(gè)檢測(cè)返回的結(jié)果是0或者1,相當(dāng)于就是收到了一個(gè)字長(zhǎng)為TTT的binary code,則這個(gè)binary code能表示的信息的總數(shù)為2T2^T2T。而ddd個(gè)取值為1的樣本在所有樣本中的分布情況可以理解為字長(zhǎng)為NNN的binary信號(hào)中有ddd個(gè)字是1,這種編碼方式可以表示CNdC_N^dCNd?種信號(hào)。為了保證binary code能夠表示所有的信號(hào):
2T≥CNd?T≥log?2CNd≥T≥log?2(N/d)d=dlog?2Nd2^T \ge C_N^d \Rightarrow T \ge \log_2 C_N^d \ge T \ge \log_2 (N/d)^d = d \log_2 \frac{N}ozvdkddzhkzd2T≥CNd??T≥log2?CNd?≥T≥log2?(N/d)d=dlog2?dN?
這里面用到了不等式
CNd=(N/d)dC_N^d = (N/d)^dCNd?=(N/d)d
它其實(shí)非常直觀
CNd=NdN?1d?1N?2d?2?N?(d?1)d?(d?1)C_N^d = \frac{N}ozvdkddzhkzd \frac{N-1}{d-1} \frac{N-2}{d-2} \cdots \frac{N-(d-1)}{d-(d-1)}CNd?=dN?d?1N?1?d?2N?2??d?(d?1)N?(d?1)?
根據(jù)小學(xué)數(shù)學(xué)分式的性質(zhì)
N?nd?n≥Nd,n<d\frac{N-n}{d-n} \ge \frac{N}ozvdkddzhkzd,n < dd?nN?n?≥dN?,n<d
用到的那個(gè)不等式成立。
總結(jié)
以上是生活随笔為你收集整理的UA MATH ECE636 信息论10 Group Testing简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UA MATH565C 随机微分方程V
- 下一篇: UA MATH ECE636 信息论10