subgraph-isomorphism
v1.0.0
Published
a package for finding subgraph isomorphisms in a parent graph using Ullman's algorithm
Downloads
30
Maintainers
Readme
Subgraph Isomorphism Package
A small package that finds isomorphic subgraph matches within a larger host/parent graph. More formally, for a parent graph $G$ and desired matching graph $P$, find a subgraph of $G$ that is isomorphic to $P$.
This package works on directed and bidirectional graphs.
This package uses Ullman's algorithm to enumerate possible subgraph matches and is based on the description provided here: http://adriann.github.io/Ullman%20subgraph%20isomorphism.html.
It is possible there are bugs in my implementation! Please let me know if you find any :-).
NOTE: This algorithm will run very slowly on large graph inputs, make sure you test the package with a reasonable upper bound prior using.
API
Only one api function exists:
function getIsomorphicSubgraphs(G, P, maxNum, similarityCriteria);
G
- an adjacency matrix of the host/parent graph.P
- an adjacency matrix of the desired matching graph.maxNum
- stop the algorithm after finding this many matches, may stop without finding this many if fewer exist.similarityCriteria
- a function reference to call to determine initial similarity between nodes, seedegreeCriteria()
for an example implementation that compares the degree of the candidate nodes.
Installation
This package depends on:
mathjs
- to do some array manipulations (required)mocha
- to run unit tests (optional).
Required packages are installed by default when using npm install subgraph-isomorphism
.