14 KiB
| title | chunk | source | category | tags | date_saved | instance |
|---|---|---|---|---|---|---|
| Group testing | 7/10 | https://en.wikipedia.org/wiki/Group_testing | reference | science, encyclopedia | 2026-05-05T09:50:23.496143+00:00 | kb-cron |
=== Sequential COMP (SCOMP) === SCOMP (Sequential COMP) is an algorithm that makes use of the fact that DD makes no mistakes until the last step, where it is assumed that the remaining items are non-defective. Let the set of declared defectives be
K
{\displaystyle K}
. A positive test is called explained by
K
{\displaystyle K}
if it contains at least one item in
K
{\displaystyle K}
. The key observation with SCOMP is that the set of defectives found by DD may not explain every positive test, and that every unexplained test must contain a hidden defective. The algorithm proceeds as follows.
Carry out steps 1 and 2 of the DD algorithm to obtain
K
{\displaystyle K}
, an initial estimate for the set of defectives. If
K
{\displaystyle K}
explains every positive test, terminate the algorithm:
K
{\displaystyle K}
is the final estimate for the set of defectives. If there are any unexplained tests, find the "possible defective" that appears in the largest number of unexplained tests, and declare it to be defective (that is, add it to the set
K
{\displaystyle K}
). Go to step 2. In simulations, SCOMP has been shown to perform close to optimally.
=== Polynomial Pools (PP) === Polynomial Pools (PP) is a deterministic algorithm that is guaranteed to exactly identify up to
d
{\displaystyle d}
positives. The algorithm is for the construction of the pooling matrix
M
{\displaystyle M}
, which can be straightforwardly used to decode the observations in
y
{\displaystyle y}
. Similar to COMP, a sample is decoded according to the relation:
x
i
=
1
if
M
(
:
,
i
)
.
∗
y
=
M
(
:
,
i
)
{\displaystyle x_{i}=1~~{\text{ if }}~~M(:,i)~.*~y=M(:,i)}
, where
.
∗
{\displaystyle .*}
represents element wise multiplication and
M
(
:
,
i
)
{\displaystyle M(:,i)}
is the
i
{\displaystyle i}
th column of
M
{\displaystyle M}
. Since the decoding step is not difficult, PP is specialized for generating
M
{\displaystyle M}
.
==== Forming groups ====
A group/pool
ℓ
{\displaystyle \ell }
is generated using a polynomial relation that specifies the indices of the samples contained in each pool. A set of input parameters determines the algorithm. For a prime number
p
>
1
{\displaystyle p>1}
and an integer
n
≥
1
{\displaystyle n\geq 1}
any prime power is defined by
q
=
p
n
{\displaystyle q=p^{n}}
. For a dimension parameter
c
≥
2
{\displaystyle c\geq 2}
the total number of samples is
n
=
q
c
{\displaystyle n=q^{c}}
and the number of samples per pool is
q
c
−
1
{\displaystyle q^{c-1}}
. Further, the Finite field of order
q
{\displaystyle q}
is denoted by
F
q
{\displaystyle \mathbb {F} _{q}}
(i.e., the integers
{
0
,
1
,
2
,
…
,
q
−
1
}
{\displaystyle \{0,1,2,\ldots ,q-1\}}
defined by special arithmetic operations that ensure that addition and multiplication in
F
q
{\displaystyle \mathbb {F} _{q}}
remains in
F
q
{\displaystyle \mathbb {F} _{q}}
). The method arranges each sample in a grid and represents it by coordinates
x
=
(
u
,
v
)
{\displaystyle x=(u,v)}
. The coordinates are computed according to a polynomial relation using the integers
1
≤
l
≤
c
−
1
{\displaystyle 1\leq l\leq c-1}
,
0
≤
u
i
l
≤
q
−
1
{\displaystyle 0\leq u_{i_{l}}\leq q-1}
v
=
a
c
−
1
u
i
c
−
1
+
⋯
+
a
u
i
1
+
b
,
a
,
b
,
u
i
l
∈
F
q
.
{\displaystyle v~=~a^{c-1}~u_{i_{c-1}}+\cdots +a~u_{i_{1}}+b,\quad a,b,u_{i_{l}}\in \mathbb {F} _{q}.}
The combination of looping through the
u
i
l
{\displaystyle u_{i_{l}}}
values is represented by a set with
q
c
−
1
{\displaystyle q^{c-1}}
elements of a sequence of
d
−
1
{\displaystyle d-1}
integers, i.e.,
u
i
1
×
⋯
×
u
i
c
−
1
=
{
(
i
1
,
…
,
i
c
−
1
)
}
{\displaystyle u_{i_{1}}\times \cdots \times u_{i_{c-1}}=\{(i_{1},\ldots ,i_{c-1})\}}
, where
0
≤
i
l
≤
q
−
1
{\displaystyle 0\leq i_{l}\leq q-1}
. Without loss of generality, the combination is such that
i
d
−
1
{\displaystyle i_{d-1}}
cycles every
q
{\displaystyle q}
times,
i
d
−
2
{\displaystyle i_{d-2}}
cycles every
q
2
{\displaystyle q^{2}}
times until
i
1
{\displaystyle i_{1}}
cycles only once. Formulas that compute the sample indices, and thus the corresponding pools, for fixed
a
{\displaystyle a}
and
b
{\displaystyle b}
, are given by
u
i
=
∑
l
=
1
c
−
1
q
d
−
1
−
l
i
l
v
u
i
=
∑
l
=
1
c
−
1
a
l
i
l
+
b
(
computed in
F
q
)
x
q
u
i
+
v
u
i
=
(
u
i
,
v
u
i
)
{\displaystyle {\begin{aligned}u_{i}&=\sum _{l=1}^{c-1}~q^{d-1-l}~i_{l}\\v_{u_{i}}&=\sum _{l=1}^{c-1}~a^{l}~i_{l}+b\quad ({\text{computed in }}\mathbb {F} _{q})\\x_{qu_{i}+v_{u_{i}}}&=(u_{i},v_{u_{i}})\end{aligned}}}
The computations in
F
q
{\displaystyle \mathbb {F} _{q}}
can be implemented with publicly available software libraries for finite fields, when
q
{\displaystyle q}
is a prime power. When
q
{\displaystyle q}
is a prime number then the computations in
F
q
{\displaystyle \mathbb {F} _{q}}
simplify to modulus arithmetics, i.e.,
v
u
i
=
(
∑
l
=
1
c
−
1
a
l
i
l
+
b
)
mod
q
{\displaystyle v_{u_{i}}=(\sum _{l=1}^{c-1}a^{l}i_{l}+b)~{\text{mod}}~q}
. An example of how to generate one pool
ℓ
{\displaystyle \ell }
when
a
=
1
,
b
=
0
,
c
=
2
{\displaystyle a=1,b=0,c=2}
is displayed in the table below, while the corresponding selection of samples is shown in the figure above.