Presentation is loading. Please wait.

Presentation is loading. Please wait.

Edge-Selection Heuristics for Computing Tutte Polynomials David J. Pearce Victoria University of Wellington Gary Haggard Bucknell, USA Gordon Royle University.

Similar presentations


Presentation on theme: "Edge-Selection Heuristics for Computing Tutte Polynomials David J. Pearce Victoria University of Wellington Gary Haggard Bucknell, USA Gordon Royle University."— Presentation transcript:

1 Edge-Selection Heuristics for Computing Tutte Polynomials David J. Pearce Victoria University of Wellington Gary Haggard Bucknell, USA Gordon Royle University of Western Australia

2 COMP205 Software Design and Engineering Tutte Polynomial – what is it? It’s a 2-variable polynomial on graphs: –T(x,y) = y + y 2 + x + 2xy + 2x 2 + 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?

3 COMP205 Software Design and Engineering 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

4 COMP205 Software Design and Engineering Computing 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 =G–e =G/e =

5 COMP205 Software Design and Engineering An Example 1. T(G) = 1, if G =  2. T(G) = xT(G-e), if e is a bridge 3. T(G) = yT(G-e), if e is a loop 4. T(G) = T(G-e) + T(G/e), otherwise

6 COMP205 Software Design and Engineering An Example 1. T(G) = 1, if G =  2. T(G) = xT(G-e), if e is a bridge 3. T(G) = yT(G-e), if e is a loop 4. T(G) = T(G-e) + T(G/e), otherwise x 2

7 COMP205 Software Design and Engineering An Example 1. T(G) = 1, if G =  2. T(G) = xT(G-e), if e is a bridge 3. T(G) = yT(G-e), if e is a loop 4. T(G) = T(G-e) + T(G/e), otherwise x x 2 4

8 COMP205 Software Design and Engineering An Example 1. T(G) = 1, if G =  2. T(G) = xT(G-e), if e is a bridge 3. T(G) = yT(G-e), if e is a loop 4. T(G) = T(G-e) + T(G/e), otherwise x x x x 2 2 4 4

9 COMP205 Software Design and Engineering An Example 1. T(G) = 1, if G =  2. T(G) = xT(G-e), if e is a bridge 3. T(G) = yT(G-e), if e is a loop 4. T(G) = T(G-e) + T(G/e), otherwise x x x x xxyx2x2 2 2 2 23 4 4

10 COMP205 Software Design and Engineering Larger (but still tiny) examples

11 COMP205 Software Design and Engineering Efficient Computation How can we make this computation fast?

12 COMP205 Software Design and Engineering Caching Previously Seen Graphs Caching previously seen graphs:

13 COMP205 Software Design and Engineering Biconnectivity Biconnected Components: –If G not biconnected –Then, there is a bridge –So, maintain biconnected components of G!! Triconnected Components –… BC 1 BC 2

14 COMP205 Software Design and Engineering Edge-Selection Heuristics Vertex Order (VORDER) –A fixed order of vertices is used –Edges from 1st node first, then 2 nd, then 3 rd, 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) 1 2 3 4 5

15 COMP205 Software Design and Engineering Edge-Selection Heuristics Vertex Order (VORDER) –A fixed order of vertices is used –Edges from 1st node first, then 2 nd, then 3 rd, 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) 1 2 3 4 5

16 COMP205 Software Design and Engineering Edge-Selection Heuristics Vertex Order (VORDER) –A fixed order of vertices is used –Edges from 1st node first, then 2 nd, then 3 rd, 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) 1 2 3 4 5

17 COMP205 Software Design and Engineering Experimental Results

18 COMP205 Software Design and Engineering Experimental Results

19 Random Graph (12 vertices, 20 edges) VOrder (272 Graphs, 72/170 hits) Minsdeg (188 graphs, 47/91 hits)

20 Random Graph (9 vertices, 16 edges) VOrder (138 Graphs, 24/86 hits) Minsdeg (150 graphs, 14/50 hits)

21 COMP205 Software Design and Engineering 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?

22 COMP205 Software Design and Engineering 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 …


Download ppt "Edge-Selection Heuristics for Computing Tutte Polynomials David J. Pearce Victoria University of Wellington Gary Haggard Bucknell, USA Gordon Royle University."

Similar presentations


Ads by Google