In
mathematics
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
and
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, in the field of
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and computer data storage, data sto ...
, the Hamming bound is a limit on the parameters of an arbitrary
block code
In coding theory, block codes are a large and important family of Channel coding, error-correcting codes that encode data in blocks.
There is a vast number of examples for block codes, many of which have a wide range of practical applications. Th ...
: it is also known as the sphere-packing bound or the volume bound from an interpretation in terms of
packing balls in the
Hamming metric
In information theory, the Hamming distance between two strings or vectors of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number of ''substitutions'' requi ...
into the
space
Space is a three-dimensional continuum containing positions and directions. In classical physics, physical space is often conceived in three linear dimensions. Modern physicists usually consider it, with time, to be part of a boundless ...
of all possible words. It gives an important limitation on the
efficiency
Efficiency is the often measurable ability to avoid making mistakes or wasting materials, energy, efforts, money, and time while performing a task. In a more general sense, it is the ability to do things well, successfully, and without waste.
...
with which any
error-correcting code
In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.
The centra ...
can utilize the space in which its
code words are embedded. A code that attains the Hamming bound is said to be a perfect code.
Background on error-correcting codes
An original message and an encoded version are both composed in an alphabet of ''q'' letters. Each
code word contains ''n'' letters. The original message (of length ''m'') is shorter than ''n'' letters. The message is converted into an ''n''-letter codeword by an encoding algorithm, transmitted over a noisy
channel, and finally decoded by the receiver. The decoding process interprets a garbled codeword, referred to as simply a ''word'', as the valid codeword "nearest" the ''n''-letter received string.
Mathematically, there are exactly ''q''
''m'' possible messages of length ''m'', and each message can be regarded as a
vector
Vector most often refers to:
* Euclidean vector, a quantity with a magnitude and a direction
* Disease vector, an agent that carries and transmits an infectious pathogen into another living organism
Vector may also refer to:
Mathematics a ...
of length ''m''. The encoding scheme converts an ''m''-dimensional vector into an ''n''-dimensional vector. Exactly ''q''
''m'' valid codewords are possible, but any one of ''q''
''n'' words can be received because the noisy channel might distort one or more of the ''n'' letters when a codeword is transmitted.
Statement of the bound
Preliminary definitions
An alphabet set
is a set of symbols with
elements. The set of strings of length
on the alphabet set
are denoted
. (There are
distinct strings in this set of strings.) A
-ary block code of length
is a subset of the strings of
, where the alphabet set
is any alphabet set having
elements. (The choice of alphabet set
makes no difference to the result, provided the alphabet is of size
.)
Defining the bound
Let
denote the maximum possible size of a
-ary block code
of length
and minimum
Hamming distance
In information theory, the Hamming distance between two String (computer science), strings or vectors of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number ...
between elements of the block code (necessarily positive for
).
Then, the Hamming bound is:
:
where
:
Proof
It follows from the definition of
that if at most
:
errors are made during transmission of a
codeword then
minimum distance decoding will decode it correctly (i.e., it decodes the received word as the codeword that was sent). Thus the code is said to be capable of correcting
errors.
For each codeword
, consider a
ball
A ball is a round object (usually spherical, but sometimes ovoid) with several uses. It is used in ball games, where the play of the game follows the state of the ball as it is hit, kicked or thrown by players. Balls can also be used for s ...
of fixed radius
around
. Every pair of these balls (
Hamming ball
In combinatorics, a Hamming ball is a metric ball for Hamming distance.
The Hamming ball of radius r centered at a String (computer science), string x over some Alphabet (formal languages), alphabet (often the alphabet ) is the set of all strin ...
s) are non-intersecting by the
-error-correcting property. Let
be the number of words in each ball (in other words, the volume of the ball). A word that is in such a ball can deviate in at most
components from those of the ball's
centre
Center or centre may refer to:
Mathematics
*Center (geometry), the middle of an object
* Center (algebra), used in various contexts
** Center (group theory)
** Center (ring theory)
* Graph center, the set of all vertices of minimum eccentricity ...
, which is a codeword. The number of such words is then obtained by
choosing up to
of the
components of a codeword to deviate to one of
possible other values (recall, the code is
-ary: it takes values in
). Thus,
:
is the (maximum) total number of codewords in
, and so, by the definition of
, the greatest number of balls with no two balls having a word in common. Taking the
union of the words in these balls centered at codewords, results in a set of words, each counted precisely once, that is a subset of
(where
words) and so:
:
Whence:
:
Covering radius and packing radius
:
For an
code ''C'' (a subset of
), the ''covering radius'' of ''C'' is the smallest value of ''r'' such that every element of
is contained in at least one ball of radius ''r'' centered at each codeword of ''C''. The ''packing radius'' of ''C'' is the largest value of ''s'' such that the set of balls of radius ''s'' centered at each codeword of ''C'' are mutually
disjoint.
From the proof of the Hamming bound, it can be seen that for
, we have:
:: ''s'' ≤ ''t'' and ''t'' ≤ ''r''.
Therefore, ''s'' ≤ ''r'' and if equality holds then ''s'' = ''r'' = ''t''. The case of equality means that the Hamming bound is attained.
Perfect codes
Codes that attain the Hamming bound are called perfect codes. Examples include codes that have only one codeword, and codes that are the whole of
. Another example is given by the ''repeat codes'', where each symbol of the message is repeated an odd fixed number of times to obtain a codeword where ''q'' = 2. All of these examples are often called the ''trivial'' perfect codes.
In 1973, Tietäväinen proved that any non-trivial perfect code over a prime-power alphabet has the parameters of a
Hamming code
In computer science and telecommunications, Hamming codes are a family of linear error-correcting codes. Hamming codes can detect one-bit and two-bit errors, or correct one-bit errors without detection of uncorrected errors. By contrast, the ...
or a
Golay code.
A perfect code may be interpreted as one in which the balls of Hamming radius ''t'' centered on codewords exactly fill out the space (''t'' is the covering radius = packing radius). A quasi-perfect code is one in which the balls of Hamming radius ''t'' centered on codewords are disjoint and the balls of radius ''t''+1 cover the space, possibly with some overlaps. Another way to say this is that a code is ''quasi-perfect'' if its covering radius is one greater than its packing radius.
See also
*
Gilbert-Varshamov bound
*
Griesmer bound
*
Johnson bound
*
Plotkin bound
*
Rate-distortion theory
*
Singleton bound
In coding theory, the Singleton bound, named after the American mathematician Richard Collom Singleton (1928–2007), is a relatively crude upper bound on the size of an arbitrary block code C with block length n, size M and minimum distance d. It ...
Notes
References
*
*
*
*
*
*
*
*
{{Packing problem
Coding theory