Here's a basic algorithm for partial isomorphism between two graphs A and B ..
Algorithm
Given:
- graph A
- graph B
- threshold on A, p in [0.0,1.0)
- threshold on B, q in [0.0,1.0)
1. define: list T = { Nodes in graph B }
2. define: c = 0
3. for every Node i in graph A
{
for every Node j in list T
{
if(i and j are equivlant)
{
c = c + 1
remove j from list T
}
}
}
4. calculate: x = number of nodes in graph A / c
5. calculate: y = number of nodes in graph B / c
6. return (x > p AND y > q)
Example
Rule: Node i and Node j are equivalent if they have same degree.
Constant: Threshold on A, p = 0.95 ~ 95%.
Constant: Threshold on B, q = 0.75 ~ 75%.
Output: The algorithm will return TRUE for any graph B that has set of nodes that make of 75% or more of it equivalent to set of nodes that make 95% or more of graph A