1 / 24

Graph Isomorphism

Graph Isomorphism. Network Algorithms 2005. Graph Isomorphism. Two graphs G=(V,E) and H=(W,F) are isomorphic if there is a bijective function f: V ® W such that for all v , w in V: { v,w } Î E Û {f( v ),f( w )} Î F . Variant for labeled graphs.

gualtier
Download Presentation

Graph Isomorphism

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graph Isomorphism Network Algorithms 2005 Netwerk Algorithms: Graph Isomorphism

  2. Graph Isomorphism • Two graphs G=(V,E) and H=(W,F) are isomorphic if there is a bijective function f: V ® W such that for all v, w in V: • {v,w} Î E Û {f(v),f(w)} Î F Netwerk Algorithms: Graph Isomorphism

  3. Variant for labeled graphs • Let G = (V,E), H=(W,F) be graphs with vertex labelings l: V ® L, l’® L. • G and H are isomorphic labeled graphs, if there is a bijective function f: V ® W such that • For all v, w in V: {v,w} Î E Û {f(v),f(w)} Î F • For all v in V: l(v) = l’(f(v)). • Application: organic chemistry: • determining if two molecules are identical. Netwerk Algorithms: Graph Isomorphism

  4. Complexity of graph isomorphism • Problem is in NP, but • No NP-completeness proof is known • No polynomial time algorithm is known If P ¹ NP ? NP-complete Graph isomorphism P NP Netwerk Algorithms: Graph Isomorphism

  5. Isomorphism-complete • Problems are isomorphism-complete, if they are `equally hard’ as graph isomorphism • Isomorphism of bipartite graphs • Isomorphism of labeled graphs • Automorphism of graphs • Given a graph G=(V,E), is there a bijective function f: V ® V, not the identity, with for all v, w in V: • {v,w} in E, if and only if {f(v),f(w)} in E. Netwerk Algorithms: Graph Isomorphism

  6. More isomorphism complete problems • Finding a graph isomorphism f • Isomorphism of semi-groups • Isomorphism of finite automata • Isomorphism of finite algebra’s • Isomorphism of • Connected graphs • Directed graphs • Regular graphs • Perfect graphs • Chordal graphs • Graphs that are isomorphic with their complement Netwerk Algorithms: Graph Isomorphism

  7. Special cases are easier • Polynomial time algorithms for • Graphs of bounded degree • Planar graphs • Trees • Expected polynomial time for random graphs This course Netwerk Algorithms: Graph Isomorphism

  8. Iterative vertex partition heuristicthe idea • Partition the vertices of G and H in classes • Each class for G has a corresponding class for H. • Property: vertices in class must be mapped to vertices in corresponding class • Refine classes as long as possible • When no refinement possible, check all possible ways that `remain’. Netwerk Algorithms: Graph Isomorphism

  9. Iterative vertex partition heuristic • If |V| ¹ |W|, or |E| ¹ |F|, output: no. Done. • Otherwise, we partition the vertices of G and H into classes, such that • Each class for G has a corresponding class for H • If f is an isomorphism from G to H, then f(v) belongs to the class, corresponding to the class of v. • First try: vertices belong to the same class, when they have the same degree. • If f is an isomorphism, then the degree of f(v) equals the degree of v for each vertex v. Netwerk Algorithms: Graph Isomorphism

  10. Scheme • Start with sequence SG = (A1) of subsets of G with A1=V, and sequence SH = (B1) of subsets of H with B1=W. • Repeat until … • Replace Aiin SG by Ai1,…,Air and replace Bi in SH by Bi1,…,Bir. • Ai1,…,Airis partition of Ai • Bi1,…,Biris partition of Bi • For each isormorphism f: v in Aij if and only if f(v) in Bij Netwerk Algorithms: Graph Isomorphism

  11. Possible refinement • Count for each vertex in Ai and Bi how many neighbors they have in Aj and Bj for some i, j. • Set Ais= {v in Ai | v has s neighbors in Aj}. • Set Bis= {v in Bi | v has s neighbors in Bj}. • Invariant: for all v in the ith set in SG, f(v) in the ith set in SH. • If some |Ai| ¹ |Bi|, then stop: no isomorphism. Netwerk Algorithms: Graph Isomorphism

  12. Other refinements • Partition upon other characteristics of vertices • Label • Number of vertices at distance d (in a set Ai). • … Netwerk Algorithms: Graph Isomorphism

  13. After refining • If each Ai contains one vertex: check the only possible isomorphism. • Otherwise, cleverly enumerate all functions that are still possible, and check these. • Works well in practice! Netwerk Algorithms: Graph Isomorphism

  14. Isomorphism on trees • Linear time algorithm to test if two (labeled) trees are isomorphic. • Algorithm to test if two rootedtrees are isomorphic. • Used as a subroutine for unrooted trees. Netwerk Algorithms: Graph Isomorphism

  15. Rooted tree isomorphism • For a vertex v in T, let T(v) be the subtree of T with v as root. • Level of vertex: distance to root. • If T1 and T2 have different number of levels: not isomorphic, and we stop. Otherwise, we continue: Netwerk Algorithms: Graph Isomorphism

  16. Structure of algorithm • Tree is processed level by level, from bottom to root • Processing a level: • A long labelLL(v) for each vertex is computed • This is transformed to a short label L(v) • Vertices in the same layer whose subtrees are isomorphic get the same labels: • If v and w on the same level, then • L(v)=L(w), if and only if T(v) and T(w) are isomorphic with an isomorphism that maps v to w. Netwerk Algorithms: Graph Isomorphism

  17. Labeling procedure • For each vertex, get the set of labels assigned to its children. • Sort these sets. • Bucketsort the pairs (v, L(w)) for T1, w child of v • Bucketsort the pairs (v, L(w)) for T2, w child of v • For each v, we now have a long label LL(v) which is the sorted set of labels of the children. • Use bucketsort to sort the vertices in T1 and T2 such that vertices with same long label are consecutive in ordering. Netwerk Algorithms: Graph Isomorphism

  18. On sorting w.r.t. the long lists (1) • Sort the nodes in the layer on the number of children they have. • Linear time. (Counting sort / Radix sort.) Netwerk Algorithms: Graph Isomorphism

  19. On sorting w.r.t. the long lists (2) • Let q be the maximum length of a long list • Repeat • Distribute among buckets the nodes with at least q children, with respect to the qth label in their long list • Nodes distributed in buckets in earlier round are taken here in the order as they appear in these buckets. • The sorted list of pairs (j,i) is used to skip empty buckets in this step. • q --; • Until q=0. Netwerk Algorithms: Graph Isomorphism

  20. After vertices are sorted with respect to long label • Give vertices with same long label same short label (start counting at 0), and repeat at next level. • If we see that the set of labels for a level of T1 is not equal to the set for the same level of T2, stop: not isomorphic. Netwerk Algorithms: Graph Isomorphism

  21. Time • One layer with n1 nodes with n2 nodes in next layer costs O(n1 + n2) time. • Total time: O(n). Netwerk Algorithms: Graph Isomorphism

  22. Unrooted trees • Center of a tree • A vertex v with the property that the maximum distance to any other vertex in T is as small as possible. • Each tree has a center of one or two vertices. • Finding the center: • Repeat until we have a vertex or a single edge: • Remove all leaves from T. • O(n) time: each vertex maintains current degree in variable. Variables are updated when vertices are removed, and vertices put in set of leaves when their degree becomes 1. Netwerk Algorithms: Graph Isomorphism

  23. Isomorphism of unrooted trees • Note: the center must be mapped to the center • If T1 and T2 both have a center of size 1: • Use those vertices as root. • If T1 and T2 both have a center of size 2: • Try the two different ways of mapping the centers • Otherwise: not isomorphic. • 1 or 2 calls to isomorphism of rooted trees: O(n). Netwerk Algorithms: Graph Isomorphism

  24. Conclusions • Similar methods work for finding automorphisms • We saw: heuristic for arbitrary graphs, algorithm for trees • There are algorithms for several special graph classes (e.g., planar graphs, graphs of bounded degree,…) Netwerk Algorithms: Graph Isomorphism

More Related