# Tutte polynomial

The polynomial ${\displaystyle x^{4}+x^{3}+x^{2}y}$ is the Tutte polynomial of the bull graph. The red line shows the intersection with the plane ${\displaystyle y=0}$, equivalent to the chromatic polynomial.

The Tutte polynomial, also called the dichromate or the Tutte–Whitney polynomial, is a polynomial in two variables which plays an important role in graph theory. It is defined for every undirected graph and contains information about how the graph is connected. It is denoted by ${\displaystyle T_{G}}$.

The importance of this polynomial stems from the information it contains about G. Though originally studied in algebraic graph theory as a generalisation of counting problems related to graph coloring and nowhere-zero flow, it contains several famous other specialisations from other sciences such as the Jones polynomial from knot theory and the partition functions of the Potts model from statistical physics. It is also the source of several central computational problems in theoretical computer science.

The Tutte polynomial has several equivalent definitions. It is equivalent to Whitney’s rank polynomial, Tutte’s own dichromatic polynomial and Fortuin–Kasteleyn’s random cluster model under simple transformations. It is essentially a generating function for the number of edge sets of a given size and connected components, with immediate generalisations to matroids. It is also the most general graph invariant that can be defined by a deletion–contraction recurrence. Several textbooks about graph theory and matroid theory devote entire chapters to it.[1][2][3]

## Definitions

Definition. For an undirected graph ${\displaystyle G=(V,E)}$ one may define the Tutte polynomial as

${\displaystyle T_{G}(x,y)=\sum \nolimits _{A\subseteq E}(x-1)^{k(A)-k(E)}(y-1)^{k(A)+|A|-|V|},}$
where ${\displaystyle k(A)}$ denotes the number of connected components of the graph ${\displaystyle (V,A)}$. In this definition it is clear that ${\displaystyle T_{G}}$ is well-defined and a polynomial in x and y.

The same definition can be given using slightly different notation by letting ${\displaystyle r(A)=|V|-k(A)}$ denote the rank of the graph ${\displaystyle (V,A)}$. Then the Whitney rank generating function is defined as

${\displaystyle R_{G}(u,v)=\sum \nolimits _{A\subseteq E}u^{r(E)-r(A)}v^{|A|-r(A)}.}$

The two functions are equivalent under a simple change of variables:

${\displaystyle T_{G}(x,y)=R_{G}(x-1,y-1).}$

Tutte’s dichromatic polynomial ${\displaystyle Q_{G}}$ is the result of another simple transformation:

${\displaystyle T_{G}(x,y)=(x-1)^{-k(G)}Q_{G}(x-1,y-1).}$

Tutte’s original definition of ${\displaystyle T_{G}}$ is equivalent but less easily stated. For connected G we set

${\displaystyle T_{G}(x,y)=\sum \nolimits _{i,j}t_{ij}x^{i}y^{j},}$

where ${\displaystyle t_{ij}}$ denotes the number of spanning trees of “internal activity i and external activity j.”

A third definition uses a deletion–contraction recurrence. The edge contraction G/uv of graph G is the graph obtained by merging the vertices u and v and removing the edge uv. We write G − uv for the graph where the edge uv is merely removed. Then the Tutte polynomial is defined by the recurrence relation

${\displaystyle T_{G}=T_{G-e}+T_{G/e},}$

if e is neither a loop nor a bridge, with base case

${\displaystyle T_{G}(x,y)=x^{i}y^{j},}$

if G contains i bridges and j loops and no other edges. Especially, ${\displaystyle T_{G}=1}$ if G contains no edges.

The random cluster model from statistical mechanics due to Fortuin & Kasteleyn (1972) provides yet another equivalent definition.[4] The polynomial

${\displaystyle Z_{G}(q,w)=\sum \nolimits _{F\subseteq E}q^{k(F)}w^{|F|}}$

is equivalent to ${\displaystyle T_{G}}$ under the transformation[5]

${\displaystyle T_{G}(x,y)=(x-1)^{-k(E)}(y-1)^{-|V|}\cdot Z_{G}{\Big (}(x-1)(y-1),\;y-1{\Big )}.}$

### Properties

