Title: EdgeSelection Heuristics for Computing Tutte Polynomials
1Edge-Selection Heuristics for Computing Tutte
Polynomials
- David J. Pearce
- Victoria University of Wellington
- Gary Haggard
- Bucknell, USA
- Gordon Royle
- University of Western Australia
2Tutte Polynomial what is it?
- Its a 2-variable polynomial on graphs
- T(x,y) y y2 x 2xy 2x2 x3
- What can we do with it?
- T(1,1) gives the number of spanning trees
- T(2,2) gives 2e
- T(1-x,0) gives the Chromatic polynomial P(x)
- T(0,1-x) gives the Flow polynomial F(x)
- T(,) gives who knows?
3Great, but why do we care?
- Many applications of Tutte polynomial
- Physics (q-state Potts model), Biology and
probably lots more - Knots
- Tangled cords which cant be unravelled
- Problem how do we know when two knots are same?
4Computing Tutte Polynomials
- Delete/Contract Operations
- Tutte Definition
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
G
Ge
G/e
5An Example
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
6An Example
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
x
7An Example
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
x
x
8An Example
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
x
x
x
x
9An Example
- T(G) 1, if G ?
- T(G) xT(G-e), if e is a bridge
- T(G) yT(G-e), if e is a loop
- T(G) T(G-e) T(G/e), otherwise
x
x
x
x
x
x
y
x2
10Larger (but still tiny) examples
11Efficient Computation
- How can we make this computation fast?
12Caching Previously Seen Graphs
- Caching previously seen graphs
13Biconnectivity
- Biconnected Components
- If G not biconnected
- Then, there is a bridge
- So, maintain biconnected components of G!!
- Triconnected Components
BC2
BC1
14Edge-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)
15Edge-Selection Heuristics
1
2
- 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)
5
3
4
16Edge-Selection Heuristics
1
2
- 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)
5
3
4
17Experimental Results
18Experimental Results
19Random Graph (12 vertices, 20 edges)
Minsdeg (188 graphs, 47/91 hits)
VOrder (272 Graphs, 72/170 hits)
20Random Graph (9 vertices, 16 edges)
Minsdeg (150 graphs, 14/50 hits)
VOrder (138 Graphs, 24/86 hits)
21Future 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?
22Edge Contract/Addition
- Contract/Addition
- T(G) T(G/e) T(G-e)
- ? T(G-e) T(G) T(G/e)
- ? T(G) T(Ge) 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