In graph theory, the zig-zag product of regular graphs
G,H
G\circH
G
H
H
G
Roughly speaking, the zig-zag product
G\circH
G
H
The zigzag product was introduced by . When the zig-zag product was first introduced, it was used for the explicit construction of constant degree expanders and extractors. Later on, the zig-zag product was used in computational complexity theory to prove that symmetric logspace and logspace are equal .
Let
G
D
[N]
RotG
H
d
[D]
RotH
G\circH
d2
[N] x [D]
RotG
RotG((v,a),(i,j))
(a',i')=RotH(a,i)
(w,b')=RotG(v,a')
(b,j')=RotH(b',j)
((w,b),(j',i'))
It is immediate from the definition of the zigzag product that it transforms a graph
G
d2
G
H
G
G
H
The expansion of a graph can be measured by its spectral gap, with an important property of the zigzag product the preservation of the spectral gap. That is, if
H
G
Formally: Define a
(N,D,λ)
D
N
λ
Let
G1
(N1,D1,λ1)
G2
(D1,D2,λ2)
G1\circG2
(N1 ⋅ D1
2 | |
,D | |
2 |
,f(λ1,λ2))
f(λ1,λ2)<λ1+λ2
2 | |
+λ | |
2 |
The zigzag product
G\circH
G
Formally speaking, given two graphs:
G
D
[N]
H
d
[D]
S\subseteq[N]
G
G|S\circH=G\circH|S x
G|S
G
S
S
G
S
In 2002 Omer Reingold, Salil Vadhan, and Avi Wigderson gave a simple, explicit combinatorial construction of constant-degree expander graphs. The construction is iterative, and needs as a basic building block a single, expander of constant size. In each iteration the zigzag product is used in order to generate another graph whose size is increased but its degree and expansion remains unchanged. This process continues, yielding arbitrarily large expanders.
From the properties of the zigzag product mentioned above, we see that the product of a large graph with a small graph, inherits a size similar to the large graph, and degree similar to the small graph, while preserving its expansion properties from both, thus enabling to increase the size of the expander without deleterious effects.
In 2005 Omer Reingold introduced an algorithm that solves the undirected st-connectivity problem, the problem of testing whether there is a path between two given vertices in an undirected graph, using only logarithmic space. The algorithm relies heavily on the zigzag product.
Roughly speaking, in order to solve the undirected s-t connectivity problem in logarithmic space, the input graph is transformed, using a combination of powering and the zigzag product, into a constant-degree regular graph with a logarithmic diameter. The power product increases the expansion (hence reduces the diameter) at the price of increasing the degree, and the zigzag product is used to reduce the degree while preserving the expansion.