In applied mathematics, the Johnson bound (named after Selmer Martin Johnson) is a limit on the size of error-correcting codes, as used in coding theory for data transmission or communications.
Let
C
be a q-ary code of length
n
, i.e. a subset of
F
q
n
. Let
d
be the minimum distance of
C
, i.e.
d
=
min
x
,
y
∈
C
,
x
≠
y
d
(
x
,
y
)
,
where
d
(
x
,
y
)
is the Hamming distance between
x
and
y
.
Let
C
q
(
n
,
d
)
be the set of all q-ary codes with length
n
and minimum distance
d
and let
C
q
(
n
,
d
,
w
)
denote the set of codes in
C
q
(
n
,
d
)
such that every element has exactly
w
nonzero entries.
Denote by
|
C
|
the number of elements in
C
. Then, we define
A
q
(
n
,
d
)
to be the largest size of a code with length
n
and minimum distance
d
:
A
q
(
n
,
d
)
=
max
C
∈
C
q
(
n
,
d
)
|
C
|
.
Similarly, we define
A
q
(
n
,
d
,
w
)
to be the largest size of a code in
C
q
(
n
,
d
,
w
)
:
A
q
(
n
,
d
,
w
)
=
max
C
∈
C
q
(
n
,
d
,
w
)
|
C
|
.
Theorem 1 (Johnson bound for
A
q
(
n
,
d
)
):
If
d
=
2
t
+
1
,
A
q
(
n
,
d
)
≤
q
n
∑
i
=
0
t
(
n
i
)
(
q
−
1
)
i
+
(
n
t
+
1
)
(
q
−
1
)
t
+
1
−
(
d
t
)
A
q
(
n
,
d
,
d
)
A
q
(
n
,
d
,
t
+
1
)
.
If
d
=
2
t
,
A
q
(
n
,
d
)
≤
q
n
∑
i
=
0
t
(
n
i
)
(
q
−
1
)
i
+
(
n
t
+
1
)
(
q
−
1
)
t
+
1
A
q
(
n
,
d
,
t
+
1
)
.
Theorem 2 (Johnson bound for
A
q
(
n
,
d
,
w
)
):
(i) If
d
>
2
w
,
A
q
(
n
,
d
,
w
)
=
1.
(ii) If
d
≤
2
w
, then define the variable
e
as follows. If
d
is even, then define
e
through the relation
d
=
2
e
; if
d
is odd, define
e
through the relation
d
=
2
e
−
1
. Let
q
∗
=
q
−
1
. Then,
A
q
(
n
,
d
,
w
)
≤
⌊
n
q
∗
w
⌊
(
n
−
1
)
q
∗
w
−
1
⌊
⋯
⌊
(
n
−
w
+
e
)
q
∗
e
⌋
⋯
⌋
⌋
⌋
where
⌊
⌋
is the floor function.
Remark: Plugging the bound of Theorem 2 into the bound of Theorem 1 produces a numerical upper bound on
A
q
(
n
,
d
)
.