220 likes | 507 Views
Gary’s Work on Graph Isomorphism. 1. 1. 4. 8. 6. 5. 2. 5. 2. 7. 8. 3. 7. 4. 3. 6. 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
E N D
Gary’s Work on Graph Isomorphism 1 1 4 8 6 5 2 5 2 7 8 3 7 4 3 6
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.
2 1 3 5 4 Graph eigenvalues and eigenvectors 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0
2 1 0 -1 -1 1 1 0 -1 -1 1 1 3 5 4 Graph eigenvalues and eigenvectors 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 -1 -2 = -1 1 node = sum of nbrs -2(-1)=(1+1)
2 1 0 -1 -1 1 1 0 -1 -1 1 1 3 5 4 Graph eigenvalues and eigenvectors 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 -1 -2 = -1 1 node = sum of nbrs Are up to n eigenvalues, invariant under relabeling of vertices
-1 -1 1 0 1 -1 -1 1 0 1 Graph eigenvalues and eigenvectors 0 4 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 -1 -2 = 5 1 2 3 -1 1 node = sum of nbrs Are up to n eigenvalues, invariant under relabeling of vertices eigenvalues different -> graphs different
-1 -1 1 0 1 -1 -1 1 0 1 Graph eigenvalues and eigenvectors 0 4 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 -1 -2 = 5 1 2 3 -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.
Embedding of graph using two eigvecs v3(i) v2(i)
If use v2(i), v3(i) as label of vertex i determined up to flips in sign of eigvecs
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: l1 = -2.0000 l2 = -1.1701 l3 = 0.0000 l4 = 0.6889 l5 = 2.4812 .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 label of node 2 -.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:
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 Distinguish verts when labels allow. Make signs cannonical when possible. Can only map to each other -.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:
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 Distinguish verts when labels allow. Make signs canonical when possible. Can only map to each other Fix signs so that labels are same -.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:
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 Distinguish verts when labels allow. Make signs canonical when possible. Can only map to each other Fix signs so that labels are same -.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:
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 -1 v3 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.