Computing Tutte Polynomials David J. Pearce Victoria University of Wellington Gary Haggard Bucknell, USA Gordon Royle University of Western Australia
Jan 03, 2016
Computing Tutte Polynomials
David J. PearceVictoria University of Wellington
Gary HaggardBucknell, USA
Gordon RoyleUniversity of Western Australia
Tutte Polynomial – what is it?
• It’s a 2-variable polynomial on graphs:
– T(x,y) = y + y2 + x + 2xy + 2x2 + x^3
• What can we do with it?– T(1,1) gives the number of spanning trees– T(2,2) gives 2|e|
– T(1-x,0) gives the Chromatic polynomial P(x)– T(0,1-x) gives the Flow polynomial F(x)
– T(…,…) gives … who knows?
Great, but why do we care?
• Many applications of Tutte polynomial– Physics (q-state Potts model), Biology and
probably lots more …
• Knots– Tangled cords which can’t be unravelled
– Problem: how do we know when two knots are same?
-- N.R. Cozzarelli and A. Stasiak
Computing Tutte Polynomials
• Delete/Contract Operations:
• Tutte Definition:
T(G) = 1, if G = T(G) = xT(G-e), if e is a bridgeT(G) = yT(G-e), if e is a loopT(G) = T(G-e) + T(G/e), otherwise
G = G–e = G/e =
An Example 1. T(G) = 1, if G = 2. T(G) = xT(G-e), if e is a
bridge3. T(G) = yT(G-e), if e is a loop4. T(G) = T(G-e) + T(G/e),
otherwise
An Example 1. T(G) = 1, if G = 2. T(G) = xT(G-e), if e is a
bridge3. T(G) = yT(G-e), if e is a loop4. T(G) = T(G-e) + T(G/e),
otherwise
x
2
An Example 1. T(G) = 1, if G = 2. T(G) = xT(G-e), if e is a
bridge3. T(G) = yT(G-e), if e is a loop4. T(G) = T(G-e) + T(G/e),
otherwise
x
x
2
4
An Example 1. T(G) = 1, if G = 2. T(G) = xT(G-e), if e is a
bridge3. T(G) = yT(G-e), if e is a loop4. T(G) = T(G-e) + T(G/e),
otherwise
x
x
x
x
2
24
4
An Example 1. T(G) = 1, if G = 2. T(G) = xT(G-e), if e is a
bridge3. T(G) = yT(G-e), if e is a loop4. T(G) = T(G-e) + T(G/e),
otherwise
x
x
x
x
x x y x2
2
2
22 3
4
4
Caching via Graph Isomorphism
• Are these two the same graph?
• Graph Isomorphism– Best known algorithm takes exponential
time– Nauty – implementation by Brendon McKay– What is complexity of graph isomorphism ?
3 4
5
21 4
51
32
Edge-Selection Heuristics
• Vertex Order (VORDER)– A fixed order of vertices is used– Edges from 1st node first, then 2nd, then 3rd, etc
• Minimise Single Degree (MINSDEG)– Edge selected whose end-point has smallest degree
• Minimise Degree (MINDEG)– Edge selection whose degree sum is smallest of any
• Maximise Single Degree (MAXSDEG)• Maximse Degree (MAXDEG)
12
34
5
Edge-Selection Heuristics
• Vertex Order (VORDER)– A fixed order of vertices is used– Edges from 1st node first, then 2nd, then 3rd, etc
• Minimise Single Degree (MINSDEG)– Edge selected whose end-point has smallest degree
• Minimise Degree (MINDEG)– Edge selection whose degree sum is smallest of any
• Maximise Single Degree (MAXSDEG)• Maximse Degree (MAXDEG)
12
34
5
Edge-Selection Heuristics
• Vertex Order (VORDER)– A fixed order of vertices is used– Edges from 1st node first, then 2nd, then 3rd, etc
• Minimise Single Degree (MINSDEG)– Edge selected whose end-point has smallest degree
• Minimise Degree (MINDEG)– Edge selection whose degree sum is smallest of any
• Maximise Single Degree (MAXSDEG)• Maximse Degree (MAXDEG)
12
34
5
Random Graph (12 vertices, 20 edges)
VOrder (272 Graphs, 72/170 hits)
Minsdeg (188 graphs, 47/91 hits)
Random Graph (9 vertices, 16 edges)
VOrder (138 Graphs, 24/86 hits)
Minsdeg (150 graphs, 14/50 hits)
Future Work
• Decremental Graph Algorithms:– Decremental Graph Isomorphism ?– Decremental Biconnected Components
• Edge Selection Heuristics:– Can we understand why Vorder and Minsdeg do
well?– Can we find better heuristics?
• Edge Addition/Contract:– Can we implement this for Tutte?– Can we move towards other graph classes --- e.g.
chordal graphs?
Edge Contract/Addition
• Contract/Addition– T(G) = T(G/e) + T(G-e) T(G-e) = T(G) – T(G/e) T(G) = T(G+e) – T(G/e)
• Idea:– For dense graphs move towards complete graph– For sparse graphs, move towards empty graph (as
before)
• Problem– Computing Tutte polynomial for complete multi-graph
is difficult ?
• BUT, for chromatic polynomial computation we have not multigraphs …
Future Work
• Decremental Graph Algorithms:– Decremental Graph Isomorphism ?– Decremental Biconnected Components
• Edge Selection Heuristics:– Can we understand why Vorder and Minsdeg do
well?– Can we find better heuristics?
• Edge Addition/Contract:– Can we implement this for Tutte?– Can we move towards other graph classes --- e.g.
chordal graphs?