Deprecated: $wgMWOAuthSharedUserIDs=false is deprecated, set $wgMWOAuthSharedUserIDs=true, $wgMWOAuthSharedUserSource='local' instead [Called from MediaWiki\HookContainer\HookContainer::run in /var/www/html/w/includes/HookContainer/HookContainer.php at line 135] in /var/www/html/w/includes/Debug/MWDebug.php on line 372
A graph isomorphism algorithm using pseudoinverses - MaRDI portal

A graph isomorphism algorithm using pseudoinverses (Q1913583)

From MaRDI portal





scientific article; zbMATH DE number 881182
Language Label Description Also known as
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