A graph isomorphism algorithm using pseudoinverses (Q1913583)

From MaRDI portal

!

This is the item page for this Wikibase entity, intended for internal use and editing purposes. Please use the normal view instead:

scientific article; zbMATH DE number 881182
Language Label Description Also known as
default for all languages
No label defined
    English
    A graph isomorphism algorithm using pseudoinverses
    scientific article; zbMATH DE number 881182

      Statements

      A graph isomorphism algorithm using pseudoinverses (English)
      0 references
      0 references
      0 references
      29 September 1996
      0 references
      This paper presents a heuristic algorithm of complexity at most \(O(nm^2)\) to test isomorphism between two graphs with \(m\) vertices and \(n\) edges. The traditional approach for isomorphism testing has been to use the fact that the adjacency matrices (or incidence matrices or Laplace matrices) of isomorphic graphs are permutationally equivalent. The novelty in the author's approach is the efficient use of the fact that the pseudoinverses of these matrices are also permutationally equivalent. The pseudoinverse of a matrix \(X\) is taken as the matrix \(X^+\) giving a solution \(\overline {x} = X^+b\) for the equations \(Xx = b\) which minimizes the squared error \((b - Xx)^T (b - Xx)\). If the \(m \times m\) matrix \(X\) of rank \(r\) is factorizable as \(X = UV\), where \(U\) is \(m \times r\) of rank \(r\) and \(V\) is \(r \times n\) of rank \(r\), then \(X^+ = V^+ U^+ = V^T(VV^T)^{-1} (U^TU)^{-1} U^T\) can be readily computed. Using a spanning tree of a graph (assumed connected), one gets a traditional canonical partition of the incidence matrix \(M\) as well as the Laplacian \(MM^T = K\) which facilitates the use of the above formula for the computation of \(M^+\) or \(K^+\). Concentrating on \(K^+\), the authors compute the diagonals of \(K^+_1\) and \(K^+_2\) (the \(K^+\) of the candidate graphs \(G_1\) and \(G_2\)) and use them to find a one-one correspondence between the vertices of \(G_1\) and \(G_2\). If this happens to be an isomorphism (preserves adjacencies) one is through. It is easier to detect non-isomorphism. An alternative approach of trying to match each column of \(K^+_1\) with a column of \(K^+_2\) iteratively has also been studied. This proves efficient in some cases. The methods are illustrated with two examples. Inbuilt functions for pseudoinverses in `Mathematica' have been used.
      0 references
      heuristic algorithm
      0 references
      isomorphism testing
      0 references
      adjacency matrices
      0 references
      incidence matrices
      0 references
      Laplace matrices
      0 references
      pseudoinverses
      0 references
      spanning tree
      0 references
      partition
      0 references
      Laplacian
      0 references

      Identifiers

      0 references
      0 references
      0 references
      0 references
      0 references