SlideShare a Scribd company logo
1 of 26
Graph Isomorphism

Algorithms and networks
Today
•   Graph isomorphism: definition
•   Complexity: isomorphism completeness
•   The refinement heuristic
•   Isomorphism for trees
    – Rooted trees
    – Unrooted trees


                          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 V:
  – {v,w}   E    {f(v),f(w)}      F




                          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 V: {v,w} E          {f(v),f(w)}   F
   – For all v V: l(v) = l’(f(v)).
• Application: organic chemistry:
   – determining if two molecules are identical.

                                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                  ? isomorphism
                                                       Graph


              NP       P

                              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)
      • Question: is there a non-trivial
        automorphism, i.e., a bijective function f:
        V V, not the identity, with for all
        v,w V:
          – {v,w}    E, if and only if {f(v),f(w)}   E.
                                       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

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


                          Graph Isomorphism   8
An equivalence relation on
            vertices
• Say v ~ w, if and only if there is an
  automorphism mapping v to w.
• ~ is an equivalence relation
• Partitions the vertices in automorphism
  classes
• Tells on structure of graph


                        Graph Isomorphism   9
Iterative vertex partition heuristic
              the 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’.
                         Graph Isomorphism       10
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.
                                Graph Isomorphism             11
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 Ai in SG by Ai1,…,Air and replace Bi in SH by
     Bi1,…,Bir.
      • Ai1,…,Air is partition of Ai
      • Bi1,…,Bir is partition of Bi
      • For each isormorphism f: v in Aij if and only if f(v) in Bij


                                      Graph Isomorphism                12
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.


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




                            Graph Isomorphism         14
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!



                        Graph Isomorphism   15
Isomorphism on trees
• Linear time algorithm to test if two
  (labeled) trees are isomorphic.
• Algorithm to test if two rooted trees are
  isomorphic.
• Used as a subroutine for unrooted trees.



                         Graph Isomorphism    16
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:


                          Graph Isomorphism    17
Structure of algorithm
• Tree is processed level by level, from bottom to
  root
• Processing a level:
   – A long label for each vertex is computed
   – This is transformed to a short label
• 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.
                               Graph Isomorphism            18
Labeling procedure
• For each vertex, get the set of labels assigned to its
  children.
• Sort these sets.
   – Bucketsort the pairs (L(w), v) for T1, w child of v
   – Bucketsort the pairs (L(w), v) 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.
                                 Graph Isomorphism         19
On sorting w.r.t. the long lists (1)
• Preliminary work:
  – Sort the nodes is the layer on the number of
    children they have.
     • Linear time. (Counting sort / Radix sort.)
  – Make a set of pairs (j,i) with (j,i) in the set
    when the jth number in a long list is i.
  – Radix sort this set of pairs.


                               Graph Isomorphism      20
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.
                                       Graph Isomorphism                  21
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.


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




                        Graph Isomorphism    23
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.
                                    Graph Isomorphism        24
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
   – Or: subdivide the edge between the two centers and
     take the new vertices as root
• Otherwise: not isomorphic.
• 1 or 2 calls to isomorphism of rooted trees: O(n).

                                   Graph Isomorphism      25
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,…)

                         Graph Isomorphism    26

More Related Content

What's hot

Slides Chapter10.1 10.2
Slides Chapter10.1 10.2Slides Chapter10.1 10.2
Slides Chapter10.1 10.2
showslidedump
 

What's hot (20)

Isomorphism in Math
Isomorphism in MathIsomorphism in Math
Isomorphism in Math
 
Euler graph
Euler graphEuler graph
Euler graph
 
Hamilton path and euler path
Hamilton path and euler pathHamilton path and euler path
Hamilton path and euler path
 
Slides Chapter10.1 10.2
Slides Chapter10.1 10.2Slides Chapter10.1 10.2
Slides Chapter10.1 10.2
 
Graph Theory
Graph TheoryGraph Theory
Graph Theory
 
Chapter 5 Graphs (1).ppt
Chapter 5 Graphs (1).pptChapter 5 Graphs (1).ppt
Chapter 5 Graphs (1).ppt
 
Applications of graph theory
                      Applications of graph theory                      Applications of graph theory
Applications of graph theory
 
graph.ppt
graph.pptgraph.ppt
graph.ppt
 
graph theory
graph theory graph theory
graph theory
 
MATCHING GRAPH THEORY
MATCHING GRAPH THEORYMATCHING GRAPH THEORY
MATCHING GRAPH THEORY
 
