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.