21
Gary’s Work on Graph Isomorphism 2 4 1 3 5 7 6 6 8 4 1 8 5 2 7 3

Gary’s Work on Graph Isomorphism 2 4 1 3 5 7 6 6 8 4 1 8 5 2 73

  • View
    231

  • Download
    0

Embed Size (px)

Citation preview

Gary’s Work on Graph Isomorphism

2

4

1

3

5

7

6

6

8

4

1

8

52

73

Gary’s Papers on Graph Isomorphism

On the n log n isomorphism technique: a preliminary report. ACM STOC, 1978.

Isomorphism testing for graphs of bounded genus. ACM STOC, 1980

Isomorphism of graphs which are pairwise k-separable. Information & Control, 1983.   Isomorphism of k-contractible graphs: a generalization of bounded valence and bounded genus. Information & Control, 1983.

Gary’s Papers on Graph Isomorphism

Graph eigenvalues and eigenvectors

1

4

3

2

5

0 1 1 0 11 0 1 0 01 1 0 1 00 0 1 0 11 0 0 1 0

Graph eigenvalues and eigenvectors

1

4

3

2

5

0 1 1 0 11 0 1 0 01 1 0 1 00 0 1 0 11 0 0 1 0

1 0 -1 -1 1

1 0 -1 -1 1

-2 =

0

-1

1 -1

1

node = sum of nbrs-2(-1)=(1+1)

Graph eigenvalues and eigenvectors

1

4

3

2

5

0 1 1 0 11 0 1 0 01 1 0 1 00 0 1 0 11 0 0 1 0

1 0 -1 -1 1

1 0 -1 -1 1

-2 =

0

-1

1 -1

1

Are up to n eigenvalues, invariant under relabeling of vertices

node = sum of nbrs

Graph eigenvalues and eigenvectors

5

3

1

4

2

0 0 1 1 10 0 1 0 11 1 0 0 01 0 0 0 11 1 0 1 0

-1 -1 1 0 1

-1 -1 1 0 1

-2 =

0

-1

1 -1

1

Are up to n eigenvalues, invariant under relabeling of vertices

node = sum of nbrs

eigenvalues different -> graphs different

Graph eigenvalues and eigenvectors

5

3

1

4

2

0 0 1 1 10 0 1 0 11 1 0 0 01 0 0 0 11 1 0 1 0

-1 -1 1 0 1

-1 -1 1 0 1

-2 =

0

-1

1 -1

1

When are n eigenvalues, each has one-dimensional eigenspace:

(cv) = A(cv)

Can fix v to have norm 1, but cannot normalize sign

Testing isomorphism when G and H have same eigenvalues

Compute eigenvectors of G: v1, v2, …, vn

and eigenvectors of H: u1, u2, …, un

Goal: Label vertex i by v1(i), v2(i), …, vn(i)

But, eigenvectors only determined up to sign.

A Delaunayed Gary

0 50 100 150 200 250 300 350 400 450 500-700

-600

-500

-400

-300

-200

-100

0

Embedding of graph using two eigvecs

-0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04-0.03

-0.02

-0.01

0

0.01

0.02

0.03

v2(i)

v3(i)

If use v2(i), v3(i) as label of vertex i determined up to flips in sign of eigvecs

-0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04-0.03

-0.02

-0.01

0

0.01

0.02

0.03

-0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03-0.03

-0.02

-0.01

0

0.01

0.02

0.03

-0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03-0.03

-0.02

-0.01

0

0.01

0.02

0.03

-0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04-0.03

-0.02

-0.01

0

0.01

0.02

0.03

Testing isomorphism when G and H have same eigenvalues

Isomorphic iff are signs s.t. set of labels are same.

v1:v2:v3:v4:v5:

.50 0 -.50 .50 -.50-.43 .74 -.43 .12 .12 .50 0 -.50 -.50 .50 .18 .52 .18 -.58 -.58 .53 .43 .53 .36 .36