Graph coloring
Graph coloringGraph coloring
Graph coloring
 
Graphs - Discrete Math
Graphs - Discrete MathGraphs - Discrete Math
Graphs - Discrete Math
 
Connectivity of graph
Connectivity of graphConnectivity of graph
Connectivity of graph
 
Discrete Math Lecture 02: First Order Logic
Discrete Math Lecture 02: First Order LogicDiscrete Math Lecture 02: First Order Logic
Discrete Math Lecture 02: First Order Logic
 
Lecture 10 semantic analysis 01
Lecture 10 semantic analysis 01Lecture 10 semantic analysis 01
Lecture 10 semantic analysis 01
 
Bipartite graph
Bipartite graphBipartite graph
Bipartite graph
 
Graph Theory
Graph TheoryGraph Theory
Graph Theory
 
Real analysis
Real analysis Real analysis
Real analysis
 
Planar graph
Planar graphPlanar graph
Planar graph
 
Lecture 14 Heuristic Search-A star algorithm
Lecture 14 Heuristic Search-A star algorithmLecture 14 Heuristic Search-A star algorithm
Lecture 14 Heuristic Search-A star algorithm
 

Viewers also liked (11)

Lecture 27
Lecture 27Lecture 27
Lecture 27
 
Cs6702 graph theory and applications 2 marks questions and answers
Cs6702 graph theory and applications 2 marks questions and answersCs6702 graph theory and applications 2 marks questions and answers
Cs6702 graph theory and applications 2 marks questions and answers
 
Lecture 09
Lecture 09Lecture 09
Lecture 09
 
Graph data structure
Graph data structureGraph data structure
Graph data structure
 
Boolean Algebra
Boolean AlgebraBoolean Algebra
Boolean Algebra
 
Control charts for attributes
Control charts for attributesControl charts for attributes
Control charts for attributes
 
Control charts
Control chartsControl charts
Control charts
 
Graphs In Data Structure
Graphs In Data StructureGraphs In Data Structure
Graphs In Data Structure
 
CONTROL CHARTS
CONTROL CHARTSCONTROL CHARTS
CONTROL CHARTS
 
Control charts
Control charts Control charts
Control charts
 
Statistical Process Control
Statistical Process ControlStatistical Process Control
Statistical Process Control
 

Similar to Graph isomorphism

Data structure computer graphs
Data structure computer graphsData structure computer graphs
Data structure computer graphs
Kumar
 
Lesson 13 algebraic curves
Lesson 13    algebraic curvesLesson 13    algebraic curves
Lesson 13 algebraic curves
Jean Leano
 

Similar to Graph isomorphism (20)

Unit 2: All
Unit 2: AllUnit 2: All
Unit 2: All
 
Problems in parallel computations of tree functions
Problems in parallel computations of tree functionsProblems in parallel computations of tree functions
Problems in parallel computations of tree functions
 
Data structure computer graphs
Data structure computer graphsData structure computer graphs
Data structure computer graphs
 
Data Structures - Lecture 10 [Graphs]
Data Structures - Lecture 10 [Graphs]Data Structures - Lecture 10 [Graphs]
Data Structures - Lecture 10 [Graphs]
 
Graph ds
Graph dsGraph ds
Graph ds
 
graphtheory
graphtheorygraphtheory
graphtheory
 
Slopes of perpendicular lines
Slopes of perpendicular linesSlopes of perpendicular lines
Slopes of perpendicular lines
 
Presentation on graphs
Presentation on graphsPresentation on graphs
Presentation on graphs
 
Lesson 13 algebraic curves
Lesson 13    algebraic curvesLesson 13    algebraic curves
Lesson 13 algebraic curves
 
Graph Theory
Graph TheoryGraph Theory
Graph Theory
 
Data structure
Data structureData structure
Data structure
 
14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpath14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpath
 
Mathematics compendium for class ix
Mathematics compendium for class ixMathematics compendium for class ix
Mathematics compendium for class ix
 
Lecture 1--Graph Algorithms -- Basics.pptx
Lecture 1--Graph Algorithms -- Basics.pptxLecture 1--Graph Algorithms -- Basics.pptx
Lecture 1--Graph Algorithms -- Basics.pptx
 
Algorithm Assignment Help
Algorithm Assignment HelpAlgorithm Assignment Help
Algorithm Assignment Help
 
Graphs
GraphsGraphs
Graphs
 
Transform as a vector? Tying functional parity with rotation angle of coordin...
Transform as a vector? Tying functional parity with rotation angle of coordin...Transform as a vector? Tying functional parity with rotation angle of coordin...
Transform as a vector? Tying functional parity with rotation angle of coordin...
 
