A snake graph is a plane graph formed from a sequence of square tiles by making each tile after the first share exactly one full edge with
its predecessor and no edge with any other earlier tile. A snake graph with tiles is bipartite,
has
vertices and
edges, and always has a perfect
matching.
Despite the similar name, a snake graph is distinct from a triangular snake graph. The latter is formed from a chain of triangles rather than square
tiles. In particular,
contains triangles and is nonbipartite for
, whereas every snake graph is bipartite.
Snake graphs encode cluster variables in cluster algebras from triangulated surfaces. The Laurent polynomial for a cluster variable is a weighted sum of monomials over perfect matchings of the associated snake graph. For variables associated with plain arcs, De Loera Chávez (2026) expressed this sum as a determinant of a weighted biadjacency matrix. This matrix has rows and columns indexed by the two vertex classes of the bipartite graph, with entries given by the corresponding edge weights.