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

introduction to graph theory
introduction to graph theoryintroduction to graph theory
introduction to graph theoryChuckie Balbuena
 
Ppt of graph theory
Ppt of graph theoryPpt of graph theory
Ppt of graph theoryArvindBorge
 
Graph coloring and_applications
Graph coloring and_applicationsGraph coloring and_applications
Graph coloring and_applicationsmohammad alkhalil
 
Sequences and Series (Mathematics)
Sequences and Series (Mathematics) Sequences and Series (Mathematics)
Sequences and Series (Mathematics) Dhrumil Maniar
 
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 answersappasami
 
Prims and kruskal algorithms
Prims and kruskal algorithmsPrims and kruskal algorithms
Prims and kruskal algorithmsSaga Valsalan
 
Application Of Graph Data Structure
Application Of Graph Data StructureApplication Of Graph Data Structure
Application Of Graph Data StructureGaurang Dobariya
 
Graph terminologies & special type graphs
Graph terminologies & special type graphsGraph terminologies & special type graphs
Graph terminologies & special type graphsNabeel Ahsen
 
Interesting applications of graph theory
Interesting applications of graph theoryInteresting applications of graph theory
Interesting applications of graph theoryTech_MX
 

What's hot (20)

Unit 2: All
Unit 2: AllUnit 2: All
Unit 2: All
 
Graph coloring
Graph coloringGraph coloring
Graph coloring
 
Introduction to Graph Theory
Introduction to Graph TheoryIntroduction to Graph Theory
Introduction to Graph Theory
 
Graph
GraphGraph
Graph
 
Coloring graphs
Coloring graphsColoring graphs
Coloring graphs
 
introduction to graph theory
introduction to graph theoryintroduction to graph theory
introduction to graph theory
 
Trees
TreesTrees
Trees
 
Ppt of graph theory
Ppt of graph theoryPpt of graph theory
Ppt of graph theory
 
Graph coloring and_applications
Graph coloring and_applicationsGraph coloring and_applications
Graph coloring and_applications
 
Sequences and Series (Mathematics)
Sequences and Series (Mathematics) Sequences and Series (Mathematics)
Sequences and Series (Mathematics)
 
graph theory
graph theory graph theory
graph theory
 
Graph theory presentation
Graph theory presentationGraph theory presentation
Graph theory presentation
 
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
 
Prims and kruskal algorithms
Prims and kruskal algorithmsPrims and kruskal algorithms
Prims and kruskal algorithms
 
Shortest path algorithms
Shortest path algorithmsShortest path algorithms
Shortest path algorithms
 
graph.ppt
graph.pptgraph.ppt
graph.ppt
 
Application Of Graph Data Structure
Application Of Graph Data StructureApplication Of Graph Data Structure
Application Of Graph Data Structure
 
Shortest Path in Graph
Shortest Path in GraphShortest Path in Graph
Shortest Path in Graph
 
Graph terminologies & special type graphs
Graph terminologies & special type graphsGraph terminologies & special type graphs
Graph terminologies & special type graphs
 
Interesting applications of graph theory
Interesting applications of graph theoryInteresting applications of graph theory
Interesting applications of graph theory
 

Viewers also liked

Graph data structure
Graph data structureGraph data structure
Graph data structureTech_MX
 
Boolean Algebra
Boolean AlgebraBoolean Algebra
Boolean Algebragavhays
 
Control charts for attributes
Control charts for attributesControl charts for attributes
Control charts for attributesBuddy Krishna
 
Graphs In Data Structure
Graphs In Data StructureGraphs In Data Structure
Graphs In Data StructureAnuj Modi
 
Statistical Process Control
Statistical Process ControlStatistical Process Control
Statistical Process ControlMarwa Abo-Amra
 

Viewers also liked (10)

Lecture 27
Lecture 27Lecture 27
Lecture 27
 
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

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 functionsDr Sandeep Kumar Poonia
 
Data structure computer graphs
Data structure computer graphsData structure computer graphs
Data structure computer graphsKumar
 
Slopes of perpendicular lines
Slopes of perpendicular linesSlopes of perpendicular lines
Slopes of perpendicular linesjfrazier1916
 
Lesson 13 algebraic curves
Lesson 13    algebraic curvesLesson 13    algebraic curves
Lesson 13 algebraic curvesJean Leano
 
14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpath14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpathSSE_AndyLi
 
Mathematics compendium for class ix
Mathematics compendium for class ixMathematics compendium for class ix
Mathematics compendium for class ixAPEX INSTITUTE
 
Lecture 1--Graph Algorithms -- Basics.pptx
Lecture 1--Graph Algorithms -- Basics.pptxLecture 1--Graph Algorithms -- Basics.pptx
Lecture 1--Graph Algorithms -- Basics.pptxChandanGiri21
 
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...SayakBhattacharjee4
 
Graphs (Models & Terminology)
Graphs (Models & Terminology)Graphs (Models & Terminology)
Graphs (Models & Terminology)zunaira saleem
 
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++ programMuhammad Danish Badar
 
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryBCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryRai University
 

Similar to Graph isomorphism (20)

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
 
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryBCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
 

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

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
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 Delhikauryashika82
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 

Recently uploaded (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
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
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 

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