In graph theory, a graph product is a binary operation on graphs. Specifically, it is an operation that takes two graphs and and produces a graph with the following properties:
The graph products differ in what exactly this condition is. It is always about whether or not the vertices in are equal or connected by an edge.
The terminology and notation for specific graph products in the literature varies quite a lot; even if the following may be considered somewhat standard, readers are advised to check what definition a particular author uses for a graph product, especially in older texts.
Even for more standard definitions, it is not always consistent in the literature how to handle self-loops. The formulas below for the number of edges in a product also may fail when including self-loops. For example, the tensor product of a single vertex self-loop with itself is another single vertex self-loop with
E=1
E=2
EG x =2EGEH
The following table shows the most common graph products, with
\sim
\not\sim
\not\sim
\not\simeq
Name | Condition for (a1,a2)\sim(b1,b2) | Number of edges \begin{array}{cc}v1=\vertV(G1)\vert&v2=\vertV(G2)\vert\ e1=\vertE(G1)\vert&e2=\vertE(G2)\vert\end{array} | Example | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
with an~rel~bn abbreviated as reln | ||||||||||||||||
Cartesian product (box product) G1\squareG2 | a1=b1~\land~a2\simb2 \lor a1\simb1~\land~a2=b2 | =1~\sim2 \lor \sim1~=2 | v1~e2~+~e1~v2 | |||||||||||||
Tensor product (Kronecker product, categorical product) G1 x G2 | a1\simb1~\land~a2\simb2 | \sim1~\sim2 | 2~e1~e2 | |||||||||||||
Lexicographical product G1 ⋅ G2 G1[G2] | a1\simb1 \lor a1=b1~\land~a2\simb2 | \sim1 \lor =1~\sim2 | v1~e2~+~e1~
| |||||||||||||
Strong product (Normal product, AND product) G1\boxtimesG2 | a1=b1~\land~a2\simb2 \lor a1\simb1~\land~a2=b2 \lor a1\simb1~\land~a2\simb2 | =1~\sim2 \lor \sim1~=2 \lor \sim1~\sim2 | v1~e2~+~e1~v2~+~2~e1~e2 | |||||||||||||
Co-normal product (disjunctive product, OR product) G1*G2 | a1\simb1 \lor a2\simb2 | \sim1 \lor \sim2 |
~e2~+~e1~
~-~2~e1~e2 | |||||||||||||
Modular product | a1\simb1~\land~a2\simb2 \lor a1\not\simeqb1~\land~a2\not\simeqb2 | \sim1~\sim2 \lor \not\simeq1~\not\simeq2 | ||||||||||||||
Rooted product | see article | v1~e2~+~e1 | ||||||||||||||
Zig-zag product | see article | see article | see article | |||||||||||||
Replacement product | ||||||||||||||||
Homomorphic product[1] G1\ltimesG2 | a1=b1 \lor a1\simb1~\land~a2\not\simb2 | =1 \lor \sim1~\not\sim2 | v1v2(v2-1)/2+e1
-2e2) |
In general, a graph product is determined by any condition for
(a1,a2)\sim(b1,b2)
an=bn
an\simbn
Let
K2
K2\squareK2
K2 x K2
K2\boxtimesK2
K2\squareK2
K2\boxtimesK2
The
G1[G2]
G2
G1