The Tutte polynomial factors into connected components: If G is the union of disjoint graphs H and ${\displaystyle H'}$ then

${\displaystyle T_{G}=T_{H}\cdot T_{H'}}$

If G is planar and ${\displaystyle G^{*}}$ denotes its dual graph then

${\displaystyle T_{G}(x,y)=T_{G^{*}}(y,x)}$

Especially, the chromatic polynomial of a planar graph is the flow polynomial of its dual.

### Examples

Isomorphic graphs have the same Tutte polynomial, but the converse is not true. For example, the Tutte polynomial of every tree on m edges is ${\displaystyle x^{m}}$.

Tutte polynomials are often given in tabular form by listing the coefficients ${\displaystyle t_{ij}}$ of ${\displaystyle x^{i}y^{j}}$ in row i and column j. For example, the Tutte polynomial of the Petersen graph,

{\displaystyle {\begin{aligned}36x&+120x^{2}+180x^{3}+170x^{4}+114x^{5}+56x^{6}+21x^{7}+6x^{8}+x^{9}\\&+36y+84y^{2}+75y^{3}+35y^{4}+9y^{5}+y^{6}\\&+168xy+240x^{2}y+170x^{3}y+70x^{4}y+12x^{5}y\\&+171xy^{2}+105x^{2}y^{2}+30x^{3}y^{2}\\&+65xy^{3}+15x^{2}y^{3}\\&+10xy^{4},\end{aligned}}}

is given by the following table.

 0 36 84 75 35 9 1 36 168 171 65 10 120 240 105 15 180 170 30 170 70 114 12 56 21 6 1

Other example, the Tutte polynomial of the octahedron graph is given by

{\displaystyle {\begin{aligned}&12\,{y}^{2}{x}^{2}+11\,x+11\,y+40\,{y}^{3}+32\,{y}^{2}+46\,yx+24\,x{y}^{3}+52\,x{y}^{2}\\&+25\,{x}^{2}+29\,{y}^{4}+15\,{y}^{5}+5\,{y}^{6}+6\,{y}^{4}x\\&+39\,y{x}^{2}+20\,{x}^{3}+{y}^{7}+8\,y{x}^{3}+7\,{x}^{4}+{x}^{5}\end{aligned}}}

## History

W. T. Tutte’s interest in the deletion–contraction formula started in his undergraduate days at Trinity College, Cambridge, originally motivated by perfect rectangles and spanning trees. He often applied the formula in his research and “wondered if there were other interesting functions of graphs, invariant under isomorphism, with similar recursion formulae.”[6] R. M. Foster had already observed that the chromatic polynomial is one such function, and Tutte began to discover more. His original terminology for graph invariants that satisfy the delection–contraction recursion was W-function, and V-function if multiplicative over components. Tutte writes, “Playing with my W-functions I obtained a two-variable polynomial from which either the chromatic polynomial or the ﬂow-polynomial could be obtained by setting one of the variables equal to zero, and adjusting signs.”[6] Tutte called this function the dichromate, as he saw it as a generalization of the chromatic polynomial to two variables, but it is usually referred to as the Tutte polynomial. In Tutte’s words, “This may be unfair to Hassler Whitney who knew and used analogous coefﬁcients without bothering to afﬁx them to two variables.” (There is “notable confusion”[7] about the terms dichromate and dichromatic polynomial, introduced by Tutte in different paper, and which differ only slightly.) The generalisation of the Tutte polynomial to matroids was first published by Crapo, though it appears already in Tutte’s thesis.[8]

Independently of the work in algebraic graph theory, Potts began studying the partition function of certain models in statistical mechanics in 1952. The work by Fortuin and Kasteleyn[9] on the random cluster model, a generalisation of the Potts model, provided a unifying expression that showed the relation to the Tutte polynomial.[10]

## Specialisations

At various points and lines of the ${\displaystyle (x,y)}$-plane, the Tutte polynomial evaluates to quantities that have been studied in their own right in diverse fields of mathematics and physics. Part of the appeal of the Tutte polynomial comes from the unifying framework it provides for analysing these quantities.

### Chromatic polynomial

Main article: Chromatic polynomial
The chromatic polynomial drawn in the Tutte plane

At ${\displaystyle y=0}$, the Tutte polynomial specialises to the chromatic polynomial,

${\displaystyle \chi _{G}(\lambda )=(-1)^{|V|-k(G)}\lambda ^{k(G)}T_{G}(1-\lambda ,0),}$

where ${\displaystyle k(G)}$ denotes the number of connected components of G.

For integer λ the value of chromatic polynomial ${\displaystyle \chi _{G}(\lambda )}$ equals the number of vertex colourings of G using a set of λ colours. It is clear that ${\displaystyle \chi _{G}(\lambda )}$ does not depend on the set of colours. What is less clear is that it is the evaluation at λ of a polynomial with integer coefficients. To see this, we observe:

1. If G has n vertices and no edges, then ${\displaystyle \chi _{G}(\lambda )=\lambda ^{n}}$.
2. If G contains a loop (a single edge connecting a vertex to itself), then ${\displaystyle \chi _{G}(\lambda )=0}$.
3. If e is an edge which is not a loop, then
${\displaystyle \chi _{G}(\lambda )=\chi _{G\setminus e}(\lambda )-\chi _{G/e}(\lambda ).}$

The three conditions above enable us to calculate ${\displaystyle \chi _{G}(\lambda )}$, by applying a sequence of edge deletions and contractions; but they give no guarantee that a different sequence of deletions and contractions will lead to the same value. The guarantee comes from the fact that ${\displaystyle \chi _{G}(\lambda )}$ counts something, independently of the recurrence. In particular,

${\displaystyle T_{G}(2,0)=(-1)^{|V|}\chi _{G}(-1)}$

gives the number of acyclic orientations.

### Jones polynomial

Main article: Jones polynomial
The Jones polynomial drawn in the Tutte plane

Along the hyperbola ${\displaystyle xy=1}$, the Tutte polynomial of a planar graph specialises to the Jones polynomial of an associated alternating knot.

### Individual points

#### (2,1)

${\displaystyle T_{G}(2,1)}$ counts the number of forests, i.e., the number of acyclic edge subsets.

#### (1,1)

${\displaystyle T_{G}(1,1)}$ counts the number of spanning forests (edge subsets without cycles and the same number of connected components as G). If the graph is connected, ${\displaystyle T_{G}(1,1)}$ counts the number of spanning trees.

#### (1,2)

${\displaystyle T_{G}(1,2)}$ counts the number of spanning subgraphs (edge subsets with the same number of connected components as G).

#### (2,0)

${\displaystyle T_{G}(2,0)}$ counts the number of acyclic orientations of G.[11]

#### (0,2)

${\displaystyle T_{G}(0,2)}$ counts the number of strongly connected orientations of G.[12]

#### (0,−2)

If G is a 4-regular graph, then

${\displaystyle (-1)^{|V|+k(G)}T_{G}(0,-2)}$

counts the number of Eulerian orientations of G. Here ${\displaystyle k(G)}$ is the number of connected components of G.[11]

#### (3,3)

If G is the m × n grid graph, then ${\displaystyle 2T_{G}(3,3)}$ counts the number of ways to tile a rectangle of width 4m and height 4n with T-tetrominoes.[13][14]

If G is a planar graph, then ${\displaystyle 2T_{G}(3,3)}$ equals the sum over weighted Eulerian orientations in a medial graph of G, where the weight of an orientation is 2 to the number of saddle vertices of the orientation (that is, the number of vertices with incident edges cyclicly ordered "in, out, in out").[15]

### Potts and Ising models

Main articles: Ising model and Potts model
The partition functions for the Ising model and the 3- and 4-state Potts models drawn in the Tutte plane.

Define the hyperbola in the xy−plane:

${\displaystyle H_{2}:\quad (x-1)(y-1)=2,}$

the Tutte polynomial specialises to the partition function, ${\displaystyle Z(\cdot ),}$ of the Ising model studied in statistical physics. Specifically, along the hyperbola ${\displaystyle H_{2}}$ the two are related by the equation:[16]

${\displaystyle Z(G)=2\left(e^{-\alpha }\right)^{|E|-r(E)}\left(4\sinh \alpha \right)^{r(E)}T_{G}\left(\coth \alpha ,e^{2\alpha }\right).}$

In particular,

${\displaystyle (\coth \alpha -1)\left(e^{2\alpha }-1\right)=2}$

for all complex α.

More generally, if for any positive integer q, we define the hyperbola:

${\displaystyle H_{q}:\quad (x-1)(y-1)=q,}$

then the Tutte polynomial specialises to the partition function of the q-state Potts model. Various physical quantities analysed in the framework of the Potts model translate to specific parts of the ${\displaystyle H_{q}}$.

Correspondences between the Potts model and the Tutte plane [17]
Potts model Tutte polynomial
Ferromagnetic Positive branch of ${\displaystyle H_{q}}$
Antiferromagnetic Negative branch of ${\displaystyle H_{q}}$ with ${\displaystyle y>0}$
High temperature Asymptote of ${\displaystyle H_{q}}$ to ${\displaystyle y=1}$
Low temperature ferromagnetic Positive branch of ${\displaystyle H_{q}}$ asymptotic to ${\displaystyle x=1}$
Zero temperature antiferromagnetic Graph q-colouring, i.e., ${\displaystyle x=1-q,y=0}$

### Flow polynomial

Main article: Nowhere-zero flow
The flow polynomial drawn in the Tutte plane

At ${\displaystyle x=0}$, the Tutte polynomial specialises to the flow polynomial studied in combinatorics. For a connected and undirected graph G and integer k, a nowhere-zero k-flow is an assignment of “flow” values ${\displaystyle 1,2,\dots ,k-1}$ to the edges of an arbitrary orientation of G such that the total flow entering and leaving each vertex is congruent modulo k. The flow polynomial ${\displaystyle C_{G}(k)}$ denotes the number of nowhere-zero k-flows. This value is intimately connected with the chromatic polynomial, in fact, if G is a planar graph, the chromatic polynomial of G is equivalent to the flow polynomial of its dual graph ${\displaystyle G^{*}}$ in the sense that

Theorem (Tutte).

${\displaystyle C_{G}(k)=k^{-1}\chi _{G^{*}}(k).}$

The connection to the Tutte polynomial is given by:

${\displaystyle C_{G}(k)=(-1)^{|E|+|V|+k(G)}T_{G}(0,1-k).}$

### Reliability polynomial

The reliability polynomial drawn in the Tutte plane

At ${\displaystyle x=1}$, the Tutte polynomial specialises to the all-terminal reliability polynomial studied in network theory. For a connected graph G remove every edge with probability p; this models a network subject to random edge failures. Then the reliability polynomial is a function ${\displaystyle R_{G}(p)}$, a polynomial in p, that gives the probability that every pair of vertices in G remains connected after the edges fail. The connection to the Tutte polynomial is given by

${\displaystyle R_{G}(p)=(1-p)^{|V|-k(G)}p^{|E|-|V|+k(G)}T_{G}\left(1,{\tfrac {1}{p}}\right).}$

### Dichromatic polynomial

Tutte also defined a closer 2-variable generalization of the chromatic polynomial, the dichromatic polynomial of a graph. This is

${\displaystyle Q_{G}(u,v)=\sum \nolimits _{A\subseteq E}u^{k(A)}v^{|A|-|V|+k(A)},}$

where ${\displaystyle k(A)}$ is the number of connected components of the spanning subgraph (V,A). This is related to the corank-nullity polynomial by

${\displaystyle Q_{G}(u,v)=u^{k(G)}\,R_{G}(u,v).}$

The dichromatic polynomial does not generalize to matroids because k(A) is not a matroid property: different graphs with the same matroid can have different numbers of connected components.

## Related polynomials

### Martin polynomial

Main article: Martin polynomial

The Martin polynomial ${\displaystyle m_{\vec {G}}(x)}$ of an oriented 4-regular graph ${\displaystyle {\vec {G}}}$ was defined by Pierre Martin in 1977.[18] He showed that if G is a plane graph and ${\displaystyle {\vec {G}}_{m}}$ is its directed medial graph, then

${\displaystyle T_{G}(x,x)=m_{{\vec {G}}_{m}}(x).}$

## Algorithms

### Deletion–contraction

The deletion–contraction algorithm applied to the diamond graph. Red edges are deleted in the left child and contracted in the right child. The resulting polynomial is the sum of the monomials at the leaves, ${\displaystyle x^{3}+2x^{2}+y^{2}+2xy+x+y}$. Based on Welsh & Merino (2000).

The deletion–contraction recurrence for the Tutte polynomial,

${\displaystyle T_{G}(x,y)=T_{G\setminus e}(x,y)+T_{G/e}(x,y),\qquad e{\text{ not a loop nor a bridge.}}}$

immediately yields a recursive algorithm for computing it: choose any such edge e and repeatedly apply the formula until all edges are either loops or bridges; the resulting base cases at the bottom of the evaluation are easy to compute.

Within a polynomial factor, the running time t of this algorithm can be expressed in terms of the number of vertices n and the number of edges m of the graph,

${\displaystyle t(n+m)=t(n+m-1)+t(n+m-2),}$

a recurrence relation that scales as the Fibonacci numbers with solution[19]

${\displaystyle t(n+m)=\left({\frac {1+{\sqrt {5}}}{2}}\right)^{n+m}=O\left(1.6180^{n+m}\right).}$

The analysis can be improved to within a polynomial factor of the number ${\displaystyle \tau (G)}$ of spanning trees of the input graph.[20] For sparse graphs with ${\displaystyle m=O(n)}$ this running time is ${\displaystyle O(\exp(n))}$. For regular graphs of degree k, the number of spanning trees can be bounded by

${\displaystyle \tau (G)=O\left(\nu _{k}^{n}n^{-1}\log n\right),}$

where

${\displaystyle \nu _{k}={\frac {(k-1)^{k-1}}{(k^{2}-2k)^{{\frac {k}{2}}-1}}}.}$

so the deletion–contraction algorithm runs within a polynomial factor of this bound. For example:[21]

${\displaystyle \nu _{5}\approx 4.4066.}$

In practice, graph isomorphism testing is used to avoid some recursive calls. This approach works well for graphs that are quite sparse and exhibit many symmetries; the performance of the algorithm depends on the heuristic used to pick the edge e.[22][23][24]

### Gaussian elimination

In some restricted instances, the Tutte polynomial can be computed in polynomial time, ultimately because Gaussian elimination efficiently computes the matrix operations determinant and Pfaffian. These algorithms are themselves important results from algebraic graph theory and statistical mechanics.

${\displaystyle T_{G}(1,1)}$ equals the number ${\displaystyle \tau (G)}$ of spanning trees of a connected graph. This is computable in polynomial time as the determinant of a maximal principal submatrix of the Laplacian matrix of G, an early result in algebraic graph theory known as Kirchhoff’s Matrix–Tree theorem. Likewise, the dimension of the bicycle space at ${\displaystyle T_{G}(-1,-1)}$ can be computed in polynomial time by Gaussian elimination.

For planar graphs, the partition function of the Ising model, i.e., the Tutte polynomial at the hyperbola ${\displaystyle H_{2}}$, can be expressed as a Pfaffian and computed efficiently via the FKT algorithm. This idea was developed by Fisher, Kasteleyn, and Temperley to compute the number of dimer covers of a planar lattice model.

### Markov chain Monte Carlo

Using a Markov chain Monte Carlo method, the Tutte polynomial can be arbitrarily well approximated along the positive branch of ${\displaystyle H_{2}}$, equivalently, the partition function of the ferromagnetic Ising model. This exploits the close connection between the Ising model and the problem of counting matchings in a graph. The idea behind this celebrated result of Jerrum and Sinclair[25] is to set up a Markov chain whose states are the matchings of the input graph. The transitions are defined by choosing edges at random and modifying the matching accordingly. The resulting Markov chain is rapidly mixing and leads to “sufficiently random” matchings, which can be used to recover the partition function using random sampling. The resulting algorithm is a fully polynomial-time randomized approximation scheme (fpras).

## Computational complexity

Several computational problems are associated with the Tutte polynomial. The most straightforward one is

Input
A graph G
Output
The coefficients of ${\displaystyle T_{G}}$

In particular, the output allows evaluating ${\displaystyle T_{G}(-2,0)}$ which is equivalent to counting the number of 3-colourings of G. This latter question is #P-complete, even when restricted to the family of planar graphs, so the problem of computing the coefficients of the Tutte polynomial for a given graph is #P-hard even for planar graphs.

Much more attention has been given to the family of problems called Tutte${\displaystyle (x,y)}$ defined for every complex pair ${\displaystyle (x,y)}$:

Input
A graph G
Output
The value of ${\displaystyle T_{G}(x,y)}$

The hardness of these problems varies with the coordinates ${\displaystyle (x,y)}$.

### Exact computation

The Tutte plane. Every point ${\displaystyle (x,y)}$ in the real plane corresponds to a computational problem ${\displaystyle T_{G}(x,y)}$. At any red point, the problem is polynomial-time computable; at any blue point, the problem is #P-hard in general, but polynomial-time computable for planar graphs; and at any point in the white regions, the problem is #P-hard even for bipartite planar graphs.

If both x and y are non-negative integers, the problem ${\displaystyle T_{G}(x,y)}$ belongs to #P. For general integer pairs, the Tutte polynomial contains negative terms, which places the problem in the complexity class GapP, the closure of #P under subtraction. To accommodate rational coordinates ${\displaystyle (x,y)}$, one can define a rational analogue of #P.[26]

The computational complexity of exactly computing ${\displaystyle T_{G}(x,y)}$ falls into one of two classes for any ${\displaystyle x,y\in \mathbb {C} }$. The problem is #P-hard unless ${\displaystyle (x,y)}$ lies on the hyperbola ${\displaystyle H_{1}}$ or is one of the points

${\displaystyle \left\{(1,1),(-1,-1),(0,-1),(-1,0),(i,-i),(-i,i),\left(j,j^{2}\right),\left(j^{2},j\right)\right\},\qquad j=e^{\frac {2\pi i}{3}}.}$

in which cases it is computable in polynomial time.[27] If the problem is restricted to the class of planar graphs, the points on the hyperbola ${\displaystyle H_{2}}$ become polynomial-time computable as well. All other points remain #P-hard, even for bipartite planar graphs.[28] In his paper on the dichotomy for planar graphs, Vertigan claims (in his conclusion) that the same result holds when further restricted to graphs with vertex degree at most three, save for the point ${\displaystyle T_{G}(0,-2)}$, which counts nowhere-zero Z3-flows and is computable in polynomial time.[29]

These results contain several notable special cases. For example, the problem of computing the partition function of the Ising model is #P-hard in general, even though celebrated algorithms of Onsager and Fisher solve it for planar lattices. Also, the Jones polynomial is #P-hard to compute. Finally, computing the number of four-colourings of a planar graph is #P-complete, even though the decision problem is trivial by the four colour theorem. In contrast, it is easy to see that counting the number of three-colourings for planar graphs is #P-complete because the decision problem is known to be NP-complete via a parsimonious reduction.

### Approximation

The question which points admit a good approximation algorithm has been very well studied. Apart from the points that can be computed exactly in polynomial time, the only approximation algorithm known for ${\displaystyle T_{G}(x,y)}$ is Jerrum and Sinclair’s FPRAS, which works for points on the “Ising” hyperbola ${\displaystyle H_{2}}$ for y > 0. If the input graphs are restricted to dense instances, with degree ${\displaystyle \Omega (n)}$, there is an FPRAS if x ≥ 1, y ≥ 1.[30]

Even though the situation is not as well understood as for exact computation, large areas of the plane are known to be hard to approximate.[26]

Bollobás–Riordan polynomial

## Notes

1. ^ Bollobás 1998, chapter 10.
2. ^ Biggs 1993, chapter 13.
3. ^ Godsil & Royle 2004, chap. 15.
4. ^
5. ^ Sokal 2005, eq. (2.26).
6. ^ a b
7. ^ Welsh.
8. ^
9. ^
10. ^
11. ^ a b
12. ^
13. ^
14. ^ See Korn & Pak 2003 for combinatorial interpretations of many other points.
15. ^
16. ^ Welsh 1993, p. 62.
17. ^
18. ^
19. ^ Wilf 1986, p. 46.
20. ^
21. ^ Chung & Yau 1999, following Björklund et al. 2008.
22. ^
23. ^
24. ^
25. ^
26. ^ a b
27. ^
28. ^
29. ^
30. ^ For the case x ≥ 1 and y = 1, see Annan 1994. For the case x ≥ 1 and y > 1, see Alon, Frieze & Welsh 1995.

## References

• Alon, N.; Frieze, A.; Welsh, D. J. A. (1995), "Polynomial time randomized approximation schemes for Tutte-Gröthendieck invariants: The dense case", Random Structures and Algorithms, 6 (4): 459–478, doi:10.1002/rsa.3240060409.
• Björklund, Andreas; Husfeldt, Thore; Kaski, Petteri; Koivisto, Mikko (2008), "Computing the Tutte polynomial in vertex-exponential time", Proc. of the 47th annual IEEE Symposium on Foundations of Computer Science (FOCS 2008), pp. 677–686, doi:10.1109/FOCS.2008.40, ISBN 978-0-7695-3436-7.
• Crapo, Henry H. (1969), "The Tutte polynomial", Aequationes Mathematicae, 3 (3): 211–229, doi:10.1007/bf01817442.