UA MATH ECE636 信息论10 Non-adaptive Group Testing
UA MATH ECE636 信息論10 Non-adaptive Group Testing
- d-disjunct
- Reed-Solomon Code方法
上一講主要介紹的是AGT,這一講介紹NAGT。比較有效的做NAGT的方法是用RS code。首先定義testing matrix M∈RT×NM \in \mathbb{R}^{T \times N}M∈RT×N,矩陣第iii行第jjj列為1表示對第jjj個樣本做第iii個檢測,因此第iii行表示對哪些樣本做了檢測iii,第jjj列表示樣本jjj接受了哪些檢測。假設(shè)yiy_iyi?表示第iii個檢測的所有檢測結(jié)果中是否有取值為1的,如果有則yi=1y_i=1yi?=1,否則yi=0y_i = 0yi?=0。
NAGT的目標是設(shè)計一個testing matrix最小化TTT,并保證根據(jù)yiy_iyi?的結(jié)果可以decode出NNN個樣本中的ddd個取值為一的樣本。用編碼的語言來描述就是輸入的信號用01編碼,信號長NNN,有ddd個字是1,經(jīng)過信道編碼傳輸后收到的碼是長度為TTT的01序列{y1,?,yT}\{y_1,\cdots,y_T\}{y1?,?,yT?},目標是最小化TTT,并能造一個解碼算法能從{y1,?,yT}\{y_1,\cdots,y_T\}{y1?,?,yT?}中把信號還原出來。
d-disjunct
關(guān)于MMM有一個比較重要的定理:
定理 如果MMM有d-disjunct property,則存在一個解碼算法能從{y1,?,yT}\{y_1,\cdots,y_T\}{y1?,?,yT?}中把信號還原出來。
d-disjunct ?ci\forall c_i?ci?表示第iii個列向量,以及任意ddd個不同的列向量cj1,?,cjdc_{j_1},\cdots,c_{j_d}cj1??,?,cjd??,存在一個行向量rkr_krk?,這個行向量與cic_ici?相交的元素為Mki=1M_{ki} = 1Mki?=1,與其他ddd個列向量相交的元素為Mkj1=?=Mkjd=0M_{kj_1}=\cdots=M_{kj_d} = 0Mkj1??=?=Mkjd??=0。
這個定理證明只需要構(gòu)造一個算法即可。對于yi=1y_i=1yi?=1,如果行向量rir_iri?中只有一個1,那么就這這個1對應(yīng)的樣本取值為1,如果rir_iri?有多個1,那么這一列就不看了,因為提供的信息太多了。對于yi=0y_i =0yi?=0,行向量rir_iri?中所有1對應(yīng)的樣本都是取值為000的樣本。對于yi,i=1,?,Ty_i,i=1,\cdots,Tyi?,i=1,?,T,判斷完了之后答案就出來了。
所以真正的問題是怎么才能構(gòu)造一個d-disjunct matrix作為MMM?
Reed-Solomon Code方法
考慮GF(q)GF(q)GF(q)上的RS-code (q,k,q?k+1)(q,k,q-k+1)(q,k,q?k+1),這個code可以產(chǎn)生qkq^kqk種codeword,每一種長度為qqq。我們可以用RS code構(gòu)造一個q2×qkq^2 \times q^kq2×qk的矩陣,使得
N=qk,T=q2N = q^k,T = q^2N=qk,T=q2
我們可以證明
T=O(d2(log?N/log?d)2)T = O(d^2 (\log N/\log d)^2)T=O(d2(logN/logd)2)
也就是說NAGT的方法相比AGT的方法來說復(fù)雜度要高一點(除非d<<Nd<<Nd<<N),就是需要的檢測的數(shù)量還是更多一點的,但之前也說過NAGT的好處是可以并行,有更高的計算速度,所以NAGT和AGT就是在檢測量和檢測速度之間做tradeoff。
注意到qkq^kqk就是codeword的總數(shù),所以每個列向量先填入一個RS code的codeword。這樣的話矩陣還只有qqq行,再加上我們希望矩陣是01矩陣,所以用uniquely decodable的(字長為qqq的)01編碼來替換RS code的{0,1,?,q?1}\{0,1,\cdots,q-1\}{0,1,?,q?1}即可,比如000就可以用100?0100\cdots 0100?0,1可以用010?0010\cdots 0010?0。
定理 按上述方法構(gòu)造的MMM是d-disjunct的,
d=[q?1k?1]d = [\frac{q-1}{k-1}]d=[k?1q?1?]
證明
因為MMM是按RS code來構(gòu)造的,所以cic_ici?與cj1,?,cjdc_{j_1},\cdots,c_{j_d}cj1??,?,cjd??中的每一個最少有q?k+1q-k+1q?k+1個元素不同,最多有k?1k-1k?1個元素相同。要使d-disjunct成立,則
q>d(k?1)q > d(k-1)q>d(k?1)
即考慮最壞的情況,假設(shè)cic_ici?與cj1,?,cjdc_{j_1},\cdots,c_{j_d}cj1??,?,cjd??中的每一個相同的元素都位于不同的行,我們需要至少能找出一個cic_ici?中的元素使得同一行中對應(yīng)的cj1,?,cjdc_{j_1},\cdots,c_{j_d}cj1??,?,cjd??中的元素都不相同。因為qqq是整數(shù),所以上式又等價于
q?1≥d(k?1)q-1 \ge d(k-1)q?1≥d(k?1)
從而
d≤[(q?1)/(k?1)]d \le [(q-1)/(k-1)]d≤[(q?1)/(k?1)]
給定條件我們希望ddd越大(越大說明設(shè)計的檢測方法檢測能力越強)。
現(xiàn)在再考慮
T=q2,N=qkT = q^2, N = q^kT=q2,N=qk
后一個方程說明了選擇kkk的方式為
k=[log?N/log?q]k = [\log N/\log q]k=[logN/logq]
根據(jù)這個不等式以及d≤[(q?1)/(k?1)]d \le [(q-1)/(k-1)]d≤[(q?1)/(k?1)],我們發(fā)現(xiàn)可以取
q=d[log?N/log?d]q = d [\log N/\log d]q=d[logN/logd]
帶入到第一個方程中
T=O(d2(log?N/log?d)2)T = O(d^2 (\log N/\log d)^2)T=O(d2(logN/logd)2)
這種方法在ddd非常小、NNN非常大的時候尤其適用。
總結(jié)
以上是生活随笔為你收集整理的UA MATH ECE636 信息论10 Non-adaptive Group Testing的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH ECE636 信息论10
- 下一篇: UA MATH566 统计理论10 Bo