-.50 .50 .50 -.50 0-.12 -.12 .43 .43 -.74 .50 -.50 .50 -.50 0-.58 -.58 .18 .18 .52 .36 .36 .53 .53 .43

§ u1:§ u2:§ u3:§ u4:§ u5:

label of node 2

1 = -2.00002 = -1.17013 = 0.00004 = 0.68895 = 2.4812

Distinguish verts when labels allow.Make signs cannonical when possible.

v1:v2:v3:v4:v5:

.50 0 -.50 .50 -.50-.43 .74 -.43 .12 .12 .50 0 -.50 -.50 .50 .18 .52 .18 -.58 -.58 .53 .43 .53 .36 .36

-.50 .50 .50 -.50 0-.12 -.12 .43 .43 -.74 .50 -.50 .50 -.50 0-.58 -.58 .18 .18 .52 .36 .36 .53 .53 .43

§ u1:§ u2:§ u3:§ u4:§ u5:

Can only map to each other

Distinguish verts when labels allow.Make signs canonical when possible.

v1:v2:v3:v4:v5:

.50 0 -.50 .50 -.50-.43 .74 -.43 .12 .12 .50 0 -.50 -.50 .50 .18 .52 .18 -.58 -.58 .53 .43 .53 .36 .36

-.50 .50 .50 -.50 0-.12 -.12 .43 .43 -.74 .50 -.50 .50 -.50 0-.58 -.58 .18 .18 .52 .36 .36 .53 .53 .43

§ u1:§ u2:§ u3:§ u4:§ u5:

Can only map to each otherFix signs so that labels are same

Distinguish verts when labels allow.Make signs canonical when possible.

v1:v2:v3:v4:v5:

.50 0 -.50 .50 -.50-.43 .74 -.43 .12 .12 .50 0 -.50 -.50 .50 .18 .52 .18 -.58 -.58 .53 .43 .53 .36 .36

-.50 .50 .50 -.50 0 .12 .12 -.43 -.43 .74 .50 -.50 .50 -.50 0-.58 -.58 .18 .18 .52 .36 .36 .53 .53 .43

§ u1:§ u2:§ u3:§ u4:§ u5:

Can only map to each otherFix signs so that labels are same

More formally,

Partition vertices into classes, initially by |vk(i)| If some class has more positive than negative entries in a vk, make sign canonical. (2, -2, 1, 1, 1, -1, -1, -1)

Partition vertices into classes by vk(i), for vk with canonical signs.

More formally,

Partition vertices into classes, initially by |vk(i)| If some class has more positive than negative entries in a vk, make sign canonical. (2, -2, 1, 1, 1, -1, -1, -1)

Partition vertices into classes by vk(i), for vk with canonical signs.

Do same for all products vk1(i)*vk2

(i)*...*vkr(i)

For all products?

Either vk1(i)*vk2

(i)*...*vkr(i)

splits class:

v1: 1 1 1 1 -1 -1 -1 -1 v2: 1 1 -1 -1 -1 -1 1 1 v3: 1 -1 1 -1 1 1 -1 -1v3 v3: 1 -1 -1 1 -1 -1 -1 -1

or vkr = product of some of vk1

*vk2*...*vkr-1

on that class.

v1: 1 1 1 1 -1 -1 -1 -1 v2: 1 1 -1 -1 -1 -1 1 1 v4: 1 1 -1 -1 1 1 -1 -1

v4 = v1 v2

When finished

All classes have form

v1: 1 1 1 1 -1 -1 -1 -1 v2: 1 1 -1 -1 -1 -1 1 1 v4: 1 1 -1 -1 1 1 -1 -1

v4 = v1 v2

Can solve for all automorphisms of G, and all isomorphisms of G and H by linear eqns over GF(2)

What about high eigenvalue multiplicity?

Worst case: Strongly regular graphs Are two general families: Latin Square graphs and Steiner Triple Systems On the n log n isomorphism technique: a preliminary report. ACM STOC, 1978.