Graph 1
Graph 1Graph 1
Graph 1
 
Graphs (Models & Terminology)
Graphs (Models & Terminology)Graphs (Models & Terminology)
Graphs (Models & Terminology)
 
Graphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ programGraphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ program
 

More from Core Condor

More from Core Condor (6)

Weighted graphs
Weighted graphsWeighted graphs
Weighted graphs
 
Red black 2
Red black 2Red black 2
Red black 2
 
Red black 1
Red black 1Red black 1
Red black 1
 
Disjoint sets
Disjoint setsDisjoint sets
Disjoint sets
 
Red blacktrees
Red blacktreesRed blacktrees
Red blacktrees
 
2 3 tree
2 3 tree2 3 tree
2 3 tree
 

Recently uploaded

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 

Recently uploaded (20)

ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 

Graph isomorphism

  • 2. Today • Graph isomorphism: definition • Complexity: isomorphism completeness • The refinement heuristic • Isomorphism for trees – Rooted trees – Unrooted trees Graph Isomorphism 2
  • 3. 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 V: – {v,w} E {f(v),f(w)} F Graph Isomorphism 3
  • 4. 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 V: {v,w} E {f(v),f(w)} F – For all v V: l(v) = l’(f(v)). • Application: organic chemistry: – determining if two molecules are identical. Graph Isomorphism 4
  • 5. 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 ? isomorphism Graph NP P Graph Isomorphism 5
  • 6. 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) • Question: is there a non-trivial automorphism, i.e., a bijective function f: V V, not the identity, with for all v,w V: – {v,w} E, if and only if {f(v),f(w)} E. Graph Isomorphism 6
  • 7. 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 Graph Isomorphism 7
  • 8. Special cases are easier • Polynomial time algorithms for – Graphs of bounded degree – Planar graphs This course – Trees • Expected polynomial time for random graphs Graph Isomorphism 8
  • 9. An equivalence relation on vertices • Say v ~ w, if and only if there is an automorphism mapping v to w. • ~ is an equivalence relation • Partitions the vertices in automorphism classes • Tells on structure of graph Graph Isomorphism 9
  • 10. Iterative vertex partition heuristic the 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’. Graph Isomorphism 10
  • 11. 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. Graph Isomorphism 11
  • 12. 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 Ai in SG by Ai1,…,Air and replace Bi in SH by Bi1,…,Bir. • Ai1,…,Air is partition of Ai • Bi1,…,Bir is partition of Bi • For each isormorphism f: v in Aij if and only if f(v) in Bij Graph Isomorphism 12
  • 13. 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. Graph Isomorphism 13
  • 14. Other refinements • Partition upon other characteristics of vertices – Label – Number of vertices at distance d (in a set Ai). –… Graph Isomorphism 14
  • 15. 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! Graph Isomorphism 15
  • 16. Isomorphism on trees • Linear time algorithm to test if two (labeled) trees are isomorphic. • Algorithm to test if two rooted trees are isomorphic. • Used as a subroutine for unrooted trees. Graph Isomorphism 16
  • 17. 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: Graph Isomorphism 17
  • 18. Structure of algorithm • Tree is processed level by level, from bottom to root • Processing a level: – A long label for each vertex is computed – This is transformed to a short label • 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. Graph Isomorphism 18
  • 19. Labeling procedure • For each vertex, get the set of labels assigned to its children. • Sort these sets. – Bucketsort the pairs (L(w), v) for T1, w child of v – Bucketsort the pairs (L(w), v) 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. Graph Isomorphism 19
  • 20. On sorting w.r.t. the long lists (1) • Preliminary work: – Sort the nodes is the layer on the number of children they have. • Linear time. (Counting sort / Radix sort.) – Make a set of pairs (j,i) with (j,i) in the set when the jth number in a long list is i. – Radix sort this set of pairs. Graph Isomorphism 20
  • 21. 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. Graph Isomorphism 21
  • 22. 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. Graph Isomorphism 22
  • 23. Time • One layer with n1 nodes with n2 nodes in next layer costs O(n1 + n2) time. • Total time: O(n). Graph Isomorphism 23
  • 24. 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. Graph Isomorphism 24
  • 25. 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 – Or: subdivide the edge between the two centers and take the new vertices as root • Otherwise: not isomorphic. • 1 or 2 calls to isomorphism of rooted trees: O(n). Graph Isomorphism 25
  • 26. 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,…) Graph Isomorphism 26