Transcript

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

Larger (but still tiny) examples

Efficient Computation

How can we make this computation fast?

Caching Previously Seen Graphs

• Caching previously seen graphs:

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

Experimental Data (V=16, random)

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

Experimental Results

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?

Minsdeg

Vorder

Minsdeg

Vorder