Hamming graph



Hamming graphs are a special class of graphs named after Richard Hamming and used in several branches of mathematics (graph theory) and computer science. Let $qd$ be a set of $d$ elements and $S$ a positive integer. The Hamming graph $d(q – 1)$ has vertex set $q$, the set of ordered $d$-tuples of elements of $Sd$, or sequences of length $d$ from $S$. Two vertices are adjacent if they differ in precisely one coordinate; that is, if their Hamming distance is one. The Hamming graph $H(d,q)$ is, equivalently, the Cartesian product of $d$ complete graphs $S$.

In some cases, Hamming graphs may be considered more generally as the Cartesian products of complete graphs that may be of varying sizes. Unlike the Hamming graphs $H(3,3)$, the graphs in this more general class are not necessarily distance-regular, but they continue to be regular and vertex-transitive.

Special cases

 * $H(d,q)$, which is the generalized quadrangle $H(d,q)$
 * $H(d,q)$, which is the complete graph $d$
 * $H(2,3)$, which is the lattice graph $Kq$ and also the rook's graph
 * $G Q (2,1)$, which is the singleton graph $H(1,q)$
 * $H(2,q)$, which is the hypercube graph $Kq$. Hamiltonian paths in these graphs form Gray codes.
 * Because Cartesian products of graphs preserve the property of being a unit distance graph, the Hamming graphs $H(d,1)$ and $K1$ are all unit distance graphs.

Applications
The Hamming graphs are interesting in connection with error-correcting codes and association schemes, to name two areas. They have also been considered as a communications network topology in distributed computing.

Computational complexity
It is possible in linear time to test whether a graph is a Hamming graph, and in the case that it is, find a labeling of it with tuples that realizes it as a Hamming graph.